apa persamaan linux-kernel-devel dalam 12.04.2 LTS 3.5.0?

14

maaf untuk pertanyaan noob, tetapi ketika saya mencoba

sudo apt-get install Linux-kernel-devel 

Saya mendapatkan yang berikut ini:

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  

Saya sudah mencoba yang berikut ini:

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

tanpa sukacita ... ada saran?

paschwan
sumber
2
Apa yang Anda harapkan dari paket linux-kernel-devel lakukan? Apakah Anda mencari tajuk, atau yang lain?
Robie Basak

Jawaban:

15

Ringkasan bisnis plan

Anda mungkin ingin menginstal paket yang disebut linux-headers-generic.

Jika berjalan uname -r memberi Anda sesuatu selain genericsetelah nomor versi, gantikan dengan genericin linux-headers-generic. (Ini mungkin serveratau generic-paepada beberapa instalasi dari beberapa rilis Ubuntu, dan ada beberapa "rasa" kernel lainnya.)

Karena Anda kemungkinan besar membutuhkan ini sehingga Anda dapat membangun driver (yang mungkin otomatis, Anda mungkin tidak "membangun sendiri"), itu ide yang baik untuk menginstal build-essentialjuga untuk membuatnya sehingga Anda mungkin akan memiliki semua alat yang diperlukan .

Penjelasan Lengkap

Sepengetahuan saya, tidak ada sistem operasi yang memiliki paket yang disebut Linux-kernel-devel. Ini karena dua alasan:

  • Nama paket yang dimulai dengan huruf besar sangat jarang, untuk OS seperti Unix.
  • Sistem operasi GNU / Linux biasanya menamai paket-paket mereka yang berhubungan dengan kernel sehingga nama-nama tersebut mengandung kata kernel atau kata linux , tetapi tidak keduanya. (Di Ubuntu, itu kata linux .)

Ini umum untuk paket yang berhubungan dengan kernel pada sistem yang menggunakan Red Hat Package Manager ( rpm) dan utilitas terkait untuk kernelmengatasnamakan paket mereka. Misalnya, Mageia memiliki sejumlah paket yang namanya dimulai kerneldan diakhiri devel. Paket-paket ini hampir selalu (pada Mageia dan OS apa pun yang memilikinya) menyediakan file header diperlukan untuk membangun driver dari sumber untuk digunakan dengan kernel. Mereka juga dapat menyediakan utilitas terkait untuk memfasilitasi. Paket-paket ini:

  • melakukan tidak menyediakan kode sumber penuh kernel. Itu disediakan oleh paket lain.
  • lakukan tidak memberikan pre-compiled, kernel dapat digunakan. Itu disediakan oleh paket lain.
  • jangan tidak memberikan compiler atau paling alat tujuan membangun lainnya. Itu juga disediakan oleh paket lain.

Di Ubuntu, seperti dapat dilihat dalam daftar di sini , paket-paket yang menyediakan header kernel memiliki nama yang dimulai dengan linux-headers. Biasanya paket yang benar untuk diinstal adalah linux-headers-generic. Namun, untuk memastikan paket apa yang harus diinstal untuk mendapatkan header yang sesuai dengan kernel yang sedang Anda jalankan, jalankan:

uname -r

Anda akan mendapatkan output yang terlihat seperti:

3.5.0-36-generic

Artinya, Anda akan memiliki nomor versi (yang akan menyertakan .karakter dan biasanya setidaknya satu- ), diikuti oleh -, diikuti oleh satu atau lebih kata yang mengindikasikan jenis kernel apa yang Anda jalankan.

Jika Anda hanya ingin header untuk versi tertentu Anda kebetulan berjalan sekarang, Anda bisa menginstal paket yang namanya linux-headers-*mana *digantikan oleh output penuh uname -r. Misalnya, di sistem saya, saya bisa menjalankan:

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

Saya bahkan dapat mengotomatisasi:

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

Pendekatan-pendekatan ini setara, tetapi biasanya bukan cara terbaik untuk melakukannya.

Sebagai gantinya, Anda biasanya ingin menginstal metapackage yang selalu menyediakan header kernel terbaru sebagai pembaruan (dengan terus-menerus bergantung pada paket header apa pun yang terbaru). Ini sejajar dengan cara Anda mengkompilasi, menjalankan kernel diinstal dan diperbarui. Untuk melakukan itu, lihat saja pada bagian uname -rkeluaran setelah nomor versi. Artinya, jika uname -rmemberi Anda 3.5.0-36-generic, ambil sajageneric bagian itu.

Kemudian instal paket yang disebut di linux-headers-*mana *diganti oleh bagian itu. Jadi, pada sistem saya, itu akan menjadi linux-headers-genericdan satu cara saya dapat menginstalnya adalah dengan menjalankan:

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

Bagi kebanyakan orang itu linux-headers-generic, tetapi tergantung pada apa Ubuntu melepaskan Anda menjalankan, apa arsitektur dan jenis perangkat Anda menjalankannya pada, dan bagaimana ia diinstal dan dikonfigurasi, kemungkinan lain termasuk generic-pae, highbank, omap, server, danvirtual .

Paket Terkait

File header memfasilitasi pengembangan dan penyusunan / pengembangan perangkat lunak yang menggunakan fasilitas yang disediakan oleh perangkat lunak yang file headernya digunakan. Alasan paling umum Anda mungkin perlu header kernel adalah jika Anda akan membangun driver (modul kernel) dari kode sumber. Beberapa aplikasi, seperti VMware dan VirtualBox, kadang-kadang akan memerlukan ini, dan akan mengotomatisasi pembuatannya sendiri.

Selain file header, untuk membangun perangkat lunak kompiler dan alat-alat lain diperlukan. Untuk memaksimalkan kemungkinan Anda memiliki alat yang diperlukan, sebaiknya instalbuild-essential paket.

Tidak umum bagi siapa pun untuk membutuhkan kode sumber kernel penuh yang sebenarnya (kecuali, tentu saja, Anda berencana membangun kernel dari sumber). Tetapi jika Anda memang membutuhkannya, Anda harus menginstal paket lain juga. Di Ubuntu paket untuk kode sumber kernel lengkap disebut linux-source. (Ini sesuai dengan konvensi penamaan paket Debian / Ubuntu yang menyediakan bagian substantif dari kernel Linux linuxdaripada kernel.)

Jika Anda Masih Mengalami Kesulitan

Jika Anda mencoba menginstal salah satu dari paket ini tetapi mengalami masalah, dan Anda ingin bantuan, maka Anda harus memasukkan teks lengkap dan tepat dari Terminal, termasuk baris tempat Anda mengetik perintah. Cara terbaik untuk menyediakan ini adalah dengan mengedit pertanyaan Anda, tetapi jika terlalu lama, Anda dapat menempelkannya di suatu tempat seperti http://paste.ubuntu.com dan berikan kami URL tempat kami dapat mengaksesnya.

Jika Anda mengomentari pertanyaan ini, saya akan diberi tahu. Anda dapat mengedit pertanyaan Anda dan juga berkomentar di sini untuk menarik perhatian pada informasi yang Anda berikan dalam pertanyaan Anda. (Informasi penting sebaiknya disimpan dalam pertanyaan dan jawaban.) Semoga berhasil!

Eliah Kagan
sumber
0

Seperti yang dikatakan dalam laporan (E: Tidak dapat menemukan paket linux-kernel-devel) Tidak ada paket seperti itu. Anda dapat menginstal setiap versi kernel yang Anda inginkan dengan mengunduh paket-paket kernel debian dari sini

Sebagai contoh; kami ingin menginstal kernel 3.9.8 (arsitektur i386); Unduh semua paket ** i386.deb dan juga paket * * * all.deb ke folder. Masuk ke folder dengan perintah cd di terminal;

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

Ini akan menginstal versi kernel yang Anda inginkan. Anda dapat menganalisis versi-versi dari kernel utama dan versi jangka panjang di situs ini

ubuntu_tr
sumber
0

Anda harus memetakan diri Anda sendiri deb mana yang Anda butuhkan, tetapi ada utang yang Anda butuhkan dalam pembuatan kernel Ubunut .

Jujur saya pertama kali akan memeriksa sudo apt-get updatedan kemudian sudo apt-get dist-upgradeuntuk memastikan Anda menjalankan kernel terbaru dan tidak perlu melakukan ini lagi segera.

Selanjutnya lihat daftar kernel build untuk versi Anda yang cocok dengan Anda uname -r. Anda perlu melihat di masing-masing build.log build untuk mengetahui versi kepala mana yang akan mereka buat pemetaannya. Saya memiliki 3.5.0-34 # 55 terdaftar sebagai kernel saya tetapi ini benar-benar peta untuk membangun 3.5.7.14-quantal . Instal semua utang yang terkait dengan versi itu untuk mendapatkan tajuk dan semacamnya, dan pastikan Anda memiliki alat bantu bangunan Andasudo apt-get install build-essential

Jarak tempuh Anda mungkin sangat tergantung pada apa yang Anda rencanakan dengan file devel.

Kallor
sumber
0

linux-kernel-devel adalah nama paket SUSE / Redhat yang menyediakan hal-hal seperti genksyms.

Google yang sangat cepat menunjukkan bahwa linux-headers-generic menyediakan genksym pada Debian / Ubuntu.

Tim Baverstock
sumber