Apa "standar" - yang harus saya masukkan aplikasi (bukan hanya biner, tetapi seluruh distribusi) ke / usr / local atau / usr / local / share.
Misalnya scala atau weka - ini berisi contoh, binari, perpustakaan, dan sebagainya. Jadi itu akan terjadi
/usr/local/scala-2.9.1
atau
/usr/local/share/scala-2.9.1
Karena saya satu-satunya admin, ini bukan masalah besar bagi saya, tetapi saya lebih suka menggunakan sesuatu yang banyak digunakan, bukan dengan kebiasaan saya sendiri.
Penting: Saya tidak bertanya tentang kasus, di mana Anda harus membagi aplikasi menjadi / usr / local / bin, / usr / local / lib dan sebagainya. Sebaliknya saya bertanya tentang case ketika Anda harus menyimpan satu direktori utama untuk seluruh aplikasi.
software-installation
directory-structure
application
Greenoldman
sumber
sumber
/opt
memang jawaban yang tepat, tetapi tidak "banyak digunakan" oleh perangkat lunak tradisional Unix / Linux. Ada banyak alasan untuk membagi file Anda menjadi beberapa dir, dan juga untuk membedakan/usr
dari/usr/local
/usr/bin
(atau/usr/local/bin
) memungkinkan $ PATH Anda untuk menjangkau semua perangkat lunak tanpa perlu mengeditnya untuk setiap perangkat lunak, sebuah konsep yang tidak ada di WindowsJawaban:
Saya pikir / opt lebih standar dalam konteks semacam ini. Bagian yang relevan dalam Filesystem Hierarchy Standard dikutip di bawah ini.
sumber
Anda hanya boleh menggunakan
/usr/local/share
file yang tidak spesifik untuk versi arsitektur / OS tertentu.Setelah itu terserah Anda apakah Anda mendistribusikan file di antara subdir yang ada
/usr/local
atau jika Anda membuat direktori khusus baru di/usr/local
(tetapi yang terakhir tidak akan ada pada executablePATH
, theLD_LIBRARY_PATH
, maupun theMANPATH
).Lihatlah FHS
sumber
bin
,share
,lib
, dllSampai
/opt
menjadi umum, tempat yang biasa adalah/usr/local/lib/<package>
.sumber
Saat memasang aplikasi lokal, ada beberapa opsi tergantung pada bagaimana Anda ingin mengakses dan memperbarui. Juga harus dicatat bahwa beberapa metode lebih mirip sistem yang sudah Anda miliki dan beberapa lebih ad-hoc. Saya akan menyarankan bahwa solusi "terbaik" adalah yang membuat segalanya lebih mudah untuk dikelola.
Saya telah membagi jawaban ini berdasarkan jumlah paket untuk membuat instalasi khusus. Pemisahan ini berdasarkan pengalaman saya sendiri. Pengalaman-pengalaman ini menimbang waktu yang diperlukan untuk mengelola paket dan risiko mengacaukan sesuatu. Saya tidak bermaksud bahwa saya memiliki pengetahuan tentang standar umum, tetapi memaksudkan ini sebagai titik rujukan yang harus diperhatikan ketika membuat keputusan.
Untuk hanya beberapa paket , saya ingin memasukkan paket tambahan
/opt
, di mana mereka berada di luar hal-hal lain sehingga tidak ada yang dapat mengacaukannya dan mereka dapat mengacaukan sesuatu yang lain. Ini adalah metode yang saya gunakan pada NAS saya. Namun metode ini menjaga binari dari PATH Anda, jadi Anda harus menambahkannya secara manual. Ini berfungsi dengan baik jika hanya ada beberapa paket untuk diinstal, tetapi menjadi sangat berantakan jika ada banyak.Memperbarui di sini cukup mudah karena Anda cukup menimpa direktori.
Pro:
Kekurangan:
PATH
terlihat berantakanUntuk lebih dari beberapa paket , saya akan merekomendasikan menggunakan
/usr/local/<your package>
dan menghubungkan sym-executable dari/usr/local/bin
atau/usr/local/sbin
tergantung pada apakah Anda memerlukan hak akses root. Ini menyelamatkan Anda dari mengubah PATH Anda setiap kali sesuatu yang baru ditambahkan sehingga PATH tetap bersih. Ini adalah metode yang saya gunakan pada laptop Arch saya untuk semua paket non-pacman dan paket AUR.Pembaruan dilakukan dengan menimpa direktori paket dan memeriksa apakah symlink masih valid dan memperbaiki jika tidak.
Pro
PATH
berantakanKekurangan:
Untuk banyak paket . Karena ini bukan kasus yang Anda inginkan, saya akan tetap singkat. Saya akan merekomendasikan membelah paket ke
bin
,lib
,share
, dll dan menginstal mereka untuk/usr/local
. Ini untuk menjaga struktur tetap bersih. Anda juga dapat menentukan siapa yang dapat menulis di mana dan banyak lagi. Misalnya, Anda tidak ingin orang lain selain memodifikasi root executable.Di sini pembaruan menjadi sedikit lebih rumit karena Anda perlu menulis lebih dari satu direktori. Saya akan merekomendasikan mengemas semuanya dan membiarkan manajer paket menangani sisanya.
Bagikan
The
share
direktori itu sendiri adalah untuk file independen arsitektur seperti yang tercantum dalam Faheem ini hubungan dan arsitektur tergantung file harus pergi kelib
,lib32
,lib64
, dllsumber