GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan Antara /opt Dan /usr/local?

Menurut Standar Hirarki Sistem File, /opt adalah untuk "penginstalan paket perangkat lunak aplikasi tambahan". /usr/local adalah "untuk digunakan oleh administrator sistem saat menginstal perangkat lunak secara lokal". Kasus penggunaan ini tampak sangat mirip. Perangkat lunak yang tidak disertakan dengan distribusi biasanya dikonfigurasi secara default untuk diinstal di /usr/local atau /opt tanpa sajak atau alasan tertentu yang mereka pilih.

Apakah ada perbedaan yang saya lewatkan, atau keduanya melakukan hal yang sama, tetapi ada karena alasan historis?

Jawaban yang Diterima:

Meskipun keduanya dirancang untuk memuat file yang bukan milik sistem operasi, /opt dan /usr/local tidak dimaksudkan untuk berisi kumpulan file yang sama.

/usr/local adalah tempat untuk menginstal file yang dibangun oleh administrator, biasanya dengan menggunakan make perintah (mis., ./configure; make; make install ). Idenya adalah untuk menghindari bentrokan dengan file yang merupakan bagian dari sistem operasi, yang akan ditimpa atau menimpa file lokal (mis., /usr/bin/foo adalah bagian dari OS saat /usr/local/bin/foo adalah alternatif lokal).

Semua file di bawah /usr dapat dibagikan di antara instance OS, meskipun hal ini jarang dilakukan dengan Linux. Ini adalah bagian di mana FHS sedikit kontradiktif, seperti /usr didefinisikan sebagai read-only, tetapi /usr/local/bin perlu dibaca-tulis agar instalasi perangkat lunak lokal berhasil. Standar sistem file SVR4, yang merupakan sumber inspirasi utama FHS, merekomendasikan untuk menghindari /usr/local dan gunakan /opt/local sebagai gantinya untuk mengatasi masalah ini.

/usr/local adalah warisan dari BSD asli. Pada saat itu, kode sumber /usr/bin Perintah OS ada di /usr/src/bin dan /usr/src/usr.bin , sedangkan sumber perintah yang dikembangkan secara lokal ada di /usr/local/src , dan binernya di /usr/local/bin . Tidak ada istilah pengemasan (di luar tarball).

Sebaliknya, /opt adalah direktori untuk menginstal paket yang tidak dibundel (yaitu paket bukan bagian dari distribusi Sistem Operasi, tetapi disediakan oleh sumber independen), masing-masing dalam subdirektori sendiri. Mereka sudah membangun seluruh paket yang disediakan oleh distributor perangkat lunak pihak ketiga yang independen. Tidak seperti /usr/local hal-hal, paket-paket ini mengikuti konvensi direktori (atau setidaknya seharusnya). Misalnya, someapp akan dipasang di /opt/someapp , dengan salah satu perintahnya adalah /opt/someapp/bin/foo , file konfigurasinya ada di /etc/opt/someapp/foo.conf , dan file lognya di /var/opt/someapp/logs/foo.access .


Linux
  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Apa arti dari /usr/sbin, /usr/local/sbin dan /usr/local/bin?

  3. Perbedaan antara /etc/hosts dan /etc/resolv.conf

  1. Perbedaan Antara '$ . Foo' Dan '$ ./foo'??

  2. Centos – Apa Perbedaan Antara /usr/lib/systemd/system Dan /etc/systemd/system?

  3. Instal binari ke /bin, /sbin, /usr/bin dan /usr/sbin, interaksi dengan --prefix dan DESTDIR

  1. Apa perbedaan antara #!/usr/bin/env bash dan #!/usr/bin/bash?

  2. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  3. Perbedaan antara /bin dan /usr/bin