ติดตั้งใน / usr / local / using apt-get


0

มีวิธีการติดตั้งในพา ธ / usr / local โดยเฉพาะโดยใช้ apt-get หรือไม่? ฉันใช้ Linux Mint 16 และฉันต้องการติดตั้งบางไลบรารีในพา ธ นี้ ไลบรารีที่ติดตั้งทั้งหมดของฉันถูกติดตั้งใน / usr / และมีเพียงบางไลบรารีเท่านั้นที่มีใน / usr / local

ฉันสามารถติดตั้ง Boost Library โดยใช้ไฟล์ tar.gz แต่มีวิธีการติดตั้ง apt-get หรือไม่?


นอกจากนี้ยังอยู่ใน SU นี้ยังเป็นซ้ำกับคำถามนี้
rubenvb

นั่นเป็นเหตุผลที่ฉันไม่ได้รับคำตอบที่นี่ ขอโทษสำหรับปัญหา?
user166289

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

@ user166289 ปัญหาที่คุณพยายามแก้ไขคืออะไร ทำไมคุณเชื่อว่า/usr/localจะดีกว่า/usr?
jpaugh

คำตอบ:


3

ไม่ควรมีวิธีการใด ๆ ให้ดูคำตอบนี้

นี่เป็นเพราะมาตรฐานลำดับขั้นของระบบไฟล์สงวนไว้อย่างชัดเจน/usr/local/สำหรับโปรแกรมและข้อมูลที่ใช้ทั้งระบบ แต่ติดตั้งแบบโลคัลโดย sysadmin โปรดสละเวลาอ่าน FHS (ซึ่งมีเหตุผลด้วย)

BT คุณมักจะไม่สามารถย้ายไฟล์ไบนารีและข้อมูลที่เกี่ยวข้องได้เนื่องจากโปรแกรมส่วนใหญ่มีเส้นทางไฟล์ในตัว ในทางปฏิบัติในการติดตั้งพวกเขาภายใต้/usr/local/ คุณมักจะต้องกำหนดค่าใหม่และรวบรวมพวกเขาอีกครั้ง

ดังนั้นการ.debติดตั้งไฟล์ภายใต้แพคเกจจึงเป็นไปตาม/usr/local/ข้อกำหนดและมาตรฐาน


ฉันไม่เข้าใจ ฉันไม่ได้ดูแลระบบของเครื่องของฉันเอง?
zneak

จากนั้นรวบรวมซอฟต์แวร์จากซอร์สโค้ด
Basile Starynkevitch

1
ฉันไม่ได้โต้แย้งผลลัพธ์สุดท้าย แต่ในแง่ของคำตอบของคุณนั่นหมายความว่ามาตรฐานระบบไฟล์ของลำดับชั้นสร้างความแตกต่างระหว่าง "ติดตั้งโดย apt-get" และ "ติดตั้งโดยทำการติดตั้ง" หรือไม่?
zneak

ใช่. ซอฟต์แวร์ GNU ส่วนใหญ่จะติดตั้งตามค่าเริ่มต้นพร้อม/usr/local/ คำนำหน้า (หากคุณไม่ได้ให้ไว้configure) แต่การแจกจ่ายคือการบรรจุด้วย/usr/คำนำหน้า (เช่นกำลังทำconfigureด้วย--prefix=/usr/... )
Basile Starynkevitch

1
@zneak มันไม่ได้แยกความแตกต่างที่ติดตั้งซอฟต์แวร์ แต่ที่รวบรวมมัน นี่คือความแตกต่างที่มีประโยชน์มากขึ้นส่วนหนึ่งเป็นเพราะผู้ดูแลแพคเกจจะต้องผ่านห่วงจำนวนมากเพื่อให้แน่ใจว่าซอฟต์แวร์ของพวกเขาติดตั้งและทำงานได้อย่างสง่างามในทุกระบบ หากคุณติดตั้งซอฟต์แวร์ที่ไม่ได้บรรจุไปยังสถานที่เดียวกันคุณอาจจะมีความขัดแย้งกับแพคเกจระบบที่ควรจะเป็นอย่างอื่นเพียงแค่ทำงานและคุณจะสูญเสียอิสระในการรวบรวมซอฟแวร์ แต่คุณต้องการ (ตามที่คุณมีกับ/usr/local.
jpaugh

1

ไม่และคุณไม่จำเป็นต้องทำ

วัตถุประสงค์/usr/localคือเพื่อแยกแยะซอฟต์แวร์ที่รวบรวมและติดตั้งโดยผู้ดูแลระบบท้องถิ่นจากซอฟต์แวร์ที่แจกจ่ายกับระบบ (นั่นคือซอฟต์แวร์ที่สามารถติดตั้งผ่านapt-get)

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

ผู้ดูแลแพ็คเกจต้องทำงานพิเศษมากเมื่อรวบรวมแพ็คเกจเพื่อให้แน่ใจว่าทำงานได้อย่างไร้ที่ติในทุกการติดตั้งและไม่คำนึงถึงแพคเกจอื่น ๆ ที่ติดตั้ง สิ่งนี้เป็นไปได้ก็ต่อเมื่อพวกเขาสามารถดูที่เก็บของแพ็คเกจและรู้ว่าทุก ๆ แพ็คเกจที่สามารถติดตั้งได้ (ในทางปฏิบัติพวกเขาอาจเกี่ยวข้องกับชุดย่อยของแพ็คเกจเช่น libc toolchain และไลบรารี SDL เป็นต้น)

การรวบรวมแพ็คเกจด้วยตัวคุณเองคือ (โดยการเปรียบเทียบ) รวดเร็วและหลวม: คุณไม่สนใจการเพิ่มความสะดวกในการพกพา คุณเพียงแค่ต้องการให้มันสร้างและทำงานกับเครื่องของคุณ คุณไม่ดูแลถ้ามีกันไม่ได้กับสิ่งที่อยู่ภายใต้/usrเพราะมันจะไม่ได้รับการเขียนทับและคุณมีอิสระในการติดตั้งซ้ำกันไม่ได้ของห้องสมุดใด ๆ /usr/localตราบใดที่คุณอยู่ภายใต้ คุณอาจมีข้อกำหนดที่เฉพาะเจาะจงมาก (เช่นการใช้ประโยชน์จากชุดคำสั่งเฉพาะของเครื่องเพื่อประสิทธิภาพที่เพิ่มขึ้น) ซึ่งไม่ได้ใช้กับผู้ใช้รายอื่น ๆ ในการแจกจ่าย linux ของคุณ และหากไม่สามารถใช้งานร่วมกับซอฟต์แวร์อื่น ๆ ที่คุณยังไม่ได้ติดตั้งคุณจะต้องจัดการกับปัญหานั้นเมื่อพยายามติดตั้งซอฟต์แวร์ใหม่ไม่ใช่ล่วงหน้า


บันทึก Side: เมื่อคุณติดตั้งทั้งกองแพคเกจสำหรับวัตถุประสงค์เฉพาะหรือติดตั้งอะไรจากผู้ผลิตบุคคลที่ 3 มันเป็นเรื่องธรรมดาที่จะแยกเหล่านี้จากการรับประทานอาหารไปได้ภายใต้/usr/localในขณะที่ยังปกป้องความมั่นคงของ/usrโดยการติดตั้งแต่ละ เป็นสถานที่ที่ไม่ซ้ำกันภายใต้หรือ/opt/<vendor-name> /opt/<stack-name>
jpaugh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.