Score:0

ติดตั้งซอฟต์แวร์บน Linux ได้ที่ไหน อะไรคือความแตกต่างระหว่าง /opt และ /usr?

ธง us

ฉันต้องการชี้แจงปรัชญาการติดตั้งแอปพลิเคชันซอฟต์แวร์และไลบรารีและแนวทางปฏิบัติที่ดีที่สุดใน Linuxจากความเข้าใจของฉันจาก Filesystem Hierarchy Standard (FHS) จะต้องติดตั้งซอฟต์แวร์ใหม่ใน /opt และนั่นคือสิ่งที่ตัวจัดการแพ็คเกจทำ แต่ตัวจัดการแพ็คเกจยังติดตั้งซอฟต์แวร์แอพพลิเคชั่นในไดเร็กทอรี /use/local หรือเพียงแค่ซอฟต์แวร์ไลบรารีหรือไม่ ตัวอย่างเช่น ฉันติดตั้งไลบรารี Eigen c++ ซึ่งเป็นไลบรารีตามไฟล์ส่วนหัว โดยใช้:

sudo apt ติดตั้ง libeigen3-dev

ฉันพบไฟล์ Eigen ใน /usr/include แต่จากการอ่านเอกสาร CMake เมื่อฉันพัฒนาไลบรารี C++ ฉันควรกำหนดค่า CMake ของฉันให้ติดตั้งใน /usr/local (นี่คือค่าเริ่มต้นสำหรับ CMAKE_INSTALL_PREFIX) สิ่งนี้ทำให้เกิดคำถาม เหตุใด Eigen จึงติดตั้งใน /usr/include แทนที่จะเป็น /usr/local/include ไม่ใช่ไดเรกทอรี /usr/bit /usr/include สำหรับแอปพลิเคชันระบบเช่นคำสั่ง ls และ cat หรือไม่

นอกจากนี้ อะไรคือความแตกต่างระหว่างไลบรารีที่บันทึกไว้ใน /usr/local vs /usr/share?

ขอบคุณมากล่วงหน้าสำหรับความช่วยเหลือของคุณ ฉันหวังว่าจะได้รับความเข้าใจที่ชัดเจนเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดในการติดตั้งแอปพลิเคชันและซอฟต์แวร์ไลบรารีใน Linux

Rob avatar
in flag
Rob
ฉันเชื่ออย่างนอบน้อมว่าไม่มีคำตอบเดียวสำหรับคำถามนี้ เช่น ถ้าคุณพูดว่า $ whereis firefox > คำตอบจะมีลักษณะดังนี้: firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/share/man/man1/firefox.1.gz และทำให้ง่ายขึ้น สิ่งที่คุณไป: $ ซึ่ง firefox และผลลัพธ์จะเป็น: /usr/bin/firefox ดังนั้นการแทงของคุณก็โอเค แต่ยังไม่สรุป แพ็คเกจควรมีรายการเฉพาะของตัวเองเสมอและควรเก็บไว้คนเดียว ;-) ไม่มีกฎหมายกำหนดว่าโฟลเดอร์ใดและอื่นๆ
waltinator avatar
it flag
อ่าน `ผู้ชาย hier`
user535733 avatar
cn flag
"*ต้องติดตั้งซอฟต์แวร์ใหม่ใน /opt*" ไม่ถูกต้อง /opt เป็นเพียงหนึ่งในหลายตำแหน่งที่เป็นไปได้ที่สอดคล้องกับ FHS
Score:6
ธง cn

/เลือก/ ใช้สำหรับแอปพลิเคชันของบุคคลที่สามที่ให้ tar ball เพื่อแยก โดยทั่วไปแล้ว ซอฟต์แวร์จะได้รับการติดตั้งอย่างสมบูรณ์พร้อมการอนุญาตที่ถูกต้อง และคุณจะได้รับคำแนะนำให้คัดลอกบริการไปยังระบบเพื่อเปิดใช้งาน Mysql, Apache, Jasperserver ล้วนมีทางเลือกในการติดตั้ง

/เลือก/ ระบบไม่เคยใช้เพื่อหลีกเลี่ยงความขัดแย้ง

เมื่อติดตั้งซอฟต์แวร์ใน /เลือก/ คุณมักจะติดตั้งด้วยหมายเลขเวอร์ชันในชื่อไดเร็กทอรี เพื่อให้คุณสามารถติดตั้งได้มากกว่า 1 เวอร์ชันและใช้ symlink สำหรับเวอร์ชันที่ใช้งานอยู่ ด้วยวิธีนี้ คุณจะสามารถติดตั้ง Mysql v8 บนระบบที่ยังคงใช้ v5 ได้ ทดสอบแอปพลิเคชันของคุณก่อนที่จะใช้งาน Ubuntu รุ่นถัดไป

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

Ahmad Abuaish avatar
us flag
สวัสดี @Rinzwind ขอบคุณมากสำหรับการตอบกลับโดยละเอียด คำตอบของคุณช่วยให้ฉันเข้าใจจุดประสงค์ของ `/opt` ฉันยังได้ศึกษาเพิ่มเติมใน FHS และเข้าใจการใช้ `/usr/local` อย่างเหมาะสม ซอฟต์แวร์ที่ติดตั้งในเครื่องควรติดตั้งใน `/usr/local' และซอฟต์แวร์ที่ติดตั้งโดยตัวจัดการแพ็คเกจจะถูกติดตั้งใน `/usr` ดังนั้นใน CMakeLists ของฉัน ฉันต้องใช้ `/usr/local/lib` และ `/usr/local/include` เป็นปลายทาง ขอบคุณมากอีกครั้ง @Rinzwind สำหรับการตอบกลับโดยละเอียดของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา