Di mana saya harus menempatkan perangkat lunak saya compile sendiri?

Saya perlu untuk mengkompilasi beberapa perangkat lunak di Fedora mesin. Mana's tempat terbaik untuk menempatkan itu sehingga tidak mengganggu perangkat lunak yang dipaketkan?

Mengomentari pertanyaan (1)
Larutan

Aturan praktis, setidaknya pada Debian-rasa sistem:

  • /usr/local untuk hal-hal yang "sistem"—yaitu /usr/local cenderung di sebuah distro's default $PATH, dan mengikuti standar UNIX direktori hirarki dengan /usr/local/bin, /usr/local/lib, dll.

  • /opt untuk hal-hal yang anda don't percaya untuk membuat sistem-lebar, dengan per-app prefiks—yaitu /opt/firefox-3.6.8, /opt/mono-2.6.7, dan sebagainya. Barang-barang di sini membutuhkan lebih berhati-hati manajemen, tetapi juga kurang kemungkinan untuk merusak sistem anda—dan lebih mudah untuk menghapus karena anda hanya menghapus folder dan's pergi.

Komentar (1)

Jika anda benar-benar don't ingin mengganggu sama sekali, don't menempatkannya di mana saja di $PATH.

Jika anda ingin dalam $PATH, setidaknya pastikan untuk tidak menginstal ke /usr/local. I've menemukan bahwa banyak dari perangkat lunak terlihat di sana bahkan jika itu's dipasang oleh distro menjadi /usr.

Cara favorit saya untuk menginstal kustom-disusun software di saya $ HOME directory. Dengan cara itu anda don't harus menggunakan sudo untuk apa-apa, dan itu's sangat baik dipisahkan dari yang lain dari sistem anda. Misalnya:

mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install

Dan jika anda ingin, anda kemudian dapat menambahkan /home/username/panggung/bin untuk anda $PATH.

Komentar (5)

FHS kata untuk meletakkannya di /usr/local dimana distro seharusnya't akan menyentuhnya. /usr/local/bin untuk binari /usr/local/src untuk sumber dan /usr/local/lib untuk perpustakaan. Lihat FHS spec untuk info lebih lanjut

Komentar (2)

Sebagian besar waktu, saya ingin menempatkan saya sendiri yang disusun hal-hal di /opt. It's semacam pseudo-standar. Anda juga dapat mempertimbangkan /usr/local, tapi aku lebih memilih untuk menyimpan barang-barang saya 100% terisolasi.

Komentar (7)

Menempatkan mereka untuk /usr/local/src.

Apa yang saya lakukan adalah mengekstrak sumber di direktori ini. Itu akan membuat jalan seperti

/usr/local/src/postgresql-8.3.7

Kemudian saya membuat sebuah symbolic link untuk itu:

/usr/local/src # ln -s  postgresql-8.3.7 postgresql

Apakah semua bangunan di /usr/local/src/postgresql.

Hal ini membantu ketika anda perlu untuk pop antara versi dan dokumen versi apa yang anda gunakan.

Komentar (1)

Ini mengingatkan saya, saya perlu untuk menggunakan checkinstall lebih sering! Dengan cara itu aku hanya melakukan hal yang biasa

 ./configure
 make

diikuti oleh

 sudo checkinstall

untuk membuat .deb file...

Komentar (1)

Jika ada kemungkinan - I'd sarankan kompilasi perangkat lunak dan kemudian menciptakan FC paket (saya percaya itu's menggunakan yum untuk menginstal paket perangkat lunak). Kemudian anda dapat menginstal paket dari anda sendiri disusun perangkat lunak dan menghapus tanpa mengacaukan seluruh sistem.

Komentar (0)

Jika anda ingin dapat dengan mudah menginstal dan menghapus beberapa aplikasi anda've dibangun sendiri, anda dapat menggunakan Simpan sebagai manajer paket.

Komentar (0)

Per FHS, /usr/local/ digunakan untuk aplikasi yang dihimpun dari sumber, sedangkan /opt/ digunakan untuk aplikasi pihak ke-3 tidak didukung oleh sistem operasi anda vendor.

Komentar (0)

Dua hal yang saya'd merekomendasikan:

Sistem yang luas: gunakan simpan dan pasang di bawah /usr/local/menyelundup/paket-versi. Kemudian anda dapat dengan mudah beralih antara versi.

Di rumah saya, atau jika saya don't memiliki /usr/local izin menulis, saya pribadi menginstal program di dalam ~/.lokal, yang diisyaratkan oleh XDG standar.

Anda juga dapat menggunakan menyelundup lokal, meskipun saya tidak pernah melakukannya :)

Komentar (0)

Saya memiliki sedikit setup yang berbeda dari kebanyakan orang karena saya melakukan banyak pengembangan. Saya memiliki /home/jackson/bin/ direktori yang saya menginstal barang-barang ke dan I've diedit saya .bashrc menambahkan ini:

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

Saya tidak't melakukan ini semuanya, tapi yang bagus selama pengembangan.

Komentar (0)

Hal ini sebenarnya tidak sulit untuk membuat deb's atau rpm's dari source tarball. Dengan cara itu, anda dapat menggunakan fasilitas dari distro anda's package manager untuk menjaga sistem anda bersih. Ini adalah apa yang saya lakukan, sebagian besar waktu: hanya membuat sedikit rpm.

Komentar (0)

jika anda mengkompilasi aplikasi anda dapat menambahkan executable path di JALAN anda env variabel. ini tidak akan mempengaruhi pengguna lain.

Komentar (3)

Ada's selalu ada pilihan untuk "taruh di mana itu milik" tapi menulis yang sederhana rpm, pertama.

Komentar (0)

Jika anda ingin aplikasi anda akan tersedia untuk semua pengguna pada sistem dan anda memiliki izin yang diperlukan, menggunakan /memilih. Jika anda ingin aplikasi yang akan tersedia hanya untuk anda (dan akar), menggunakan /home/username

Komentar (0)

Menulis RPM, hal ini tidak sulit, tidak memiliki petunjuk di mana untuk menempatkan hal-hal dan membuat menghapus snap.

Jika anda melakukan ini, instal file di bawah /usr dan tidak berada di bawah /usr/local, seperti semua file lain yang datang melalui sistem kemasan.

Komentar (0)

Cara termudah untuk melakukan ini adalah untuk ambil sumber paket (.src.rpm untuk RPMites), membongkar, hack kode sumber baru/konfigurasi/apapun ke dalamnya, mengubah versi appropiately dan membangun. Menginstal ini membuat manajer paket anda menyadari paket baru, memungkinkan untuk mempertimbangkan dependensi dan uninstall/update.

Ini adalah tugas pertama kalinya di sekitar, tapi jika versi baru (atau beberapa critical patch) keluar, maka lebih mudah untuk update. Manfaat lain adalah bahwa anda dapat membuat anda sendiri repositori lokal dengan perangkat lunak, yang akan dibagi, misalnya dengan mesin-mesin di laboratorium.

Komentar (0)