Saya perlu mengkompilasi beberapa perangkat lunak pada mesin Fedora saya. Di mana tempat terbaik untuk meletakkannya agar tidak mengganggu perangkat lunak yang dikemas?
package-management
compiling
software-installation
directory-structure
fhs
theecereceive
sumber
sumber
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.sumber
/opt
jika Andasudo
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 menggunakansudo
apa pun, dan itu sangat baik dipisahkan dari sisa sistem Anda. Sebagai contoh:Dan jika Anda mau, Anda bisa menambahkan
/home/username/stage/bin
ke$PATH
.sumber
/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 lanjutsumber
/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.sumber
/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
Lalu saya membuat tautan simbolis untuk itu:
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.
sumber
Ini mengingatkan saya, saya perlu lebih sering menggunakan checkinstall ! Dengan begitu saya hanya melakukan hal biasa
diikuti oleh
untuk membuat file deb . ...
sumber
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.
sumber
Jika Anda ingin dapat dengan mudah menginstal dan menghapus beberapa aplikasi yang Anda buat sendiri, Anda dapat menggunakan Stow sebagai manajer paket sederhana.
sumber
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.sumber
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 :)
sumber
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:
Saya tidak akan melakukan ini untuk semuanya, tetapi bagus selama pengembangan.
sumber
Sebenarnya tidak sulit untuk membuat deb atau rpm dari tarball sumber. Dengan begitu, Anda dapat menggunakan fasilitas manajer paket distro Anda untuk menjaga sistem Anda tetap bersih. Inilah yang saya lakukan, sebagian besar waktu: hanya membuat rpm sedikit.
sumber
jika Anda mengompilasi aplikasi, Anda dapat menambahkan path executable-nya di variabel PATH env Anda. ini tidak akan berdampak pada pengguna lain.
sumber
Selalu ada opsi untuk "meletakkannya di tempatnya" tetapi menulis rpm sederhana, pertama.
sumber
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
sumber
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.
sumber
Menulis RPM, tidak sulit, memiliki pedoman di mana harus meletakkan barang-barang dan membuat menghapus instalan cepat.
Jika Anda melakukan ini, instal file di bawah
/usr
dan tidak di bawah/usr/local
, seperti semua file lain yang datang melalui sistem pengemasan.sumber