Kecualikan repo tertentu dari Pembaruan YUM

13

Saya sedang melakukan pembaruan yum seluruh sistem pada RHEL 5.5 dan repositori IUS EPEL melempar kesalahan ketergantungan yang hilang:

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)

Apakah ada cara untuk menjalankan pembaruan YUM terhadap semua repositori lain dengan mengabaikan repo IUS EPEL untuk melewati masalah ketergantungan ini?

Klarifikasi

Saya mencoba menginstal pembaruan hanya dari Redhat Network. Saya tidak dapat menemukan nama repo jadi saya tidak dapat melakukan sesuatu seperti sudo yum --disablerepo=* --enablerepo=rhel updateversi yum yang saya gunakan tidak mendukung beberapa repositori yang terdaftar setelahnya --disablerepo.

Memperbarui

Solusi sementara saya adalah menjalankan sudo yum --exclude=php53* update. Saya yakin ada cara yang lebih baik. Cara yang lebih baik ini termasuk memperbaiki masalah yang sebenarnya, jadi saya juga mengirim bug ke Proyek Komunitas IUS .

Perbarui # 2

Sepertinya saya menemukan masalah dengan ketergantungan . Saya masih berpikir harus ada solusi yang layak.

Terima kasih!

Robin
sumber
Saya telah memperbarui jawaban saya untuk mempertimbangkan klarifikasi Anda.
plasmid87

Jawaban:

21

Coba nonaktifkan saklar repo:

--disablerepo=REPONAME

MEMPERBARUI

Untuk menemukan semua repositori yang saat ini "dikenal" (diaktifkan dan dinonaktifkan):

yum repolist all

Kemudian untuk menemukan repositori mana yang memberi Anda kesedihan untuk paket di atas, cobalah:

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

Ini kemudian akan menunjukkan repositori Anda yang menyediakan paket di atas (Anda juga akan melihat "terpasang" pada daftar, untuk menampilkan paket yang dipasang secara lokal).

Coba nonaktifkan sakelar lagi setelah Anda mengetahui repositori menggunakan sakelar nonaktifkan repo.

yum update --disablerepo=[from above]

Gagal langkah-langkah di atas untuk memilih repositori yang ingin Anda hapus, coba lihat melalui /etc/yum.repos.d/ , yang merupakan lokasi standar RHEL untuk definisi repositori. Setelah di direktori ini, cari semua basis RHEL non-standar dan perbarui file repositori dan sertakan diaktifkan = 0 , misalnya,

[repo]
enabled=0

Semoga ini membantu.

plasmid87
sumber
Ini mungkin berhasil jika saya dapat menentukan beberapa repositori. Saya mencoba --disablerepo=epel --disablerepo=iusdan --disablerepo=epel,ius.
Robin
yum repolist allmenunjukkan bahwa hanya repo berikut yang diaktifkan: epel, ius dan rhel-x86_64-server-5. --showduplicatesPerintah Anda menunjukkan paket yang diinstal dari repo ius. Jadi saya mencoba yang berikut sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updatedan masih melempar kesalahan dependensi pada paket yang sama. Saya juga mencoba menonaktifkan repo dengan mengubah enabled=0pengaturan di bawah /etc/yum.repos.d/
Robin
Saya membayangkan bahwa ketika Anda menginstal repo IUS, itu dikonfigurasi untuk diaktifkan secara default. Coba ini sebagai gantinya: sudo yum update --disablerepo=iusdengan asumsi bahwa semua repo lainnya diaktifkan secara default. Jika tidak, coba sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64lewati saja paket ini.
plasmid87
Tidak satu pun dari opsi ini yang berfungsi. Saya kehilangan sesuatu.
Robin
Saya hanya dapat membayangkan bahwa sesuatu membutuhkan paket yang ditingkatkan sebagai bagian dari proses pembaruan. Jika Anda menjalankannya sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64akan menunjukkan kepada Anda semua dependensi dan penyedia untuk paket tertentu. Dalam pengalaman saya dengan paket PHP dan RHEL, ini adalah masalah umum. Tidak ingin menyimpang dari masalah yang dihadapi, tetapi saya telah menemukan Remi untuk memberikan paket terbaik untuk PHP, saya tidak pernah memiliki masalah ketergantungan dengan PHP setelah pindah ke repo mereka.
plasmid87
1

cara termudah untuk melakukannya adalah dengan mengomentari linux dengan repo yang tidak diinginkan di /etc/yum.repos.d/

fromnaboo
sumber
1

Anda dapat menonaktifkan beberapa repositori pada baris perintah yum:

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

Namun, jika Anda melakukannya, Anda harus secara eksplisit mengaktifkan repo yang Anda inginkan:

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