yum hang dan tidak mau merespons

37

Saya menjalankan yum check-updatedan membeku setelah 2 baris output:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

Saya tidak yakin apa yang terjadi. Hal-hal terakhir yang saya ingat lakukan dengan yum adalah yum updatedan melihat salah satu repos yum CentOS tetapi saya tidak melakukan perubahan apa pun.

Ada saran untuk memperbaiki yum?

barrrista
sumber

Jawaban:

22

Anda mungkin memiliki masalah DNS. Cobalah untuk memastikan Anda dapat menyelesaikan data DNS secara lokal:

nslookup google.com

Jika Anda mendapatkan IP kembali dari perintah itu, Anda harus OK untuk DNS. Coba hapus cache cache tercepat dan jalankan kembali perintah yum Anda:

rm -f /var/cache/yum/timedhosts.txt

Garrett
sumber
1
Saya memang mendapatkan IP kembali dari perintah itu. timedhosts.txt adalah file teks kosong tetapi saya mencoba menghapusnya. Saya kemudian mengulang perintah yum saya. Sayangnya tidak berhasil. Itu masih tergantung di tempat yang sama, "Menentukan mirror tercepat". Jika saya menjalankan verbose, saya mendapatkan Memuat "plugin tercepat" Konfigurasi waktu: 0,094 Versi Yum: 3.2.22 Menyiapkan Paket Karung Memuat kecepatan cermin dari cache
hostfile
10
Untuk mengesampingkan masalah dengan plugin paling cepat, coba jalankan yum tanpa plugin:yum --noplugins check-update
Garrett
67

Semua ini tidak berhasil dengan saya.

Menggunakan CentOS dan yum. yum hang tanpa pesan kesalahan, setidaknya, jadi itu muncul. Menekan Ctrl+ Ctidak berfungsi (menekannya lagi dan lagi dan lagi tidak).

Beberapa hal perlu diperiksa: - apakah repositori baik-baik saja? - apakah jaringan baik-baik saja? - apakah basis data yum dan rpm baik?

Jadi, mulailah dengan hal-hal yang mudah - bersihkan basis data:

rm -f /var/lib/rpm/__*
rpm --rebuilddb -v -v   
yum clean all

Jika itu tidak berhasil, Anda dapat mengatur level debug, level kesalahan dan batas waktu untuk yum di /etc/yum.conf:

debuglevel=1
errorlevel=1
timeout=1

Batas waktu standar 30 detik. Jadi jika repositori tidak merespons, kesalahan tersebut membutuhkan waktu 30 detik untuk muncul. Coba juga menggunakan yum tanpa plugin (seperti mirror tercepat dan prioritas) dengan opsi --noplugins. Sekarang memulai yum lagi akan memberi Anda info lebih cepat. Uji dengan:

yum --verbose --noplugins info

Anda mungkin mendapatkan sesuatu seperti ini:

 Config time: 0.105
 Yum Version: 3.2.22
 Setting up Package Sacks
 Loading mirror speeds from cached hostfile
 * base: mirror.nl.leaseweb.net
 * extras: mirror.nl.leaseweb.net
 * ius: mirrors.ircam.fr
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nl.leaseweb.net link-to-server-repository/repomd.xml: [Errno 4] IOError: urlopen error (97, 'Address family not supported by protocol') 
 Trying other mirror.

Ini menunjukkan tidak ada informasi yang dapat diterima dari server. Coba URL yang ditampilkan oleh yum (ditunjukkan di atas dengan tautan-ke-server-repositori) di browser web Anda. Salin & tempel dari respons yum Anda, bukan dari pos ini! Jika Anda mendapatkan daftar, Anda tahu repositori online.

Jika Anda mendapatkan kesalahan di browser Anda, coba hapus repositori itu dari /etc/yum.repos.d. Cobalah untuk mengambil daftar di server Anda dengan wget dan rekatkan URL:

wget link-to-server-repository/repomd.xml

Jika ini menghasilkan batas waktu, maka ada masalah dengan firewall atau pengaturan proxy Anda. Cobalah untuk menonaktifkan firewall Anda.

Jika Anda menjalankan csf(ConfigServer Security and Firewall) dan lfdAnda dapat menonaktifkan csf dengan:

csf -x

Coba yum lagi dan jika berhasil, Anda harus mengkonfigurasi ulang csf. Aktifkan csflagi dengan:

csf -e

Dan juga periksa pengaturan proxy Anda. Anda juga dapat mencoba mengubah https menjadi http di file .repo di /etc/yum.repos.d/.

pengguna179734
sumber
1
Jawaban ini bernilai jauh lebih dari 4 upvotes = (
mveroone
Banyak informasi bagus di sini. Meningkatkan level debugging dan menjalankan yum --verbose --noplugins infomembuat saya menemukan "Kesalahan: Tidak dapat mengambil metadata repositori (repomd.xml) untuk repositori: basis. Harap verifikasi jalurnya dan coba lagi" yang saya selidiki sekarang. DNS saya berfungsi agar tidak menjadi masalah.
harperville
3
Poin penting yang tampaknya tidak ada dalam jawaban ini adalah yum checkmembutuhkan waktu berjam-jam untuk menyelesaikannya! Info lebih lanjut: centos.org/forums/viewtopic.php?f=14&t=46676
gmas80
Kode pertama adalah apa yang bekerja dengan saya .. terima kasih.
Maher Abuthraa
Pembersihan basis data juga bekerja untuk saya
frostymarvelous
2

Saya memiliki masalah serupa. Ternyata alamat DNS lama di resolv.conf. Saya mengubah IP ke yang benar, dan itu memperbaiki masalah.

Joe Sulkowski
sumber
Di bawah Vagrant ini bisa terjadi juga.
bbaassssiiee
0

Punya masalah serupa dan alasannya adalah keberadaan file kunci yum di /var/run/yum.pidmana menjalankan yum sebelumnya meninggalkannya karena kesalahan fatal.

Saya menghapusnya sudo rm /var/run/yum.piddan masalah terpecahkan.

bekce
sumber
0

Maaf, tidak memiliki reputasi yang cukup untuk bertanya tentang komentar di atas:

Mencoba solusi ini, saya perhatikan bahwa semuanya akan berjalan baik ketika menggunakan --noplugins. Setelah pencarian biner di antara plugin, saya menemukan bahwa manajer langganan-lah yang menyebabkan semua masalah. Saya menonaktifkannya dan voila! - Mariuslp

@mariuslp, saya juga hanya bisa menjalankan yum dengan menambahkan --noplugins. Bisakah Anda memberikan detail lebih lanjut tentang bagaimana Anda melakukan "pencarian biner di antara plugin" dan apa yang dalam pencarian itu membuat Anda menentukan apa yang menyebabkan masalah? Terima kasih!

cniggeler
sumber