Gunakan direktori / opt dan / usr / local dalam konteks PC

65

Apa perbedaan antara /optdan /usr/localdirektori dan program apa yang harus diinstal kepada mereka?

Saya merujuk Hierarki sistem file Linux tetapi penjelasannya tidak begitu jelas. Menurut tautan di atas;

/opt : - Direktori ini dicadangkan untuk semua perangkat lunak dan paket tambahan yang bukan merupakan bagian dari instalasi default

/usr/local: - /usr/localHirarki untuk digunakan oleh administrator sistem ketika menginstal perangkat lunak secara lokal. Itu harus aman dari ditimpa ketika perangkat lunak sistem diperbarui.

Dalam konteks PC tanpa komputer jaringan apa yang seharusnya menjadi direktori untuk menginstal perangkat lunak yang akan diakses oleh banyak pengguna lokal? (yaitu di mana saya harus menginstal perangkat lunak seperti netbeans)

Terima kasih

Niroshan
sumber
4
Google Chrome optuntuk menggunakan direktori itu untuk beberapa alasan.
Camilo Martin
2
@ CamiloMartin kurasa itu optional.
becko
4
@becko Yah, itu harus menjadi optpilihan asli jika Google meng-edit- optnya.
Camilo Martin
3
Bahkan jika Anda semua berada di tempat yang tepat, optimus Prime terdengar lebih baik.
erm3nda
2
Lol..Aku datang terlambat ke pesta ..Tapi sepertinya kalian sudah banyak optmeniru bagian komentar ..: P
john400

Jawaban:

71

/optadalah untuk aplikasi pihak ketiga yang tidak bergantung pada dependensi apa pun di luar cakupan paket tersebut. /usr/localadalah untuk paket yang diinstal pada mesin ini di luar ruang lingkup manajer paket distribusi.

Sebuah contoh:

Sip-client open source yang disediakan sebagai file .deb akan diinstal ke /usr. Jika itu dibangun dengan kerangka kerja Qt, apt akan menariknya sebagai ketergantungan.

Sip-client open source yang sama dibangun dari sumber akan berada di /usr/localsehingga tidak akan kacau oleh apt jika Anda kemudian menginstal paket deb. Untuk aplikasi yang sama. Anda bisa membangun dependensinya dari sumber, atau mendapatkannya dari manajer paket.

Aplikasi pihak ketiga /optseharusnya mandiri. Sebagai contoh, klien sip yang menggunakan Qt tidak akan bergantung pada versi dari apt, tetapi akan membuatnya dibundel atau dihubungkan secara statis.

Untuk informasi lebih lanjut, lihat Standar Hierarki Filesystem .

Egil
sumber
1
jadi netbeans pergi ke / usr / local karena tergantung pada jdk dan kompiler lain + plus itu mengikuti linux FHS?
Niroshan
1
Jawabannya iya.
Egil
1
Jika saya ingin menginstal condasecara global seperti yang disarankan di sini , apakah /opttempat yang tepat?
Alexey
@Egil, Mengapa mac tidak memiliki direktori opt?
Pacerier
Saya sebelumnya upvoted jawaban ini, tapi sekarang saya melihat bahwa kesimpulan yang sedikit berbeda dari ini Linux Journal artikel . Artikel ini menyiratkan bahwa dengan perangkat lunak yang dikemas, penting siapa yang menyediakan paket . Jika paket tersebut dari paket repo OS, maka harus dipasang di bawah /usr(atau, mungkin, bahkan langsung di bawah /bin, /lib, dll) seperti biasa. Namun, jika itu dari sumber lain, maka itu harus dimasukkan ke dalam /usr/local. Itu berpotensi memasukkan "klien sumber terbuka" .debdalam jawabannya.
sampablokuper
12

Saya akan menginstal paket binary-only pihak ketiga /opt.

Apa pun yang Anda bangun sendiri dari sumber saya akan dimasukkan /usr/local.

netbeansada di Repos Ubuntu. Apakah Anda memerlukan versi tertentu?

Broam
sumber
Apakah ada alasan di balik itu atau itu hanya praktik yang baik? (Saya menyebut netbeans sebagai contoh - saya mengubah bagian itu untuk menghilangkan ambiguitas). Terima kasih
Niroshan
Saya pikir jawaban lain mengatakan yang terbaik. Biasanya binari pihak ketiga mandiri.
Broam
Bagaimana dengan hal-hal yang bergantung pada runtimes, seperti perangkat lunak Python atau Java? Saya akan memakainya /opttetapi tidak yakin apakah itu benar.
Camilo Martin
8

Ini semua tentang pengemasan. Jika ada sesuatu yang dikemas dengan cara LHS (menempatkan executable ke dalam bin / libraries ke lib / etc.) ia harus masuk ke / usr / local.

Jika sesuatu memiliki direktori tingkat atas dan tidak mengikuti model itu, ia masuk / memilih. Secara umum, Anda harus menambahkan secara eksplisit barang-barang di / opt ke PATH Anda.

Lihat juga Pertanyaan ini tentang pengguna super

POHON
sumber
Jawaban ini tampaknya dikuatkan oleh ini Linux Journal artikel .
sampablokuper