Pertanyaan Saat memasang aplikasi pengguna, di mana "praktik terbaik" menyarankan mereka ditempatkan?


Terkadang saya menginstal aplikasi secara manual, daripada menggunakan apt atau manajer paket lain.

Lokasi apa/usr/, /usr/local/, /opt/, /home/, dll.) disarankan oleh "praktik terbaik" untuk pemasangan aplikasi pengguna?


184
2017-08-05 14:42


asal


Menyukai untuk menginstal sesuatu dari sumber begitu sering, saya menulis alat kecil untuk melakukannya yang melakukan perubahan pada file startup shell Anda sendiri (dan juga memodifikasi awalan perpustakaan Anda, jika Anda memintanya, untuk program yang bergantung pada pustaka bersama). Tidak terlalu kaya fitur, tetapi berfungsi 99% dari waktu. - new123456
Kiriman terkait: askubuntu.com/q/138547/62483 - Lucio
Diskusi hebat tentang perbedaan antara /opt dan /usr/local : unix.stackexchange.com/q/11544/11917 - blong


Jawaban:


Itu tergantung, sungguh. Jika aplikasi memiliki makefile, (untuk aplikasi python) menggunakan distutils (memiliki file setup.py file) atau sistem build / install yang serupa, masukkan ke dalamnya /usr/local/ (perilaku default).

Jika Anda hanya perlu mengekstrak tarball dan menjalankannya secara langsung (mis. Thunderbird, Firefox), maka masukkan ke dalamnya /opt/.

Mengapa? Dari apa yang aku mengerti, /usr/local/ memiliki hierarki yang mirip dengan /usr/. Jadi sebuah program yang mengharapkan untuk "diinstal" ke dalamnya /usr/ harus bekerja dengan baik /usr/local/. Sebuah program yang hanya membutuhkan satu direktori dan akan mendapatkan semua file / perpustakaan relatif ke direktori itu bisa mendapatkan satu direktori untuk dirinya sendiri /opt/.


163
2017-08-05 14:53



Sepertinya banyak orang melupakannya opt/ - menurut pendapat saya Anda telah memukul paku di kepala seperti untuk tujuan itu. - Marco Ceppi♦
Saya mengunduh eclipse & diekstraksi ke / opt. Bagaimana saya bisa membuatnya berjalan dari terminal seperti program lain seperti javac, java. Saya lakukan dengan memperbarui-alternatif sebagai berikut, sudo memperbarui-alternatif - instal "/ usr / bin / eclipse" "gerhana" "/ opt / eclipse / eclipse" 1 TETAPI MENGATAKAN PERINTAH TIDAK DITEMUKAN I TYPE sudo eclipse - Deepen
Buat symlink dari / usr / bin atau tambahkan ke PATH di ~ / .bashrc - Alex


Bagus untuk mengingat itu /usr tidak berdiri untuk pengguna melainkan sumber daya sistem unix.

Karena itu, saya cenderung membayangkan bahwa distribusi apa pun memiliki hak untuk menginjak seluruh konten /usr, dan bahwa penambahan khusus saya ke sistem masuk /usr/local, yang saya pertahankan sebelum melakukan upgrade.

Sementara itu, aplikasi dan hal lain masuk /opt.

Beberapa orang merasa nyaman memasukkan barang /home, meskipun saya jarang mengikuti konvensi itu.

Semua yang dikatakan, saya membiarkan manajer paket distribusi melakukan hal-hal dengan cara pertama, dan kemudian melakukan hal di atas ketika tangan barang bergulir.


99
2017-09-17 17:39



Perlu diingat bahwa 'sumber daya sistem unix' adalah penggantian nama yang dilakukan SETELAH '/ home' ditambahkan. Di masa tua, tua, lama (Unix Versi 6 dst.) Anda akan melihat direktori seperti / usr / jimmy, / usr / siobhan, / usr / ahmed, dll. Karena direktori "pengguna" disimpan di / usr . - Mark Leighton Fisher
OK saya akan menggigit: apa yang dipilih untuk berdiri? - Seth
@Seth Saya pikir ini 'opsional' - awalnya untuk perangkat lunak yang bukan bagian dari instalasi default. - Carl H
/ usr adalah User. Itu karena pengguna linux adalah pengembang. Pertama karena mulai membagi menjadi devs dan pengguna /home dir diperkenalkan. Dan kemudian seseorang memiliki ide untuk mengatakannya Unix System Resources, yang tidak masuk akal, karena kami punya Unix system Resources di /dev - Info-Screen
Benar, / usr adalah sebuah backronym. Tujuannya telah berubah sejak hari-hari Unix berjalan pada PDP-7 kembali pada tahun 1969. - Walt Stoneburner


Instal program yang tidak stabil seperti firefox devel di / home / user / opt / membuatnya lebih mudah untuk dihapus, dan tidak ada kebingungan untuk pengguna lain seperti versi apa yang harus mereka gunakan ... Jadi jika itu bukan program untuk penggunaan global, instal di subfolder di direktori home Anda.

Jangan pernah menginstal program di / usr /, kemungkinan akan menyebabkan kekacauan, hal-hal yang diinstal di / usr / dimaksudkan untuk hanya paket distribusi. / usr / local / adalah untuk paket-paket yang dikompilasi secara lokal. Dan struktur itu bekerja dengan cara yang persis sama! file di / usr / local / akan diprioritaskan pada file di / usr /

/ opt / harus digunakan untuk instalasi paket-paket pre-compiled (binary) (Thunderbird, Eclipse, Netbeans, IBM NetSphere, dll) dan sejenisnya. Tetapi jika mereka hanya untuk satu pengguna mereka harus diletakkan di direktori home Anda.

Jika Anda ingin dapat menjalankan program yang dipasang di lokasi "aneh" (seperti / home / user / opt / firefox /) tanpa mengetikkan seluruh path yang Anda perlukan untuk menambahkannya ke variabel $ PATH, Anda dapat melakukan ini menambahkan baris seperti ini di /home/user/.profile Anda

export PATH=/home/user/opt/firefox:$PATH

Nama folder haruslah nama tempat file eksekusi yang perlu Anda jalankan berada.


30
2017-08-07 08:40





Linux Filesystem Hierarchy Standard mengindikasikan /usr/local.

Dari http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:

Ide asli di balik '/ usr / local' adalah memiliki terpisah ('lokal')   direktori '/ usr' pada setiap mesin selain '/ usr', yang mungkin saja   terpasang hanya-baca dari tempat lain. Ini menyalin struktur   '/ usr'. Hari-hari ini, '/ usr / local' secara luas dianggap sebagai tempat yang bagus di   yang menjaga program yang dikompilasi sendiri atau pihak ketiga. The / usr / local   hierarki digunakan oleh administrator sistem saat menginstal   perangkat lunak lokal. Itu harus aman dari yang ditimpa ketika   perangkat lunak sistem diperbarui. Ini dapat digunakan untuk program dan data itu   dapat dibagikan di antara sekelompok host, tetapi tidak ditemukan di / usr. Secara lokal   perangkat lunak yang diinstal harus ditempatkan di / usr / local daripada / usr   kecuali jika dipasang untuk mengganti atau memutakhirkan perangkat lunak di / usr.


25
2017-08-05 14:45



Tampaknya bertentangan ini / usr / barang-barang lokal dengan info di halaman memilih: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" Direktori ini dicadangkan untuk semua perangkat lunak dan paket tambahan yang bukan bagian dari instalasi default. Misalnya, paket StarOffice, Kylix, Netscape Communicator, dan WordPerfect biasanya ditemukan di sini. Untuk memenuhi FSSTND, semua aplikasi pihak ketiga harus dipasang di direktori ini. "..." (mirip dengan cara Windows akan menginstal perangkat lunak baru ke pohon direktori C: \ Windows \ Progam Files \ "Nama Program ")" - Pod


Saya biasanya memiliki folder bernama "Program" di rumah saya di mana saya menginstal program-program tersebut, cukup aneh (atau tidak) mereka semua adalah barang java sekarang.

Ini memiliki satu keuntungan besar bagi saya, ketika saya menginstal ulang atau mengganti komputer, mereka dipindahkan dengan sisa rumah saya. Ini memiliki kerugian yang jelas, aplikasi tersebut hanya tersedia untuk pengguna saya.


5
2017-08-05 14:57



Bagaimana saya dapat menginstal ulang Ubuntu 16.04 tanpa kehilangan data di folder rumah? Saya coba lakukan dengan format / hanya lalu ketik nama pengguna dan kata sandi lama yang sama tetapi saya menemukan bahwa Ubuntu membuat folder rumah lain. - Ibrahim Disouki


Gunakan "checkinstall" untuk mengonversi paket alien Anda ke deb sehingga dapat di-uninstall menggunakan manajer paket.

Perhatikan bahwa file konfigurasi sering tidak akan ditangani sebagai file konfigurasi (mungkin diabaikan, atau mungkin diperlakukan sebagai bagian dari aplikasi), dan bahwa skrip pra-dan pasca-pemasangan kadang-kadang menjadi tidak jelas, meskipun biasanya akan memperingatkan Anda ketika menganggap deb akan memiliki skrip pra-atau pasca-pemasangan yang buruk.


1
2017-08-16 01:41