Saya perlu mengkompilasi beberapa perangkat lunak pada mesin Fedora saya. Di mana tempat terbaik untuk meletakkannya agar tidak mengganggu perangkat lunak yang dikemas?
Saya perlu mengkompilasi beberapa perangkat lunak pada mesin Fedora saya. Di mana tempat terbaik untuk meletakkannya agar tidak mengganggu perangkat lunak yang dikemas?
Jawaban:
Rule of thumb, setidaknya pada sistem rasa Debian:
/usr/local
untuk hal-hal yang "sistem-lebar" -yaitu /usr/local
cenderung berada di default distro $PATH
, dan mengikuti hirarki direktori UNIX standar dengan /usr/local/bin
, /usr/local/lib
, dll
/opt
untuk hal-hal yang Anda tidak percaya untuk membuat sistem-lebar, dengan awalan-yaitu per-aplikasi /opt/firefox-3.6.8
, /opt/mono-2.6.7
dan sebagainya. Hal-hal di sini memerlukan manajemen yang lebih hati-hati, tetapi juga lebih kecil kemungkinannya untuk merusak sistem Anda — dan lebih mudah untuk dihapus karena Anda baru saja menghapus folder dan hilang.
/opt
jika Anda sudo
menginstal.
Jika Anda benar-benar tidak ingin mengganggu sama sekali, jangan taruh di mana pun di Anda $PATH
.
Jika Anda menginginkannya $PATH
, setidaknya pastikan untuk tidak menginstalnya /usr/local
. Saya telah menemukan bahwa banyak perangkat lunak terlihat di sana bahkan jika itu diinstal oleh distro /usr
.
Cara favorit saya untuk menginstal perangkat lunak yang dikompilasi khusus ada di $HOME
direktori saya . Dengan begitu Anda tidak perlu menggunakan sudo
apa pun, dan itu sangat baik dipisahkan dari sisa sistem Anda. Sebagai contoh:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
Dan jika Anda mau, Anda bisa menambahkan /home/username/stage/bin
ke $PATH
.
/usr/local
).
FHS mengatakan untuk meletakkannya di / usr / local di mana distribusi tidak boleh menyentuhnya. /usr/local/bin
untuk binari /usr/local/src
untuk sumber dan /usr/local/lib
untuk perpustakaan. Lihat spesifikasi FHS untuk info lebih lanjut
/etc/mysql
untuk konfigurasi?
/usr/local/etc
folder secara default, saya kira saya harus menggunakannya ... :-)
Sebagian besar waktu, saya suka menempatkan barang-barang kompilasi saya sendiri /opt
. Ini semacam tempat pseudo-standar. Anda juga dapat mempertimbangkan /usr/local
, tetapi saya lebih suka menyimpan barang-barang saya 100% terisolasi.
/opt
, namun saya telah melihat berkali-kali di mana /usr/local
berserakan sampah yang memang berasal dari distro
/usr/local
adalah hierarki direktori yang paralel dengan yang ada di pohon standar, dan mungkin mengindeks file untuk hal-hal seperti TeX.
Tempatkan mereka /usr/local/src
.
Apa yang saya lakukan adalah mengekstrak sumber dalam direktori ini. Ini akan membuat jalur seperti
/usr/local/src/postgresql-8.3.7
Lalu saya membuat tautan simbolis untuk itu:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
Apakah semua bangunan Anda di /usr/local/src/postgresql
.
Melakukan hal-hal dengan cara ini membantu ketika Anda perlu melompati versi dan mendokumentasikan versi apa yang Anda gunakan.
Ini mengingatkan saya, saya perlu lebih sering menggunakan checkinstall ! Dengan begitu saya hanya melakukan hal biasa
./configure
make
diikuti oleh
sudo checkinstall
untuk membuat file deb . ...
Jika ada kemungkinan - saya sarankan untuk mengkompilasi perangkat lunak Anda dan kemudian membuat paket FC (saya percaya itu menggunakan yum untuk menginstal paket perangkat lunak). Kemudian Anda dapat menginstal paket perangkat lunak yang Anda buat sendiri dan menghapusnya tanpa mengacaukan seluruh sistem.
Jika Anda ingin dapat dengan mudah menginstal dan menghapus beberapa aplikasi yang Anda buat sendiri, Anda dapat menggunakan Stow sebagai manajer paket sederhana.
Per FHS , /usr/local/
digunakan untuk aplikasi yang dikompilasi dari sumber, sedangkan /opt/
digunakan untuk aplikasi pihak ketiga yang tidak didukung oleh vendor sistem operasi Anda.
Dua hal yang saya rekomendasikan:
Sistem lebar: gunakan stow dan instal di bawah / usr / local / stow / versi-paket. Maka Anda dapat dengan mudah beralih di antara versi.
Di rumah saya, atau jika saya tidak memiliki izin menulis / usr / lokal, saya secara pribadi menginstal program di bawah ~ / .local, yang diisyaratkan oleh standar XDG .
Anda juga dapat menggunakan stow secara lokal, meskipun saya tidak pernah melakukannya :)
Saya memiliki pengaturan yang sedikit berbeda dari kebanyakan orang karena saya melakukan banyak pengembangan. Saya memiliki direktori / home / jackson / bin / yang saya instal dan saya telah mengedit .bashrc saya dengan 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 akan melakukan ini untuk semuanya, tetapi bagus selama pengembangan.
jika Anda mengompilasi aplikasi, Anda dapat menambahkan path executable-nya di variabel PATH env Anda. ini tidak akan berdampak pada pengguna lain.
Jika Anda ingin aplikasi Anda tersedia untuk semua pengguna di sistem dan Anda memiliki izin yang diperlukan, gunakan / opt. Jika Anda ingin aplikasi tersedia hanya untuk Anda (dan root), gunakan / home / nama pengguna
Cara termudah untuk melakukan ini adalah dengan mengambil paket sumber ( .src.rpm
untuk RPMites), membongkarnya, meretas sumber / konfigurasi baru / apa pun ke dalamnya, mengubah versi tepat dan membangun. Menginstal ini membuat manajer paket Anda menyadari paket baru, memungkinkan untuk mempertimbangkannya untuk dependensi dan menghapus / memperbarui.
Ini adalah tugas pertama kali, tetapi jika versi baru (atau tambalan kritis) keluar, maka lebih mudah untuk memperbarui. Manfaat lain adalah Anda dapat membuat repositori Anda sendiri dengan perangkat lunak lokal, untuk dibagikan misalnya oleh mesin-mesin di lab.