Bağımlı yazılımların yeni sürümleri mevcut olduğunda yum bağımlılık çekleri geçersiz kılma

3 Cevap php

Ben el-derlenmiş PHP kaynağından 5.2.8, ancak diğer paketleri yum ile yüklediğiniz - CentOS 5.1 üzerinde yum kullanıyorum. Ben PECL üzerinden bir PHP uzantısı yüklemeniz gerekir, ve o da yüklü olması phpize gerektirir. Ancak, aşağıdaki yaparak bir bağımlılık hata verir:

sudo yum php-devel yüklemek

Hata: Eksik Bağımlılık: php = 5.1.6-20.el5_2.1 tarafından gerekli paket php-devel

Aslında PHP daha yeni bir sürümü zaten yüklü olduğu için, bunu nasıl görmezden yum zorlayabilir? Ben kaynağından pecl / phpize el-derlemek gerekir mi? Ben kuşkusuz nedeniyle sadece derlemesinin bir combo gibi görünüyor ve yum yükler, daha önce bir sorun yoktu.

Herhangi bir düşünce?

Thanks, Kyle

3 Cevap

Genel bir kural olarak, bu sistemde bir paket yönetim var ve bu iyi, bu yüzden RPMS her şeyi paketleme ve yum yoluyla yönetmek daha iyi olacak. Size uzun vadede çok zaman kazandıracak.

Kesinlikle elle kaynaklardan şey (fe PHP) derleyici sahip olmak istiyorsanız, istifleme / checkinstall / ... veya kaynak derlenmiş şeyler için ilkel paket yönetimi yapmanızı sağlayacak herhangi başka bir çözüm kullanın.

Sorunuzu Regerding, gerekli paketi RPM bir yaparak indirerek kontrol bağımlılığı geçersiz kılmak için deneyebilirsiniz "rpm-i - force file.rpm", yum zorla tesisler için herhangi bir seçenek yok çünkü

Genel olarak:

Eğer kendiniz inşa ederseniz, o /usr/local gider, ve /usr/local başka şeyler sadece erişilebilir.

RPM / Yum yüklerseniz, o /usr gider, ve /usr ve /usr/local erişilebilir.

Yani, ev-derlenmiş PHP PHP kullanarak araçlarını yüklemek istiyveyasanız, aynı zamanda /usr/local içine yükleyin: genellikle, GNU-tip bir yazılım ile, böyle bir şey olur:

   ./configure --prefix=/usr/local && make && sudo make install

veya

   make prefix=/usr/local all && sudo make prefix=/usr/local install

... Onun öneki ayarı değiştirmediğiniz sürece most yazılım /usr/local varsayılan gerektiği halde.

Eğer RPM dayanmaktadır paketleri "el-inşa" istiyorsanız, kullanabileceğiniz

   yumdownloader --source WHATEVER-PACKAGE
   rpm -i WHATEVER-PACKAGE.rpm
   rpmbuild -bp ~/rpm/SPECS/WHATEVER-PACKAGE.spec

(; rpmbuild --showrc nereye anlatacağım için yol eşdeğer ~/rpm değişebilir)

This downloads the .src.rpm package, which contains the upstream (veyaiginal authveya's) source (usually a tarball) as well as OS-specific patches; installs the sources into ~/rpm (veya your rpmbuild prefix); and then unpacks the sources and applies the patches into ~/rpm/BUILD/WHATEVER-PACKAGE/

Oradan configure / adımları yapmak kendiniz yapabilirsiniz, /usr/local önek ile

Tabii ki, sadece RPM yüklüyorsanız çok daha kolay olduğunu :-)

yum sizin el-derlenmiş php sürümü hakkında hiçbir şey bilmiyor. Sen rpm --nodeps kullanarak paketi yükleyerek bypass RPM ya bağımlılık çözünürlük can ve çalışır umuyoruz.

Yoksa yum dan eski sürümü ile bir arada bulunabilir, böylece herkes mutlu bu yüzden başka bir dizin kendinizi derlenmiş php sürümünü yüklemek (Bu mümkün değil emin eğer, ben bu uygulamalar php veya bir kodlanmış yolu kullanın bağlıdır sanırım) .

Yoksa, eğer şanslıysanız, EPEL veya RPMForge yeni bir php paketi olabilir, böylece kendi derlemek zorunda değilsiniz gibi bir üçüncü taraf depo.