/ usr / local atau / opt?

44

Bagaimana Anda biasanya melanjutkan untuk instalasi paket Anda di Linux, untuk paket yang bukan bagian dari repo distrib Anda?

Di pihak saya, saya terbiasa menginstal di / opt. Tetapi sejak itu, saya melihat dokumen ini di Internet: http://www.pathname.com/fhs/ . Sekarang saya bingung: ternyata / usr / local juga kemungkinan.

Apa perbedaan keduanya? Adakah praktik terbaik untuk dibagikan?

Terima kasih

SirFabel


sumber
Wilayah perang suci dan bukan topik pemrograman untuk boot.
dmckee
1
Pertanyaan serupa di Ask Ubuntu , superuser , unix & linux
kenchew

Jawaban:

33
  • Semua yang harus dikompilasi & diinstal Unix-style dan mematuhi FHS ->/usr/local
  • Segala sesuatu yang lain (misalnya aplikasi web java yang dilengkapi dengan server pemakai sendiri dan banyak sumber daya dalam arsip zip -> /opt
kecepatanette
sumber
lintian tidak memperbolehkan paket untuk diinstal pada / opt tidak / usr / lokal lagi
Cristiano
24

Sama seperti info menarik tambahan: Arti aslinya /usr/localadalah bahwa jika /usrdipasang di jaringan (tunggal /usrdibagi di beberapa komputer), /usr/localakan menjadi sistem file terpisah lokal ke komputer (partisi pada disk lokal).

Dan sementara pada topik itu, bahkan jika itu di luar topik untuk pertanyaan: Jika ada banyak komputer dengan arsitektur yang berbeda, secara alami akan ada satu /usruntuk setiap lengkungan, tetapi /usr/shareakan menjadi sistem file lain yang dibagi di antara arsitektur (maka 'bagikan') .


sumber
5
Tidak ... secara historis (ya, saya ada di sana!) / Usr et al memiliki barang yang disediakan vendor, / usr / local adalah barang yang dipasang secara lokal (yaitu, bash, gcc, dan hal-hal bagus lainnya).
vonbrand
@vonbrand Apakah Anda benar-benar menentang jawabannya? Sepertinya apa pun yang perlu dibagikan antara host akan / usr, dan apa pun yang tidak perlu, akan berada di / usr / local
Didier A.
@Dierier A., ​​ketika saya mulai menggunakan Unix ('80es) ada satu mesin, tidak ada jaringan ... dan mereka memiliki / usr dan / usr / local.
vonbrand
@vonbrand Oh begitu, menarik. Maka tampaknya niat asli untuk memiliki / usr dan / usr / local masih menjadi misteri.
Didier A.
@Dierier A., ​​sekali lagi: / usr adalah apa yang dikirimkan dengan sistem operasi, barang "standar", / usr / lokal adalah tambahan lokal (buatan sendiri, lepas Usenet, diarsipkan dari kolega ramah di sebuah konvensi, ...) . Bukan standar, hanya penggunaan umum.
vonbrand
7

Cara saya melakukannya adalah bahwa jika memerlukan awalan untuk dirinya sendiri ATAU itu adalah paket biner, saya menggunakan / opt (yang merupakan cara Solaris). Jika saya mengkompilasi dari sumber / usr / local adalah bagaimana saya pergi.

Lee
sumber
6

Saya meletakkan semuanya di direktori pribadi dan kemudian menggunakan GNU stow .

Jadi, saya akan menginstal paket X.ver ke /BASE/stow/X.ver. GNU menyelundup kemudian akan menggabungkan semua paket (dengan symlink) ke /BASE/bin, /BASE/libdll

Konflik dan menghapus paket jauh lebih mudah untuk dihadapi.

R Samuel Klatchko
sumber
Saya biasanya menggunakan / usr / local / stow / <packagename> sebagai rumah untuk "paket" stow, dan merasa ini adalah praktik yang baik - jika orang lain mencari di / usr / local, hal ini membuat jelas apa yang terjadi dan apa sistem mempertahankan symlink.
Stephanie
3

Inilah cara saya menginterpretasikan standar FHS:

/ usr / local adalah untuk file yang dibuat secara lokal atau yang diinstal secara lokal, baik yang dikemas atau tidak yang menjadi bagian dari instance Sistem Operasi tersebut.

/ opt adalah tempat untuk menginstal paket "asing" bukan bagian dari Sistem Operasi.

Selama Anda hanya menggunakan file pada sistem tunggal di mana Anda membangunnya, / usr / local baik-baik saja, dan karena itu direktori basis default untuk sebagian besar perangkat lunak open source.

Jika Anda berencana untuk mendistribusikan ulang paket Anda, saya akan merekomendasikan menggunakan direktori basis kustom seperti / opt / myPackage.

Jlliagre
sumber
2

Solaris banyak digunakan / memilih. Banyak distro Linux modern sekarang mengharapkan paket di / usr / local /. Idenya adalah sama - tempat untuk meletakkan perangkat lunak yang membuat mesin ini melakukan apa yang dilakukannya, tidak seperti sistem operasi. Ini kira-kira analog dengan "Program Files" pada sistem Windows.

Pilih satu dan patuhi itu. Cukup mudah untuk menghubungkan / memilih ke / usr / lokal.

Kyle Hodgson
sumber
Saya suka komentar Lee, cara yang bagus untuk memikirkan masalahnya. Akan terasa agak aneh bagi saya untuk memiliki / opt pada mesin Debian, tapi itu mungkin hanya preferensi pribadi.
Kyle Hodgson
Tolong jangan. FHS mungkin sedikit tanggal, tapi alasannya pada / usr vs / usr / local vs / opt adalah suara: Standar, distribusi disediakan; terpasang secara lokal, seperti homebrew atau barang percobaan dari github; hal-hal non-standar yang disediakan vendor.
vonbrand
0

Jika Anda mengkompilasi ulang perangkat lunak yang disediakan oleh distribusi sistem operasi Anda, untuk memanfaatkan beberapa keunggulan arsitektur khusus untuk mesin Anda sendiri, gunakan / usr / local.

Jika Anda menambahkan perangkat lunak dari sumber lain, dari distribusi sistem operasi Anda, masukkan ke / opt.

cp7781
sumber