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