linux-kernel-devel มีค่าเท่ากันใน 12.04.2 LTS 3.5.0 คืออะไร


14

ขอโทษสำหรับคำถาม noob แต่เมื่อฉันพยายาม

sudo apt-get install Linux-kernel-devel 

ฉันได้รับต่อไปนี้:

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  

ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:

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

ด้วยความปิติยินดี ... คำแนะนำใด ๆ


2
สิ่งที่คุณคาดหวังแพคเกจ linux-kernel-devel จะทำอย่างไร คุณกำลังมองหาส่วนหัวหรืออย่างอื่นอยู่ใช่ไหม
Robie Basak

คำตอบ:


15

บทสรุปผู้บริหาร

linux-headers-genericคุณอาจต้องการที่จะติดตั้งแพคเกจที่เรียกว่า

ถ้าการทำงานuname -rจะช่วยให้คุณสิ่งอื่น ๆ กว่าgenericหลังจากหมายเลขรุ่นแทนว่าสำหรับในgeneric linux-headers-generic(นี่อาจเป็นserverหรือgeneric-paeในบางการติดตั้งของ Ubuntu บางรุ่นและมี "รสชาติ" เคอร์เนลเป็นครั้งคราว)

เนื่องจากคุณต้องการสิ่งนี้มากที่สุดเพื่อให้คุณสามารถสร้างโปรแกรมควบคุม (ซึ่งอาจเป็นแบบอัตโนมัติคุณอาจไม่ได้ "สร้างด้วยตัวเอง") ดังนั้นจึงเป็นความคิดที่ดีที่จะติดตั้งbuild-essentialเช่นกันเพื่อให้คุณมีเครื่องมือที่จำเป็น .

คำอธิบายแบบเต็ม

Linux-kernel-develที่ดีที่สุดของความรู้ของฉันไม่มีระบบปฏิบัติการมีแพคเกจที่เรียกว่า นี่คือสองเหตุผล:

  • ชื่อแพ็คเกจที่ขึ้นต้นด้วยตัวอักษรพิมพ์ใหญ่หายากมากสำหรับระบบปฏิบัติการ Unix
  • ระบบปฏิบัติการ GNU / Linux มักตั้งชื่อแพ็คเกจที่เกี่ยวข้องกับเคอร์เนลเพื่อให้ชื่อมีคำว่าkernelหรือ word linuxแต่ไม่ใช่ทั้งสองอย่าง (บน Ubuntu มันเป็นคำว่าlinux )

เป็นเรื่องปกติสำหรับแพคเกจที่เกี่ยวข้องกับเคอร์เนลในระบบที่ใช้ Red Hat Package Manager ( rpm) และยูทิลิตี้ที่เกี่ยวข้องเพื่อให้มีkernelชื่อของแพ็คเกจ ยกตัวอย่างเช่น Mageia มีจำนวนของแพคเกจที่มีชื่อขึ้นต้นด้วยและสิ้นสุดในkernel develแพ็คเกจเหล่านี้มักจะ (บน Mageia และระบบปฏิบัติการใด ๆ ที่มี) จัดเตรียมไฟล์ส่วนหัวที่จำเป็นในการสร้างไดรเวอร์จากแหล่งที่มาเพื่อใช้กับเคอร์เนล พวกเขายังอาจจัดหาสาธารณูปโภคที่เกี่ยวข้องเพื่ออำนวยความสะดวก แพ็คเกจเหล่านี้:

  • จะไม่ให้รหัสที่มาเต็มรูปแบบของเมล็ด จัดทำโดยแพ็คเกจอื่น
  • จะไม่ให้ก่อนรวบรวมเมล็ดสามารถใช้งานได้ จัดทำโดยแพ็คเกจอื่น
  • ไม่ได้ให้คอมไพเลอร์หรืออื่น ๆ ส่วนใหญ่เครื่องมือวัตถุประสงค์สร้าง เหล่านั้นก็มีให้โดยแพ็คเกจอื่น ๆ

ใน Ubuntu ที่สามารถมองเห็นได้ในรายการที่นี่linux-headersแพคเกจที่ให้ส่วนหัวเคอร์เนลมีชื่อที่ขึ้นต้นด้วย linux-headers-genericมักจะเป็นแพคเกจที่ถูกต้องในการติดตั้งคือ อย่างไรก็ตามเพื่อให้แน่ใจว่าจะติดตั้งแพคเกจใดเพื่อรับส่วนหัวที่สอดคล้องกับเคอร์เนลที่ใช้งานอยู่ให้รัน:

uname -r

คุณจะได้ผลลัพธ์ที่ดูเหมือน:

3.5.0-36-generic

นั่นคือคุณจะมีหมายเลขเวอร์ชัน (ซึ่งจะรวมถึง.ตัวอักษรและโดยปกติแล้วอย่างน้อยหนึ่งตัว-) ตามด้วย a -และตามด้วยคำอย่างน้อยหนึ่งคำที่ระบุว่าคุณใช้เคอร์เนลประเภทใด

หากคุณเพียงแค่ต้องการส่วนหัวสำหรับรุ่นเฉพาะที่คุณจะได้รับการทำงานในตอนนี้คุณสามารถติดตั้งแพคเกจที่มีชื่อlinux-headers-*ที่จะถูกแทนที่ด้วยการส่งออกเต็มรูปแบบของ* uname -rตัวอย่างเช่นในระบบของฉันฉันสามารถเรียกใช้:

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

ฉันสามารถทำให้เป็นแบบอัตโนมัติได้:

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

วิธีการเหล่านี้เทียบเท่ากัน แต่โดยปกติจะไม่ใช่วิธีที่ดีที่สุด

แต่โดยปกติคุณจะต้องการติดตั้งmetapackageที่ให้ส่วนหัวเคอร์เนลล่าสุดเป็นการอัพเดทเสมอ สิ่งนี้คล้ายคลึงกับวิธีการติดตั้งเคอร์เนลที่คอมไพล์ของคุณและได้รับการอัพเดท ในการทำเช่นนั้นให้ดูที่ส่วนของuname -rผลลัพธ์หลังจากหมายเลขรุ่น นั่นคือถ้าuname -rให้คุณ3.5.0-36-genericมีgenericส่วนร่วม

แล้วติดตั้งแพคเกจที่เรียกว่าlinux-headers-*ที่*จะถูกแทนที่ด้วยส่วนหนึ่ง ดังนั้นในระบบของฉันมันจะเป็นlinux-headers-genericและวิธีหนึ่งที่ฉันสามารถติดตั้งได้ก็คือให้ทำงาน:

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

สำหรับคนส่วนใหญ่มันเป็นlinux-headers-genericแต่ขึ้นอยู่กับสิ่งที่ Ubuntu ปล่อยคุณใช้สิ่งที่สถาปัตยกรรมและชนิดของอุปกรณ์ที่คุณกำลังทำงานบนและวิธีการที่จะมีการติดตั้งและตั้งค่าความเป็นไปได้อื่น ๆ รวมถึงgeneric-pae, highbank, omap, และservervirtual

แพ็คเกจที่เกี่ยวข้อง

ไฟล์ส่วนหัวอำนวยความสะดวกในการพัฒนาและรวบรวม / สร้างซอฟต์แวร์ที่ใช้เครื่องมืออำนวยความสะดวกที่จัดทำโดยซอฟต์แวร์ที่มีไฟล์ส่วนหัวที่ใช้งานอยู่ สาเหตุที่พบบ่อยที่สุดที่คุณอาจต้องการส่วนหัวของเคอร์เนลคือถ้าคุณจะสร้างไดรเวอร์ (โมดูลเคอร์เนล) จากซอร์สโค้ด บางแอปพลิเคชันเช่น VMware และ VirtualBox บางครั้งจะต้องใช้สิ่งนี้และจะสร้างโครงสร้างอัตโนมัติ

นอกจากไฟล์ส่วนหัวเพื่อสร้างซอฟต์แวร์คอมไพเลอร์และเครื่องมืออื่น ๆ ที่จำเป็น เพื่อเพิ่มความเป็นไปได้ที่คุณมีเครื่องมือที่จำเป็นสูงสุดคุณควรติดตั้งbuild-essentialแพคเกจด้วยเช่นกัน

เป็นเรื่องแปลกสำหรับทุกคนที่ต้องการซอร์สโค้ดเคอร์เนลเต็มรูปแบบ (ยกเว้นว่าคุณกำลังวางแผนที่จะสร้างเคอร์เนลจากซอร์สโค้ด) แต่ถ้าคุณต้องการคุณก็ต้องติดตั้งแพ็คเกจอื่นด้วย ใน Ubuntu linux-sourceแพคเกจสำหรับรหัสที่มาเคอร์เนลเต็มรูปแบบที่เรียกว่า (นี่เป็นไปตามอนุสัญญาเดเบียน / อูบุนตูของแพ็คเกจการตั้งชื่อที่ให้ส่วนสำคัญของเคอร์เนลลินุกซ์linuxมากกว่าkernel)

หากคุณยังมีปัญหา

หากคุณพยายามติดตั้งแพ็กเกจเหล่านี้ แต่พบปัญหาและต้องการความช่วยเหลือคุณจะต้องรวมข้อความที่สมบูรณ์และแน่นอนจากเทอร์มินัลรวมถึงบรรทัดที่คุณพิมพ์คำสั่ง วิธีที่ดีที่สุดในการให้สิ่งนี้คือการแก้ไขคำถามของคุณ แต่ถ้ามันยาวเกินไปคุณสามารถวางไว้ที่ไหนสักแห่งเช่นhttp://paste.ubuntu.comและให้ URL ที่เราสามารถเข้าถึงได้

หากคุณแสดงความคิดเห็นในคำถามนี้ฉันจะได้รับแจ้ง คุณสามารถแก้ไขคำถามของคุณและแสดงความคิดเห็นได้ที่นี่เพื่อดึงดูดความสนใจไปยังข้อมูลที่คุณให้ไว้ในคำถามของคุณ (ข้อมูลสำคัญถูกเก็บไว้อย่างดีที่สุดในคำถามและคำตอบ) ขอให้โชคดี!


0

ตามรายงานดังกล่าว (E: ไม่สามารถค้นหาแพ็คเกจ linux-kernel-devel) ไม่มีแพ็คเกจดังกล่าว คุณสามารถติดตั้งเคอร์เนลทุกรุ่นที่คุณต้องการโดยดาวน์โหลดแพ็คเกจเคอร์เนลเดเบียนจากที่นี่

ตัวอย่างเช่น; เราต้องการติดตั้งเคอร์เนล 3.9.8 (สถาปัตยกรรม i386); ดาวน์โหลดแพ็คเกจ **ทั้งหมดi386.deb และแพ็คเกจ * * * all.deb ไปยังโฟลเดอร์ เข้าสู่โฟลเดอร์ด้วยคำสั่ง cd ใน terminal;

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

นี่จะติดตั้งเวอร์ชันเคอร์เนลที่คุณต้องการ คุณสามารถวิเคราะห์เวอร์ชันของเคอร์เนลฉีดและเวอร์ชันระยะยาวในไซต์นี้


0

คุณจะต้องแผนที่ออกตัวเองซึ่งเป็นที่เฉพาะเจาะจง deb ที่คุณต้องการ แต่มีบส์ที่คุณจะต้องอยู่ในเคอร์เนล Ubunut ของสร้าง

สุจริตก่อนอื่นฉันต้องตรวจสอบsudo apt-get updateแล้วsudo apt-get dist-upgradeเพื่อให้แน่ใจว่าคุณใช้เคอร์เนลล่าสุดและไม่จำเป็นต้องทำอีกครั้งในไม่ช้า

uname -rดูต่อไปผ่านการสร้างเคอร์เนลรายการสำหรับรุ่นที่ตรงกับของคุณ คุณต้องดูในแต่ละ builds build.log เพื่อค้นหาว่าเวอร์ชันใดที่ head head กำลังแม็พที่ build ฉันมี 3.5.0-34 # 55 ระบุว่าเป็นเคอร์เนลของฉัน แต่นี้จริงๆแผนที่ออกไปสร้าง3.5.7.14-quantal ติดตั้ง debs ทั้งหมดที่สอดคล้องกับเวอร์ชันนั้นเพื่อให้ได้ส่วนหัวและเช่นนั้นและตรวจสอบให้แน่ใจว่าคุณมีเครื่องมือสร้างของคุณด้วยsudo apt-get install build-essential

การสะสมไมล์ของคุณอาจขึ้นอยู่กับว่าคุณวางแผนจะทำอย่างไรกับไฟล์ devel


0

linux-kernel-devel เป็นชื่อของแพ็คเกจ SUSE / Redhat ที่ให้สิ่งต่าง ๆ เช่น genksyms

Google ที่รวดเร็วมากแนะนำว่า linux-headers-generic ให้ genksyms บน Debian / Ubuntu

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.