หากมีความเป็นไปได้ว่าการขึ้นต่อกันของรุ่นของแพ็คเกจที่อยู่ใน Ubuntu (หรือ Debian ที่ได้รับมาจากการเตรียมการอื่น ๆ ) จะเหมือนกับ deps สำหรับเวอร์ชั่นที่คุณพยายามสร้างคุณสามารถรันapt-get build-dep nginx
หรือaptitude build-dep nginx
- สิ่งนี้จะไม่ติดตั้ง แพคเกจ nginx แต่จะติดตั้งทั้งหมดที่อยู่ในรายการเป็นการอ้างอิง (และการอ้างอิงของพวกเขาตามปกติ) ซึ่งรวมถึงlibssl-dev
(แพคเกจที่คุณกำลังมองหา)
ในกรณีส่วนใหญ่การทำเช่นนี้จะช่วยให้การสร้างเวอร์ชันอื่น (คาดว่าใหม่กว่า) เสร็จสมบูรณ์และช่วยให้คุณติดตั้งแต่ละไลบรารีและไฟล์ส่วนหัวทีละตัว แม้ว่าจะมีการอ้างอิงใหม่ในเวอร์ชันอื่นที่คุณพยายามสร้าง แต่build-dep <package>
ก็เป็นจุดเริ่มต้นที่ดีเนื่องจากคุณต้องติดตั้งการอ้างอิงใหม่เพิ่มเติมด้วยตนเองเท่านั้น
ตัวอย่างเช่นผลลัพธ์บนหนึ่งในเซิร์ฟเวอร์ของฉันคือ:
user@host:~$ sudo aptitude build-dep nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initialising package states... Done
The following NEW packages will be installed:
autotools-dev cvs{a} debhelper gettext{a} html2text{a} intltool-debian{a}
libcroco3{a} libmail-sendmail-perl{a} libpcre3-dev libpcrecpp0{a}
libssl-dev libsys-hostname-long-perl{a} po-debconf{a} zlib1g-dev
0 packages upgraded, 14 newly installed, 0 to remove and 19 not upgraded.
Need to get 7,217kB of archives. After unpacking 22.9MB will be used.
Do you want to continue? [Y/n/?]
มันตั้งใจที่จะติดตั้งบางไลบรารีและส่วนหัวเพื่อเปิดใช้งานการสร้าง nginx แต่ไม่ใช่ตัว nginx
สิ่งหนึ่งที่ควรทราบคือถ้าคุณกำลังรวบรวมสำเนาของคุณเองเพราะคุณต้องการตัวเลือกการสร้างที่แตกต่างกันแทนที่จะต้องการรุ่นที่แตกต่างกันด้วยเหตุผลบางอย่างคุณอาจรวบรวมคอมไพล์จากแหล่งที่มาของที่เก็บสำหรับแพ็กเกจแทนการใช้ต้นน้ำโดยตรง คำถาม SO นี้เป็นหน้าแรกที่มีประโยชน์ซึ่งมาจากการค้นหาอย่างรวดเร็วแม้ว่าคุณจะมีแนวโน้มที่จะค้นหาบทเรียนที่มีรายละเอียดเพิ่มเติมได้อย่างง่ายดายหากคุณต้องการ
สิ่งอื่น ๆ ที่ควรทราบ: แพคเกจที่ติดตั้งเนื่องจากผลลัพธ์apt-get build-dep
จะถูกทำเครื่องหมายว่าติดตั้งด้วยตนเองราวกับว่าคุณได้ทำสิ่งนี้ด้วยมือในขณะที่คุณกำลังทำอยู่ นั่นหมายความว่าคุณไม่สามารถลบพวกเขาทั้งหมดในครั้งเดียว (ไม่มีapt-get unintall-dep
หรือคล้ายกัน) - แม้ว่าจะไม่แตกต่างจากสถานการณ์ที่คุณจะได้รับจากคู่มือการติดตั้งไลบรารี่ / ส่วนหัวต่อไป (ฉันพูดถึงข้อเท็จจริงตามที่บางคนคาดหวัง เพื่อเป็นวิธีการเดียวในการยกเลิกการbuild-dep
ดำเนินการและไม่มี)