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

210

Kadang-kadang saya menginstal aplikasi secara manual, daripada menggunakan aptatau manajer paket lain.

Apa lokasi ( /usr/, /usr/local/, /opt/, /home/, dll) disarankan oleh "praktik terbaik" untuk instalasi aplikasi pengguna?

citadelgrad
sumber
Suka sering menginstal hal-hal dari sumber, saya menulis sedikit alat 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 perpustakaan bersama ). Tidak terlalu kaya fitur, tetapi berfungsi 99% dari waktu.
new123456
Kiriman
Lucio
1
Diskusi hebat tentang perbedaan antara /optdan /usr/local: unix.stackexchange.com/q/11544/11917
blong

Jawaban:

184

Itu tergantung, sungguh. Jika aplikasi memiliki makefile, atau misalnya untuk aplikasi python jika aplikasi menggunakan distutils (misalnya, memiliki setup.pyfile), atau sistem build / install yang serupa, Anda harus menginstalnya /usr/local/. Ini sering merupakan perilaku default.

Dari apa yang saya mengerti, /usr/local/memiliki hierarki yang mirip /usr/. Namun, direktori suka /usr/bin/dan /usr/lib/biasanya dicadangkan untuk paket yang diinstal via apt. Jadi sebuah program yang mengharapkan untuk "diinstal" ke dalam /usr/harus berfungsi dengan baik /usr/local/.

Jika Anda hanya perlu mengekstrak tarball dan menjalankannya secara langsung (mis. Firefox) maka masukkan /opt/. Sebuah program yang hanya membutuhkan satu direktori dan akan mendapatkan semua file / perpustakaan relatif terhadap direktori itu bisa mendapatkan satu direktori untuk dirinya sendiri /opt/.

Umang
sumber
24
Tampaknya begitu banyak orang lupa opt/- menurut saya Anda telah memukul paku di kepala karena tujuannya.
Marco Ceppi
3
Buat symlink dari / usr / bin atau tambahkan ke PATH di ~ / .bashrc
Alex
1
Bagaimana dengan ~/.local/share? @Marco
ultimatex
1
Anda dapat menginstal hal-hal di dalam ~(direktori home Anda), tetapi itu akan membuat aplikasi hanya dapat diakses oleh satu pengguna. Pengguna lain di sistem Anda harus menginstal dan memelihara instalasi sendiri dari perangkat lunak itu. Adapun praktik terbaik tentang menginstal aplikasi menginstal direktori home Anda, saya percaya tidak ada pedoman yang kuat karena Anda tidak akan mengganggu paket sistem.
Umang
1
Apakah salah memasang aplikasi yang 'unzipped from tar' di bawah / home / ubuntu / myapp - perbedaan apa yang dibuat dibandingkan dengan / opt / myapp?
JARC
116

Ada baiknya untuk diingat bahwa /usrtidak berdiri untuk pengguna tetapi lebih unix sumber daya sistem .

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

Sementara itu, aplikasi dan hal-hal lain masuk /opt.

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

Semua yang dikatakan, saya membiarkan manajer paket distribusi melakukan hal-hal seperti dulu, dan kemudian melakukan hal di atas ketika menggulung barang.

Walt Stoneburner
sumber
35
Perlu diingat bahwa 'sumber daya sistem unix' adalah penggantian nama yang dilakukan SETELAH '/ rumah' ditambahkan. Di masa lalu, dulu, dulu (Unix Versi 6 et.al.) Anda akan melihat direktori seperti / usr / jimmy, / usr / siobhan, / usr / ahmed, dll. Karena direktori "pengguna" disimpan di / usr .
Mark Leighton Fisher
5
OK saya akan gigit: apa artinya memilih berdiri?
Seth
3
@Seth Saya pikir ini 'opsional' - ini awalnya untuk perangkat lunak yang bukan bagian dari instalasi default.
Carl H
5
/ usr adalah User. Itu karena pengguna linux adalah pengembang. Pertama ketika mulai membagi menjadi devs dan pengguna /homedirektori diperkenalkan. Dan kemudian seseorang mempunyai ide untuk mengatakan itu berarti Unix System Resources, yang tidak terlalu masuk akal, karena kita punya Unix system Resourcesdi/dev
Info-Screen
2
Benar, / usr adalah backronym. Tujuannya telah berubah sejak Unix menjalankan PDP-7 pada tahun 1969.
Walt Stoneburner
34

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

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

/ opt / harus digunakan untuk instalasi paket (binary) yang telah dikompilasi (Thunderbird, Eclipse, Netbeans, IBM NetSphere, dll) dan sejenisnya. Tetapi jika mereka hanya untuk satu pengguna mereka harus dimasukkan ke direktori home Anda.

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

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

Nama folder harus menjadi tempat di mana file executable yang Anda butuhkan untuk menjalankan berada.

LassePoulsen
sumber
26

Standar Hierarki Sistem File Linux menunjukkan /usr/local.

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

Gagasan asli di balik '/ usr / local' adalah untuk memiliki direktori ('lokal') '/ usr' yang terpisah pada setiap mesin selain '/ usr', yang mungkin hanya dipasang read-only dari tempat lain. Ini menyalin struktur '/ usr'. Saat ini, '/ usr / local' secara luas dianggap sebagai tempat yang baik untuk menyimpan program yang dikompilasi sendiri atau pihak ketiga. Hirarki / usr / lokal untuk digunakan oleh administrator sistem ketika menginstal perangkat lunak secara lokal. Itu harus aman dari ditimpa ketika perangkat lunak sistem diperbarui. Ini dapat digunakan untuk program dan data yang dapat dibagikan di antara sekelompok host, tetapi tidak ditemukan di / usr. Perangkat lunak yang diinstal secara lokal harus ditempatkan di dalam / usr / lokal daripada / usr kecuali jika sedang diinstal untuk mengganti atau memutakhirkan perangkat lunak di / usr.

popey
sumber
1
Tampaknya bertentangan dengan hal ini / usr / lokal dengan info di halaman opt: 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 mematuhi FSSTND, semua aplikasi pihak ketiga harus diinstal di direktori ini. "..." (mirip dengan cara di mana Windows akan menginstal perangkat lunak baru ke pohon direktori sendiri C: \ Windows \ Progam Files \ "Nama Program ")"
Pod
6

Saya biasanya memiliki folder bernama "Program" di rumah saya tempat saya menginstal program-program itu, cukup aneh (atau tidak) semuanya 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 kelemahan yang jelas, aplikasi itu hanya tersedia untuk pengguna saya.

Javier Rivera
sumber
Bagaimana saya bisa menginstal ulang Ubuntu 16.04 tanpa kehilangan data di folder rumah? Saya coba lakukan dengan memformat /direktori hanya kemudian ketik nama pengguna dan kata sandi lama yang sama tetapi saya menemukan bahwa Ubuntu membuat folder rumah lain.
Ibrahim Disouki
1

Gunakan "checkinstall" untuk mengonversi paket alien Anda menjadi deb sehingga bisa dihapus menggunakan pengelola 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 ceroboh, meskipun biasanya akan memperingatkan Anda ketika berpikir bahwa deb akan memiliki skrip pra atau pasca pemasangan yang buruk.

Seorang Mahasiswa di Universitas
sumber