ฉันต้องรวบรวมซอฟต์แวร์บางอย่างในเครื่อง Fedora ของฉัน สถานที่ที่ดีที่สุดในการวางไว้จึงไม่รบกวนการทำงานของซอฟต์แวร์สำเร็จรูป
ฉันต้องรวบรวมซอฟต์แวร์บางอย่างในเครื่อง Fedora ของฉัน สถานที่ที่ดีที่สุดในการวางไว้จึงไม่รบกวนการทำงานของซอฟต์แวร์สำเร็จรูป
คำตอบ:
Rule of thumb อย่างน้อยในระบบ Debian-flavored:
/usr/local
สำหรับสิ่งซึ่งก็คือ "ทั้งระบบ" -ie /usr/local
มีแนวโน้มที่จะเริ่มต้นใน distro ของ$PATH
และตามลำดับชั้นไดเรกทอรี UNIX กับมาตรฐาน/usr/local/bin
, /usr/local/lib
ฯลฯ
/opt
สำหรับสิ่งที่คุณไม่ไว้วางใจที่จะทำให้ทั้งระบบที่มีต่อแอปคำนำหน้า-IE /opt/firefox-3.6.8
, /opt/mono-2.6.7
และอื่น ๆ สิ่งต่าง ๆ ในที่นี่ต้องการการจัดการที่รอบคอบมากขึ้น แต่ก็มีโอกาสน้อยที่จะทำให้ระบบของคุณพัง - และง่ายกว่าที่จะลบออกเนื่องจากคุณเพิ่งลบโฟลเดอร์และมันหายไป
/opt
หากคุณsudo
ติดตั้ง
$PATH
หากคุณจริงๆไม่ต้องการเข้าไปยุ่งเลยไม่ได้ใส่มันทุกที่ในของคุณ
หากคุณต้องการมันในอย่างน้อยให้แน่ใจว่าจะไม่ติดตั้ง$PATH
/usr/local
ฉันได้พบว่าจำนวนมากของซอฟแวร์ดูมีแม้จะติดตั้งโดย distro /usr
ลง
วิธีที่ฉันโปรดปรานในการติดตั้งซอฟต์แวร์ที่คอมไพล์เองอยู่ใน$HOME
ไดเรกทอรีของฉัน ด้วยวิธีนี้คุณไม่ต้องใช้sudo
เพื่ออะไรและมันแยกออกจากระบบที่เหลือของคุณเป็นอย่างมาก ตัวอย่างเช่น:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
และถ้าคุณต้องการแล้วคุณสามารถเพิ่มที่คุณ/home/username/stage/bin
$PATH
/usr/local
)
FHS บอกว่าจะวางไว้ใน / usr / localที่การแจกแจงไม่ควรแตะต้องมัน /usr/local/bin
สำหรับไบนารี/usr/local/src
สำหรับแหล่งที่มาและ/usr/local/lib
สำหรับไลบรารี ดูข้อมูลจำเพาะ FHSสำหรับข้อมูลเพิ่มเติม
/etc/mysql
การกำหนดค่านี้หรือไม่
/usr/local/etc
โฟลเดอร์ตามค่าเริ่มต้นฉันเดาว่าฉันควรใช้ ... :-)
/opt
ส่วนใหญ่เวลาที่ผมชอบที่จะวางสิ่งที่รวบรวมของตัวเองใน มันเป็นสถานที่มาตรฐานหลอก นอกจากนี้คุณยังสามารถพิจารณา/usr/local
ได้ แต่ฉันชอบที่จะทำให้สิ่งของของฉันโดดเดี่ยว 100%
/opt
แต่ฉันได้เห็นหลายครั้งที่/usr/local
เกลื่อนไปด้วยขยะที่มาจาก distro
/usr/local
คือลำดับชั้นไดเรกทอรีที่ขนานกับในแผนภูมิมาตรฐานและอาจไฟล์ดัชนีสำหรับสิ่งต่าง ๆ เช่น TeX
นำมา/usr/local/src
ไว้ที่
สิ่งที่ฉันทำคือแยกแหล่งที่มาในไดเรกทอรีนี้ มันจะสร้างเส้นทางเช่น
/usr/local/src/postgresql-8.3.7
จากนั้นฉันจะสร้างลิงก์สัญลักษณ์ไปที่:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
/usr/local/src/postgresql
ทำอาคารของคุณทั้งหมดใน
การทำสิ่งต่าง ๆ ในลักษณะนี้จะช่วยได้เมื่อคุณต้องการป๊อปอัพระหว่างเวอร์ชันและเอกสารที่คุณใช้งานอยู่
สิ่งนี้เตือนฉันฉันต้องใช้checkinstallบ่อยขึ้น! ด้วยวิธีนี้ฉันทำตามปกติ
./configure
make
ติดตามโดย
sudo checkinstall
เพื่อสร้างไฟล์. deb ...
หากมีความเป็นไปได้ - ฉันขอแนะนำให้รวบรวมซอฟต์แวร์ของคุณแล้วสร้างแพ็คเกจ FC (ฉันเชื่อว่าใช้ yum เพื่อติดตั้งแพ็คเกจซอฟต์แวร์) จากนั้นคุณสามารถติดตั้งแพคเกจซอฟต์แวร์รวบรวมของคุณเองและลบออกโดยไม่ทำให้ระบบทั้งหมดยุ่งเหยิง
หากคุณต้องการติดตั้งและลบแอพพลิเคชั่นต่าง ๆ ที่คุณสร้างขึ้นเองได้อย่างง่ายดายคุณสามารถใช้Stowเป็นผู้จัดการแพ็คเกจง่ายๆ
ตามFHSนั้น/usr/local/
จะใช้สำหรับแอปพลิเคชันที่รวบรวมจากแหล่งข้อมูลในขณะที่/opt/
ใช้สำหรับแอปพลิเคชันบุคคลที่สามที่ผู้ขายระบบปฏิบัติการของคุณไม่สนับสนุน
สองสิ่งที่ฉันแนะนำ:
ทั้งระบบ: ใช้stowและติดตั้งภายใต้ / usr / local / stow / package-version จากนั้นคุณสามารถสลับระหว่างเวอร์ชันได้อย่างง่ายดาย
ในบ้านของฉันหรือถ้าผมไม่ได้มีสิทธิ์ในการเขียน / usr / local ผมเองติดตั้งโปรแกรมภายใต้ ~ / .local ซึ่งเป็นทำนองโดยมาตรฐาน XDG
คุณยังสามารถใช้ stow ในเครื่องได้แม้ว่าฉันจะไม่ทำก็ตาม :)
ฉันมีการตั้งค่าที่แตกต่างกันเล็กน้อยกว่าคนส่วนใหญ่เพราะฉันทำการพัฒนามากมาย ฉันมีไดเรกทอรี / home / jackson / bin / ที่ฉันติดตั้งข้อมูลลงในและฉันได้แก้ไข. bashrc ของฉันเพิ่มสิ่งนี้:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
ฉันจะไม่ทำสิ่งนี้ทุกอย่าง แต่มันดีในระหว่างการพัฒนา
อันที่จริงมันไม่ยากที่จะสร้าง deb หรือ rpm's จาก tarball ต้นทาง ด้วยวิธีนี้คุณสามารถใช้สิ่งอำนวยความสะดวกของตัวจัดการแพ็คเกจของ distro เพื่อให้ระบบของคุณสะอาด นี่คือสิ่งที่ฉันทำส่วนใหญ่แล้วเพียงแค่สร้างรอบต่อนาทีเล็กน้อย
หากคุณกำลังรวบรวมแอปพลิเคชันคุณสามารถเพิ่มเส้นทางที่ปฏิบัติการได้ในตัวแปร PATH env ของคุณ สิ่งนี้จะไม่ส่งผลกระทบต่อผู้ใช้รายอื่น
มีตัวเลือกเสมอที่จะ "วางไว้ในที่ที่มันอยู่" แต่เขียน rpm อย่างง่าย ๆ ก่อน
หากคุณต้องการให้แอปพลิเคชันของคุณพร้อมใช้งานสำหรับผู้ใช้ทั้งหมดในระบบและคุณมีสิทธิ์ที่จำเป็นให้ใช้ / opt หากคุณต้องการให้แอปพลิเคชันพร้อมใช้งานสำหรับคุณเท่านั้น (และรูท) ให้ใช้ / home / ชื่อผู้ใช้
วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการคว้าซอร์สโค้ด ( .src.rpm
สำหรับ RPMites) แกะมันสับแหล่งที่มาใหม่ / การกำหนดค่า / อะไรก็ตามที่มันเปลี่ยนรุ่นที่เหมาะสมและสร้าง การติดตั้งสิ่งนี้ทำให้ผู้จัดการแพคเกจของคุณรับรู้ถึงแพ็คเกจใหม่ช่วยให้สามารถพิจารณาได้สำหรับการอ้างอิงและถอนการติดตั้ง / อัปเดต
นี่เป็นงานที่น่าเบื่อเป็นครั้งแรก แต่ถ้ามีเวอร์ชั่นใหม่ (หรือแพทช์สำคัญบางอย่าง) ออกมามันก็ง่ายกว่าที่จะอัพเดท ข้อดีอีกอย่างคือคุณสามารถสร้างพื้นที่เก็บข้อมูลของคุณเองด้วยซอฟต์แวร์ท้องถิ่นเพื่อใช้ร่วมกันเช่นโดยเครื่องในห้องปฏิบัติการ
เขียน RPM ไม่ใช่เรื่องยากมีแนวทางในการวางสิ่งต่าง ๆ และทำการถอนการติดตั้งอย่างรวดเร็ว
หากคุณทำสิ่งนี้ให้ติดตั้งไฟล์ภายใต้/usr
และไม่อยู่ภายใต้/usr/local
เช่นไฟล์อื่น ๆ ทั้งหมดที่ผ่านระบบบรรจุภัณฑ์