yum, çekirdek sürümünden farklı bir çekirdek yükü yükler


32

VMWare oynatıcısını Fedora 19'da yüklemeye çalışıyorum. VMware oynatıcısının çekirdek başlıklarını bulamaması durumunda birden fazla kullanıcının sahip olduğu sorunla karşılaşıyorum. kernel-headersVe kernel-develpaketleri yükledim ve yumgörünen dosya /usr/src/kernels:

3.12.8-200.fc19.x86_64

Ancak, uname -rFedora çekirdek sürümümü yaptığımda:

3.9.5-301.fc19.x86_64

Bu farklı bir versiyondur. Bu, VMware player'ı çekirdek yoluna yönlendirdiğimde şu hatayı alıyorum anlamına geliyor gibi görünüyor:

C header files matching your running kernel were not found.  
Refer to your distribution's documentation for installation instructions.

Doğru Çekirdeği nasıl kurabilirim ve değilse, VMware'i nereye işaret etmeliyim /usr/src/kernels/<my-kernel>?


Sadece merak ediyorum ... Neden Fedora 19'daki en son çekirdeği çalıştırmıyorsunuz?
rickhg12hs

Benim kendi kararımla değil. Webist'ten yapabileceğim en yeni yapıyı kurdum. Çekirdeği güncellemenin bir yolu var mı?
Fantastik Bay Fox,

Çoğu, Paket Yöneticisi'ni kullanarak veya yum updatebir komut satırından çalıştırılan kök olarak tüm paketleri güncel tutar . Sık sık yapılır ve iyi bir İnternet bağlantısına sahip olmanız uzun sürmez, ancak yapacak çok şeyiniz var. Yeni çekirdeği kullanmak için, güncelleme tamamlandıktan sonra yeniden başlatmanız gerekir.
rickhg12hs

Yanıtlar:


33

Doğru çekirdek başlık dosyalarını şu şekilde yükleyebilirsiniz:

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"

Örnek

Bu komut her zaman doğru sürümü yükleyecektir.

$ sudo yum install "kernel-devel-uname-r == $(uname -r)"
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
No package kernel-devel-uname-r == 3.12.6-200.fc19.x86_64 available.
Error: Nothing to do

Veya onları şöyle arayabilirsiniz:

$ yum search "kernel-headers-uname-r == $(uname -r)" --disableexcludes=all
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Warning: No matches found for: kernel-headers-uname-r == 3.12.6-200.fc19.x86_64
No matches found

Ancak bu sorunu, depolarda belirli başlık sürümlerinin bulunmadığı yerlerde de farkettim. Bir yapının belirli bir sürümünü bulmak için Koji'ye ulaşmanız gerekebilir.

Bu sayfa, Çekirdeğin belirli bir sürümü için tüm varlıkları içerir.


2
Neden bu daha iyi yum install "kernel-devel-$(uname -r)"?
Örneğinizden

1
@drs - Bu b / c çalışmıyor çekirdek sürümüm için başlıkları sağlayan eşleşen pkgs yok. -Uname-r` aracını kullanmak, çekirdek sürümüne bağlı w / pkgs ile çalışmanın daha taşınabilir bir yoludur. Örneklerine de bakarsanız çoğu depoda kullanılır
slm

Bu gerçekten yardımcı oldu. Çekirdek başlıklarının doğru sürümünü, adında çok küçük bir fark kurduğumu sanıyordum, ancak doğru ve yapılamadı. Üstteki komut, gerçek olanı elde etmeme yardımcı oldu, paket arama konusunda daha iyi bir fikir verdi. Teşekkürler +1
fkl

Yum / dnf 'i çekirdeği güncellediğinde otomatik olarak yeni çekirdek başlıkları da yükleyebilmemizin bir yolu var mı?
Shankar Narayanan

2
@slm nerede bu sözdizimi üzerinde herhangi bir bilgi / belgeleri bulabilirsiniz: "kernel-devel-uname-r == $(uname -r)"?
Vadim Kotov

8

Dağıtım senkronizasyonu

Sorununuz "dağıtım senkronizasyonu" olabilir. Bu komutu çalıştırmak benim sorunumu çözdü.

yum distro-sync

Yüklü paketi setini mevcut en yeni paketlerle senkronize eder; bu, uygun şekilde eskimiş, yükseltme veya düşürme yoluyla yapılır. ( http://man7.org/linux/man-pages/man8/yum.8.html )


4

Paket ismiyle birlikte sürümü belirterek, paketin belirli bir sürümünü yükleyebilirsiniz. yum . Örneğin, çalıştırmakta olduğunuz çekirdeğin çekirdek geliştirme dosyalarını yüklemek için,

yum install kernel-devel-3.9.5-301.fc19

Doğru kernel-headerspaketi almak için benzer bir komut yapabilirsiniz .


0

Bir sistem güncellemesinden sonra VMBoxAdditions yüklemek de benim için birkaç kez oluyor.

Çekirdek devs kaldırmak zorundayım :

yum remove kernel-devel

ve sonra yeniden yükleyin:

yum install kernel-devel

Ve sonra sihirli bir şekilde çalışıyor.


0

Çekirdeği güncelledikten sonra aynı şeyle karşılaştım ve Jim'in cevabı çok yardımcı oldu. [Elrepo-kerne] deposunu etkinleştirmek için , /etc/yum.repos.d/elrepo.repodosyaya gidin ve [elrepo-çekirdek] için enabled=1(yerine enabled=0) ayarını yapın , ardından slm'in yanıtı ile bilgilendirilen güncellemeyi yapın. Bundan sonra enabled=0, yum 'a geri dönersek, yum bu repo ile etkileşime girmez. Sadece işaret etmek için, komut yum repolist allsize tüm etkin ve devre dışı repoları gösterecektir.


-2

Herkesin önerilerini takip ettikten sonra, bu durumu düzeltmeye yardımcı olan bir şey buldum. [Elrepo-çekirdek] deposunu etkinleştirmem gerekiyordu. Sonra doğru başlıkları ve çekirdek-develi yükleyebildim.


Bu soruya tam bir cevap değil. Yanıtınızı daha fazla ayrıntıyla geliştirmeli veya bunu yorum olarak eklemelisiniz.
Fantastik Mr Fox,

@FantasticMrFox Bu, bu prosedürün neden gerekli olduğu konusunda açıklama yapmadan kısa bir cevap da olsa da, bu sorunun cevabıdır ve başkalarının zaten söylediklerini çoğaltmaktadır.
Kusalananda
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.