บทสรุปผู้บริหาร
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
, และserver
virtual
แพ็คเกจที่เกี่ยวข้อง
ไฟล์ส่วนหัวอำนวยความสะดวกในการพัฒนาและรวบรวม / สร้างซอฟต์แวร์ที่ใช้เครื่องมืออำนวยความสะดวกที่จัดทำโดยซอฟต์แวร์ที่มีไฟล์ส่วนหัวที่ใช้งานอยู่ สาเหตุที่พบบ่อยที่สุดที่คุณอาจต้องการส่วนหัวของเคอร์เนลคือถ้าคุณจะสร้างไดรเวอร์ (โมดูลเคอร์เนล) จากซอร์สโค้ด บางแอปพลิเคชันเช่น VMware และ VirtualBox บางครั้งจะต้องใช้สิ่งนี้และจะสร้างโครงสร้างอัตโนมัติ
นอกจากไฟล์ส่วนหัวเพื่อสร้างซอฟต์แวร์คอมไพเลอร์และเครื่องมืออื่น ๆ ที่จำเป็น เพื่อเพิ่มความเป็นไปได้ที่คุณมีเครื่องมือที่จำเป็นสูงสุดคุณควรติดตั้งbuild-essential
แพคเกจด้วยเช่นกัน
เป็นเรื่องแปลกสำหรับทุกคนที่ต้องการซอร์สโค้ดเคอร์เนลเต็มรูปแบบ (ยกเว้นว่าคุณกำลังวางแผนที่จะสร้างเคอร์เนลจากซอร์สโค้ด) แต่ถ้าคุณต้องการคุณก็ต้องติดตั้งแพ็คเกจอื่นด้วย ใน Ubuntu linux-source
แพคเกจสำหรับรหัสที่มาเคอร์เนลเต็มรูปแบบที่เรียกว่า (นี่เป็นไปตามอนุสัญญาเดเบียน / อูบุนตูของแพ็คเกจการตั้งชื่อที่ให้ส่วนสำคัญของเคอร์เนลลินุกซ์linux
มากกว่าkernel
)
หากคุณยังมีปัญหา
หากคุณพยายามติดตั้งแพ็กเกจเหล่านี้ แต่พบปัญหาและต้องการความช่วยเหลือคุณจะต้องรวมข้อความที่สมบูรณ์และแน่นอนจากเทอร์มินัลรวมถึงบรรทัดที่คุณพิมพ์คำสั่ง วิธีที่ดีที่สุดในการให้สิ่งนี้คือการแก้ไขคำถามของคุณ แต่ถ้ามันยาวเกินไปคุณสามารถวางไว้ที่ไหนสักแห่งเช่นhttp://paste.ubuntu.comและให้ URL ที่เราสามารถเข้าถึงได้
หากคุณแสดงความคิดเห็นในคำถามนี้ฉันจะได้รับแจ้ง คุณสามารถแก้ไขคำถามของคุณและแสดงความคิดเห็นได้ที่นี่เพื่อดึงดูดความสนใจไปยังข้อมูลที่คุณให้ไว้ในคำถามของคุณ (ข้อมูลสำคัญถูกเก็บไว้อย่างดีที่สุดในคำถามและคำตอบ) ขอให้โชคดี!