12.04.2 LTS 3.5.0'da linux-kernel-devel eşdeğeri nedir?


14

çaylak sorusu için özür dilerim, ama

sudo apt-get install Linux-kernel-devel 

Aşağıdakileri alıyorum:

sudo apt-get install linux-kernel-devel  
Reading package lists... Done  
Building dependency tree        
Reading state information... Done  
E: Unable to locate package linux-kernel-devel  

Aşağıdakileri denedim:

sudo apt-get install linux-headers-$(uname -r)  
sudo apt-get install build-essentials  
sudo apt-get install Linux-headers-generic 

neşe duymadan ... öneriniz var mı?


2
Linux-kernel-devel paketinin ne yapmasını bekliyorsunuz? Başlıkları mı yoksa başka bir şeyi mi arıyorsunuz?
Robie Basak

Yanıtlar:


15

Yönetici Özeti

Muhtemelen adlı paketi yüklemek istiyorsunuz linux-headers-generic.

Eğer koşu uname -rsize genericsürüm numarasından sonra başka bir şey verirse , yerine genericin yerine koyun linux-headers-generic. (Bu olabilir serverveya generic-paebazı Ubuntu sürümlerinde bazı kurulumlarında ve birkaç diğer ara sıra çekirdek vardır "tatlar.")

Bir sürücüyü oluşturabilmeniz için büyük olasılıkla buna ihtiyacınız olduğundan (ki bu otomatikleştirilebilir, "kendiniz inşa edemeyebilirsiniz"), bunu build-essentialyapmak için de kurmak iyi bir fikirdir, böylece gerekli tüm araçlara sahip olursunuz. .

Tam Açıklama

Bildiğim kadarıyla, hiçbir işletim sisteminin adlı bir paketi yoktur Linux-kernel-devel. Bunun iki nedeni vardır:

  • Büyük harflerle başlayan paket adları, Unix benzeri işletim sistemleri için son derece nadirdir.
  • GNU / Linux işletim sistemleri genellikle çekirdekle ilgili paketlerini adlandırır, böylece adlar çekirdek kelimesini veya linux kelimesini içerir , ancak her ikisini birden içermez . (Ubuntu'da linux kelimesi .)

Red Hat Package Manager ( rpm) ve ilgili yardımcı programları kullanan sistemlerde çekirdekle ilişkili paketler için paket kerneladlarının bulunması yaygındır . Örneğin, Mageia, adları ile başlayan ve biten birkaç pakete sahiptir . Bu paketler hemen hemen her zaman (Mageia ve bunlara sahip herhangi bir işletim sisteminde) , çekirdekli kullanım için sürücüleri kaynaktan oluşturmak için gereken başlık dosyalarını sağlar . Ayrıca kolaylaştırmak için ilgili yardımcı programlar sağlayabilirler. Bu paketler:kerneldevel

  • do not çekirdeğin tam kaynak kodu sağlar. Bu diğer paketler tarafından sağlanır.
  • do not önceden derlenmiş, kullanışlı çekirdek sağlamak. Bu diğer paketler tarafından sağlanır.
  • do not bir derleyici veya diğer birçok amaçlı inşa araçları sağlar. Bunlar da diğer paketler tarafından sağlanır.

Ubuntu'da, buradaki listede görülebileceği gibi, çekirdek üstbilgileri sağlayan paketlerin başlayan adları vardır linux-headers. Genellikle yüklemek için doğru pakettir linux-headers-generic. Ancak, şu anda çalışan çekirdeğinize karşılık gelen üstbilgileri almak için hangi paketin yükleneceğinden emin olmak için şunu çalıştırın:

uname -r

Şuna benzer bir çıktı alırsınız:

3.5.0-36-generic

Yani, bir sürüm numarasına ( .karakterleri ve genellikle en az bir karakteri içerecek -), ardından a -ve ardından hangi tür çekirdeği çalıştırdığınızı gösteren bir veya daha fazla kelimeye sahip olacaksınız.

Eğer varsa sadece şimdi çalışıyor olması ne belirli sürümü için başlıkları istiyorum, adı olan paket yükleyebilir tam çıkışı ile değiştirilir . Örneğin, benim sistemimde:linux-headers-**uname -r

sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic

Hatta otomatikleştirebilirim:

sudo apt-get update && sudo apt-get install linux-headers-`uname -r`

Bu yaklaşımlar eşdeğerdir, ancak genellikle en iyi yol değildir.

Bunun yerine, genellikle her zaman en yeni çekirdek başlıklarını bir güncelleme olarak sağlayan meta paketi yüklemek isteyeceksiniz (sürekli olarak en yeni başlık paketine bağlı olarak). Bu, derlenmiş, çalışan çekirdeğinizin kurulu ve güncellenme biçimiyle paralellik gösterir. Bunu yapmak için, sürüm numarasından sonrakiuname -r çıktı kısmına bakın . Yani, eğer verirse , sadece rol alın.uname -r3.5.0-36-genericgeneric

Ardından , bu parça ile değiştirilen linux-headers-*where adlı paketi kurun *. Yani, benim sistemimde, olurdu linux-headers-genericve yüklemek için bir yolu çalıştırmak olacaktır:

sudo apt-get update && sudo apt-get install linux-headers-generic

Çoğu insan için öyle linux-headers-generic, ancak yüklü ve nasıl yapılandırıldığını Ubuntu bunu yayınladığınız cihazın hangi mimarisi ve tip, yayınladığınız bırakın ve ne bağlı olarak diğer ihtimaller arasında generic-pae, highbank, omap, server, ve virtual.

İlgili Paketler

Başlık dosyaları , başlık dosyaları kullanılan yazılım tarafından sağlanan kolaylıkları kullanan yazılımların geliştirilmesini ve derlenmesini / oluşturulmasını kolaylaştırır. Çekirdek başlıklarına ihtiyaç duymanızın en yaygın nedeni, kaynak koddan bir sürücü (çekirdek modülü) oluşturacak olmanızdır. VMware ve VirtualBox gibi bazı uygulamalar bazen bunu gerektirir ve yapıyı kendiliğinden otomatik hale getirir.

Başlık dosyalarına ek olarak, yazılım oluşturmak için bir derleyici ve diğer araçlara ihtiyaç vardır. Gerekli araçlara sahip olma olasılığınızı en üst düzeye çıkarmak için, build-essentialpaketi de yüklemek iyi bir fikirdir .

Gerçek tam çekirdek kaynak koduna ihtiyaç duyan herkes için nadirdir (tabii ki, çekirdeğinizi kaynaktan oluşturmayı planlamıyorsanız). Ancak buna ihtiyacınız varsa, başka bir paket de yüklemeniz gerekir. Ubuntu'da tam çekirdek kaynak kodu paketi çağrılır linux-source. (Bu, Debian / Ubuntu linuxyerine Linux çekirdeğinin önemli bölümlerini sağlayan paketleri adlandırma kuralına uygundur kernel.)

Hâlâ Sorun yaşıyorsanız

Bu paketlerden herhangi birini yüklemeye çalışırsanız, ancak sorun yaşarsanız ve yardım istiyorsanız, komutları yazdığınız satırlar dahil olmak üzere Terminal'den tam ve tam metni eklemeniz gerekir. Bunu sağlamanın en iyi yolu, sorunuzu düzenlemektir, ancak çok uzunsa, http://paste.ubuntu.com gibi bir yere yapıştırabilir ve bize erişebileceğimiz URL'yi sağlayabilirsiniz.

Bu soruya yorum yaparsanız bana bildirilir. Sorunuzu düzenleyebilir ve sorunuzda verdiğiniz bilgilere dikkat çekmek için buraya yorum yapabilirsiniz. (Önemli bilgiler en iyi soru ve cevaplarda saklanır.) İyi şanslar!


0

Raporda belirtildiği gibi (E: linux-kernel-devel paketi bulunamadı) Böyle bir paket yok. Debian çekirdek paketlerini buradan indirerek istediğiniz her çekirdek sürümünü yükleyebilirsiniz.

Örneğin; 3.9.8 (i386 mimarisi) çekirdeğini kurmak istiyoruz; Tüm ** i386.deb paketlerini ve ayrıca * * * all.deb paketlerini bir klasöre indirin. Terminalde cd komutu ile klasöre girin;

sudo dpkg -i *.deb
sudo update-grub2
sudo reboot

Bu, istediğiniz çekirdek sürümünü yükleyecektir. Bu sitedeki çekirdek ana hattının ve uzun vadeli sürümlerin sürümlerini analiz edebilirsiniz


0

Hangi debiye ihtiyacınız olduğunu kendiniz belirlemelisiniz, ancak Ubunut'un çekirdek yapılarında ihtiyacınız olacak borçlar var .

Dürüst olmak gerekirse , en son çekirdeği çalıştırdığınızdan emin olmak için önce kontrol sudo apt-get updateedip sonra sudo apt-get dist-upgradekısa bir süre içinde tekrar yapmak zorunda kalmayacağım.

Daha sonra, sürümünüzle eşleşen sürümünüz için çekirdek oluşturma listesine bakın uname -r. Her bir build.log dosyasına bakmanız gerekir. Çekirdek olarak listelenen 3.5.0-34 # 55 var ama bu 3.5.7.14-quantal oluşturmak için gerçekten haritalar . Üstbilgilerinizi ve benzerlerini almak için bu sürüme karşılık gelen tüm borçları yükleyin ve derleme araçlarına sahip olduğunuzdan emin olun.sudo apt-get install build-essential

Kilometre devel dosyaları ile ne yapmayı planladığınıza bağlı olarak çok fazla olabilir.


0

linux-kernel-devel, genksim gibi şeyler sağlayan bir SUSE / Redhat paketinin adıdır.

Çok hızlı bir Google, linux-headers-generic'in Debian / Ubuntu'da genksim sağladığını önerir.

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.