Haruskah saya menginstal aplikasi Linux di / var atau / opt?

83

Saya menjalankan banyak aplikasi open source termasuk java dan kucing jantan. Sepertinya sebagian besar instruksi menjalankan aplikasi saya dari /vardirektori. Tetapi sesekali, saya juga melihat /optdirektori. Sementara saya melakukannya, saya juga melihat /usr/local/dan bahkan /etcjuga.

Kapan saya harus menginstal aplikasi dalam satu folder atau yang lain? Apakah ada pro dan kontra dari masing-masing? Apakah itu ada hubungannya dengan riwayat rasa (Solaris vs Linux atau Red Hat vs Ubuntu)?

Trevor Allred
sumber
8
/ etc adalah tempat yang aneh dan tidak pantas untuk meninggalkan aplikasi ...
user5336
Saya telah melihat orang menaruh barang di / etc, seperti modul Perl. Ini aneh, tapi itu terjadi ...
ℝaphink
6
Untuk setiap absurditas, ada juara untuk mempertahankannya.
womble

Jawaban:

133

Standar untuk masalah ini adalah Standar Hirarki File . Ini dokumen yang agak besar. Pada dasarnya (dan sangat kasar), jalur standar di Linux adalah:

  • /bin& /sbinditujukan untuk program vital untuk OS, sbin hanya untuk administrator;
  • /usr/bin& /usr/sbinuntuk program yang tidak penting, sbin hanya untuk administrator;
  • /varadalah untuk data hidup untuk program. Itu bisa berupa data cache, data spool, data sementara (kecuali data itu ada /tmp, yang dihapus pada setiap reboot), dll.;
  • /usr/localadalah untuk program yang diinstal secara lokal. Biasanya, ia meng-host program yang mengikuti standar tetapi tidak dikemas untuk OS, melainkan diinstal secara manual oleh administrator (menggunakan misalnya ./configure && make && make install) serta skrip administrator;
  • /optadalah untuk program yang tidak dikemas dan tidak mengikuti standar. Anda baru saja menempatkan semua perpustakaan di sana bersama dengan program ini. Ini sering merupakan solusi cepat & kotor, tetapi juga dapat digunakan untuk program yang Anda buat sendiri dan Anda ingin memiliki jalur tertentu. Anda dapat membuat jalur Anda sendiri (misalnya /opt/yourcompany) di dalamnya, dan dalam hal ini Anda dianjurkan untuk mendaftarkannya sebagai bagian dari jalur standar;
  • /etc seharusnya tidak mengandung program, melainkan konfigurasi.

Jika program Anda khusus untuk layanan yang disediakan oleh layanan, /srvjuga bisa menjadi lokasi yang baik untuk mereka. Misalnya, saya lebih suka menggunakan /srv/wwwuntuk situs web daripada /var/wwwmemastikan direktori hanya akan berisi data yang saya tambahkan sendiri, dan tidak ada yang berasal dari paket perangkat lunak.

Ada beberapa perbedaan antara distribusi. Sebagai contoh, sistem RedHat menggunakan libexecdirektori ketika sistem Debian / Ubuntu tidak.

FHS sebagian besar digunakan oleh distribusi Linux (saya sebenarnya tidak tahu OS lain yang benar-benar sesuai dengan itu). Sistem Unix lain tidak mengikutinya. Sebagai contoh, sistem BSD cenderung digunakan /usr/localuntuk program paket, yang tidak berlaku untuk Linux. Solaris memiliki jalur standar yang sangat berbeda.

Saya sangat menyarankan Anda untuk membaca dokumen FHS yang saya tautkan di atas jika Anda ingin tahu lebih banyak tentang ini.

ℝaphink
sumber
1
Salah satu dari beberapa daftar peluru yang mungkin ingin saya cetak sebagai lembar contekan ...
stimpy77
6
+1 untuk /srv. Saya sedang mencari tempat untuk repositori git saya dan tidak suka konten Apache saya /var/www. /srvsepertinya tempat yang sempurna.
Tn. Hedgehog
@ Inkaphink, Jadi mengapa ini disebut varbukan data?
Pacerier
@ Mr.Hedgehog, apa maksudmu dengan "tidak suka"? Mau jelaskan?
Pacerier
@ Paser Kembali di tahun 90-an Anda akan diberitahu itu /varkarena untuk "berbagai data". Pada hari-hari awal Unix di-host pada satu drive. Ketika itu tidak cukup mereka mendapat yang baru, memasangnya sebagai /usrdan memindahkan semua data pengguna di sana. Tapi itu tidak cukup dan drive lama sudah penuh lagi segera. Jadi mereka pindah semua binari sistem bisa boot tanpa dari /binke /usr/bin. Mereka hanya kehabisan ruang. Kemudian mereka perlu berbagi data antar pengguna sehingga mereka membuat /vardan menggunakannya sebagai kotak drop. FHS penuh dengan keputusan warisan seperti itu dan harus diambil dengan sedikit garam.
cprn
4

optsingkatan dari perangkat lunak opsional. varsingkatan dari file sistem variabel. Karena itu aplikasi Anda harus masuk /opt.

Eduard Wirch
sumber
8
/varadalah untuk memvariasikan file sistem, bukan "beragam".
womble
4
/ var adalah untuk "file data variabel". Mengatakan itu untuk "berbagai file sistem" adalah ambigu dan berpotensi menyesatkan. o_O Anda benar tentang "memilih".
phoenix8
@Eduard, lalu bagaimana / opt / var? Dan </ usr / var>, </ usr / local / var> ...
Pacerier
@ Womble Ini etimologi yang salah. Itu yang dikatakan FHS tapi itu tidak benar. Kembali di tahun 90-an Anda akan diberitahu itu /varkarena untuk "berbagai data". Saya masih memiliki catatan dari buku pra-internet yang saya baca saat itu.
cprn
2

Itu tergantung pada apa standar lokal Anda.

Secara pribadi, saya tidak menginstal apa pun ke / var tanpa alasan yang bagus. / Usr / local saya hampir selalu merupakan nfs mount dari jaringan, jadi apa pun yang tidak dikemas akan diinstal ke / opt.

David Mackintosh
sumber
1
Apa yang akan Anda masukkan ke / var, kecuali data?
ℝaphink
1
biasanya program akan menempelkan barang mereka sendiri di / var. Kebanyakan yang disediakan oleh vendor - log, beberapa perpustakaan, mengontrol file, file .pid, hal semacam itu.
David Mackintosh
2
Saya tidak begitu setuju. Perpustakaan, jika statis, harus masuk /usr. Libs secara dinamis akan berakhir di /var/libkadang-kadang, tapi saya tidak melihat apa yang Anda benar-benar akan menginstal di /var, dari sudut pandang admin pandang. Program mungkin menggunakannya secara luas, tetapi harusnya cukup kosong sebelum Anda meluncurkannya.
ℝaphink
1
Saat ini satu-satunya hal yang saya instal dengan sengaja ke / var adalah nfsen / nfdump, dan itu karena jejak aplikasi adalah semua file nfdump yang terakumulasi. (Dan karena ini adalah tes instalasi yang entah bagaimana membuatnya menjadi produksi. Jadi - "untuk ususal tidak ada alasan bagus".) Tapi itu cukup banyak. Tentu saja karena saya tidak mempartisi hard disk saya, / var, / opt dan / usr semuanya pada sistem file yang sama.
David Mackintosh
1
Qmail dipasang di / var. Ini adalah salah satu dari banyak kritik terhadapnya.
Statika