YUM Güncellemesinden belirli bir repoyu hariç tutma


13

RHEL 5.5'te sistem çapında yum güncellemesi yapıyorum ve IUS EPEL deposu eksik bağımlılık hatası atıyor:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Bu bağımlılık sorununu atlamak için IUS EPEL deposunu yok sayan diğer tüm depolarda YUM güncellemesini çalıştırmanın bir yolu var mı ?

açıklama

Güncelleştirmeleri yalnızca Redhat Network'ten yüklemeye çalışıyorum. Ben sudo yum --disablerepo=* --enablerepo=rhel updatekullanıyorum yum sürümü sonra listelenen birden çok depoları desteklemiyor gibi bir şey yapamıyorum repo adını bulamıyorum --disablerepo.

Güncelleme

Geçici geçici çözümüm çalıştırmaktır sudo yum --exclude=php53* update. Daha iyi bir yol olduğuna ikna oldum. Bu daha iyi bir yol gerçek sorunun düzeltilmesini içerir, bu yüzden IUS Topluluk Projesi ile de bir hata bildirdim .

Güncelleme # 2

Bağımlılıkla ilgili bir sorun bulduğum anlaşılıyor . Hala uygulanabilir bir çözüm olması gerektiğini düşünüyorum.

Teşekkürler!


Açıklamanızı dikkate almak için cevabımı güncelledim.
plasmid87

Yanıtlar:


21

Repo anahtarını devre dışı bırakmayı deneyin:

--disablerepo=REPONAME

GÜNCELLEME

Şu anda "bilinen" (etkin ve devre dışı) tüm havuzları bulmak için:

yum repolist all

Ardından, yukarıdaki depo için hangi deponun size keder verdiğini bulmak için şunları deneyin:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

Bu, daha sonra depolarınızdan hangilerinin yukarıdaki paketi sağladığını gösterir (yerel olarak yüklenmiş paketleri göstermek için listede "kurulu" ifadesini de görürsünüz).

Repo anahtarını devre dışı bırakma havuzunu kullanarak havuzu öğrendikten sonra devre dışı bırakma anahtarını tekrar deneyin.

yum update --disablerepo=[from above]

Atlamak istediğiniz havuzu tek tek çıkarmak için yukarıdaki adımları uygulayamazsanız, depo tanımları için RHEL varsayılan konumu olan /etc/yum.repos.d/ adresine bakmayı deneyin . Bu dizine girdikten sonra, standart olmayan tüm RHEL tabanını bulun ve havuz dosyalarını günceller ve enable = 0 , ör.

[repo]
enabled=0

Bu yardımcı olur umarım.


Birden fazla depo belirleyebilseydim bu işe yarayabilir. Denedim --disablerepo=epel --disablerepo=iusve --disablerepo=epel,ius.
Robin

yum repolist allyalnızca aşağıdaki depoların etkin olduğunu gösterir: epel, ius ve rhel-x86_64-server-5. Sizin --showduplicateskomut gösterileri paketin o ius repodan yüklenmiş olarak. Bu yüzden aşağıdakileri denedim sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updateve hala aynı pakete bir bağımlılık hatası atıyor. Ben de enabled=0/etc/yum.repos.d/
Robin

IUS deposunu yüklediğinizde, varsayılan olarak etkinleştirilmek üzere yapılandırıldığını düşünüyorum. Bunun yerine şunu deneyin: sudo yum update --disablerepo=iusdiğer tüm depoların varsayılan olarak etkin olduğunu varsayarak. Aksi takdirde, sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64bu paketi tamamen atlamayı deneyin .
plasmid87

Bu seçeneklerin hiçbiri işe yaramıyor. Bir şey eksik.
Robin

Ancak o zaman başka bir şeyin güncelleme sürecinin bir parçası olarak yükseltilmesi gerektiğini hayal edebiliyorum. Çalıştırırsanız sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64, söz konusu paket için tüm bağımlılıkları ve sağlayıcıları gösterir. PHP paketleri ve RHEL ile ilgili tecrübelerime göre, bu yaygın bir sorundur. Eldeki sorundan sapmak istemiyorum, ancak PHP için en iyi paketleri sağlamak için Remi buldum , ben asla depolarına taşındıktan sonra PHP ile bağımlılık sorunu yaşamadım.
plasmid87

1

bunu yapmanın en kolay yolu, linux'u /etc/yum.repos.d/ adresindeki istenmeyen deponuzla yorumlamaktır.


1

Yum komut satırında birden çok havuzu devre dışı bırakabilirsiniz:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

Ancak, bunu yaparsanız, istediğiniz repoyu açıkça etkinleştirmeniz gerekir:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.