Mengapa saya harus memindahkan semuanya ke / opt?

16

Setiap kali saya membaca tips untuk menginstal SDK, IDE, beberapa ekstensi dan seterusnya, dikatakan, bahwa saya harus membongkar mereka di /optfolder. Mengapa saya harus melakukan itu?

Ketika saya menginstal Ubuntu, saya membaca bahwa saya harus menetapkan hanya 10-20 GiB untuk /sistem file dan sisa ruang yang ditetapkan /home. Jadi haruskah saya memperluas ruang untuk folder root, atau meninggalkan semua barang /home? Apakah ada perbedaan?

Praytic
sumber
1
Anda punya dua pertanyaan di sini. Hanya satu pertanyaan per posting yang diizinkan. Harap edit posting Anda dan jika Anda mau, Anda dapat memposting pertanyaan lain mengenai ukuran atau folder rumah
Sergiy Kolodyazhnyy

Jawaban:

20

Pertama, pahami bahwa direktori apa pun yang tidak secara eksplisit titik mount untuk partisi terpisah (atau subdirektori dari titik mount tersebut) disimpan di /partisi root ( ). Dengan demikian, jika Anda memiliki root ( /) dan /home, dan tidak ada partisi lain, /optdirektori Anda hanyalah direktori pada root ( /). Demikian juga untuk /tmp,, /sbindan yang lainnya. Dengan demikian, pertanyaan awal didasarkan pada premis palsu bahwa Anda memerlukan partisi terpisah untuk setiap direktori yang mengarah dari root ( /), sehingga tidak dapat dijawab secara langsung.

Kedua, /optdigunakan untuk perangkat lunak pihak ketiga, yang dalam konteks Ubuntu, berarti perangkat lunak terkompilasi yang tidak didistribusikan melalui paket Debian. Kadang-kadang Anda akan melihat dokumentasi program resmi yang merujuk /opt, tetapi paket Debian tersedia yang menjatuhkan file-file ini di tempat lain. Dalam kasus seperti itu, Anda harus mengabaikan dokumentasi resmi, atau setidaknya mengabaikan referensi lokasi file, ketika Anda menggunakan paket Debian. Juga, jika Anda memiliki pilihan untuk menggunakan paket yang sudah dikompilasi melalui tarball atau paket Debian, umumnya yang terbaik adalah menggunakan paket Debian. Semua dalam semua, penggunaan /optcukup langka hari ini. Jika Anda masih berpikir Anda perlu memasukkan file /opt, Anda sebaiknya memberi nama perangkat lunak, karena orang-orang di sini mungkin tahu apakah paket Debian tersedia untuk perangkat lunak itu.

Akhirnya, dengan menggabungkan dua poin sebelumnya, instalasi Ubuntu sangat jarang terpecah /optmenjadi partisi yang terpisah karena jarang ada sejumlah besar data yang disimpan di sana. Sebagian besar perangkat lunak Ubuntu masuk /usrdan lokasi lainnya. Itu dulu biasa untuk dipecah /usrmenjadi partisi yang terpisah, tetapi praktik itu cukup langka saat ini. Jika Anda kebetulan perlu menginstal banyak software di /opt, kemudian membuat partisi terpisah untuk itu mungkinmasuk akal - tetapi dalam banyak kasus ini tidak akan benar-benar bermanfaat. Partisi yang terpisah masuk akal jika Anda perlu menangani keamanan secara berbeda, jika fitur sistem file yang berbeda akan membantu, untuk berbagi data di beberapa instalasi OS dalam konfigurasi multi-boot, dan untuk alasan lain. Penginstalan perangkat lunak rutin tidak akan menguntungkan dari partisi yang terpisah; pada kenyataannya, membuat partisi terpisah untuk /optdapat menyebabkan masalah jika ukuran yang dikonsumsi oleh perangkat lunak yang disimpan di sana berubah, atau jika Anda salah memperkirakan ukuran pada awalnya.

Rod Smith
sumber
1
Re "penggunaan / opt cukup langka hari ini" Apakah Anda yakin?
Pacerier
@Pacerier untuk beberapa alasan / opt tampaknya membuat kembali, / usr / local pasti lebih populer di Ubuntu beberapa tahun yang lalu. Bagaimanapun, IMHO, / opt dan / usr / local adalah setara. Lihat juga linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocal dan tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html "Saat ini, '/ usr / local' secara luas dianggap sebagai tempat yang baik di mana untuk menjaga program yang dikompilasi sendiri atau pihak ketiga. "
Panther
8

Apakah kamu?

Faktanya adalah Anda tidak perlu melakukannya. Menggunakan /optadalah konvensi. Saya akan merekomendasikan menggunakannya tetapi tidak sepenuhnya diperlukan.

Dari Hierarki Sistem File Linux: Bab 1. Hierarki Sistem File Linux :

1.13. /memilih

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. Setiap paket yang akan diinstal di sini harus mencari file statis (mis. Font tambahan, clipart, file database) harus mencari file statis di pohon direktori / opt / 'paket' atau / opt / 'penyedia' yang terpisah (mirip dengan cara di mana Windows akan menginstal perangkat lunak baru ke pohon direktori sendiri C: \ Windows \ File Progam \ "Nama Program"), di mana 'paket' adalah nama yang menggambarkan paket perangkat lunak dan 'penyedia' adalah nama terdaftar penyedia LANANA.

Meskipun sebagian besar distribusi lalai untuk membuat direktori / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib, dan / opt / man mereka dicadangkan untuk penggunaan administrator sistem lokal. Paket dapat menyediakan file "front-end" yang dimaksudkan untuk ditempatkan (dengan menautkan atau menyalin) direktori yang dipesan ini oleh administrator sistem, tetapi harus berfungsi secara normal tanpa adanya direktori yang dipesan ini. Program yang akan dipanggil oleh pengguna berada di direktori / opt / 'package' / bin. Jika paket termasuk halaman manual UNIX, mereka berada di / opt / 'package' / man dan substruktur yang sama dengan / usr / share / man harus digunakan. File paket yang variabel harus diinstal di / var / opt. File konfigurasi khusus host diinstal di / etc / opt.

Dalam keadaan apa pun, file paket lain tidak ada di luar hierarki / opt, / var / opt, dan / etc / opt kecuali untuk file paket yang harus berada di lokasi tertentu di dalam pohon sistem file agar berfungsi dengan baik. Misalnya, file kunci perangkat di / var / lock dan perangkat di / dev. Distribusi dapat menginstal perangkat lunak dalam / opt, tetapi tidak boleh memodifikasi atau menghapus perangkat lunak yang diinstal oleh administrator sistem lokal tanpa persetujuan administrator sistem lokal.

Penggunaan / opt untuk perangkat lunak add-on adalah praktik mapan di komunitas UNIX. Antarmuka Biner Aplikasi Sistem V [AT&T 1990], berdasarkan pada Definisi Antarmuka Sistem V (Edisi Ketiga) dan Standar Kompatibilitas Biner Intel v. 2 (iBCS2) menyediakan struktur / opt yang sangat mirip dengan struktur yang ditentukan di sini.

Secara umum, semua data yang diperlukan untuk mendukung paket pada suatu sistem harus ada dalam / opt / 'package', termasuk file yang dimaksudkan untuk disalin ke / etc / opt / 'package' dan / var / opt / 'package' serta direktori yang dipesan di / opt. Pembatasan kecil pada distribusi menggunakan / opt diperlukan karena konflik mungkin antara distribusi diinstal dan perangkat lunak yang diinstal secara lokal, terutama dalam kasus nama path tetap yang ditemukan dalam beberapa perangkat lunak biner.

Struktur direktori di bawah / opt / 'provider' diserahkan kepada pembuat paket perangkat lunak, meskipun paket-paket tersebut disarankan diinstal di / opt / 'provider' / 'package' dan ikuti struktur yang serupa dengan pedoman untuk / opt / paket. Alasan yang sah untuk menyimpang dari struktur ini adalah untuk paket dukungan yang mungkin memiliki file yang diinstal di / opt / 'provider' / lib atau / opt / 'provider' / bin.

Torrien
sumber
Ini aneh, karena kebanyakan orang merekomendasikan untuk memisah ruang kecil ke direktori root dan saya pikir karena itu tidak akan banyak berubah. Tampaknya saya perlu mengingatkan saran itu untuk mengikuti konvensi?
Praytic
2
@Praytic Tidak juga. Di masa lalu /optsering drive yang terpisah. Ini akan digunakan untuk menginstal perangkat lunak berpemilik, yang sering memiliki persyaratan ruang disk yang sangat besar karena bundling semua perpustakaan yang diperlukan dan sumber daya lainnya. Di zaman modern, drive sangat besar sehingga layak dan lebih mudah untuk hanya menggunakan satu root pada satu drive.
bain
4

/optdigunakan untuk aplikasi eksternal (terkadang eksklusif) yang tidak dianggap sebagai bagian dari distribusi Linux. Aplikasi ini mungkin memiliki jalur kode keras dan hanya akan berjalan dengan benar ketika diinstal ke /opt- tetapi jika tidak ada jalur kode keras maka Anda dapat menginstalnya ke jalur apa pun. Suatu program yang diinstal di /optseharusnya mandiri.

Alasan utama untuk menggunakan /optadalah untuk menyediakan jalur standar umum di mana perangkat lunak eksternal dapat diinstal tanpa mengganggu sisa dari sistem yang diinstal. /opttidak muncul di jalur kompilator atau tautan standar ( gcc -print-search-dirsatau /etc/ld.so.confdll.), jadi tajuk dan pustaka yang dipasang di sana agak terisolasi dari sistem utama dan tidak boleh mengganggu program yang sudah diinstal.

Penggunaan /optditentukan oleh Filesystem Hierarchy Standard : / opt , yang mencatat bahwa /optawalnya berasal dari Unix.

/ opt: Paket perangkat lunak aplikasi tambahan

Tujuan

/ opt dicadangkan untuk instalasi paket perangkat lunak aplikasi tambahan.

Paket yang akan diinstal di / opt harus menemukan file statis di pohon direktori / opt / <package> yang terpisah / / opt / <provider>, di mana <package> adalah nama yang menggambarkan paket perangkat lunak dan <provider> adalah nama terdaftar penyedia LANANA.

Persyaratan

Direktori / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib, dan / opt / man disediakan untuk penggunaan administrator sistem lokal. Paket dapat menyediakan file "front-end" yang dimaksudkan untuk ditempatkan (dengan menautkan atau menyalin) direktori yang dipesan ini oleh administrator sistem lokal, tetapi harus berfungsi secara normal jika tidak ada direktori yang dipesan ini.

Program yang akan dipanggil oleh pengguna harus berada di direktori / opt / <package> / bin atau di bawah hirarki / opt / <provider>. Jika paket termasuk halaman manual UNIX, mereka harus berada di / opt / <package> / share / man atau di bawah hirarki / opt / <provider>, dan substruktur yang sama dengan / usr / share / man harus digunakan.

Paket file yang variabel (perubahan dalam operasi normal) harus diinstal di / var / opt. Lihat bagian pada / var / opt untuk informasi lebih lanjut.

File konfigurasi khusus host harus diinstal di / etc / opt. Lihat bagian pada / etc untuk informasi lebih lanjut.

Tidak ada file paket lain yang mungkin ada di luar hierarki / opt, / var / opt, dan / etc / opt kecuali untuk file paket yang harus berada di lokasi tertentu dalam pohon sistem file agar berfungsi dengan baik. Sebagai contoh, file kunci perangkat harus ditempatkan di / var / lock dan perangkat harus berada di / dev.

Distribusi dapat menginstal perangkat lunak dalam / opt, tetapi tidak boleh memodifikasi atau menghapus perangkat lunak yang diinstal oleh administrator sistem lokal tanpa persetujuan administrator sistem lokal.

Alasan

Penggunaan / opt untuk perangkat lunak add-on adalah praktik mapan di komunitas UNIX. Antarmuka Biner Aplikasi System V [AT&T 1990], berdasarkan pada Definisi Antarmuka System V (Edisi Ketiga), menyediakan struktur / opt yang sangat mirip dengan yang didefinisikan di sini.

Intel Binary Compatibility Standard v. 2 (iBCS2) juga menyediakan struktur serupa untuk / opt.

Secara umum, semua data yang diperlukan untuk mendukung paket pada suatu sistem harus ada dalam / opt / <package>, termasuk file yang dimaksudkan untuk disalin ke / etc / opt / <package> dan / var / opt / <package> serta direktori yang dipesan di / opt.

Pembatasan kecil pada distribusi menggunakan / opt diperlukan karena konflik mungkin antara perangkat lunak yang diinstal distribusi dan yang diinstal secara lokal, terutama dalam kasus nama path tetap yang ditemukan dalam beberapa perangkat lunak biner.

Struktur direktori di bawah / opt / <provider> diserahkan kepada pembuat paket perangkat lunak, meskipun paket-paket tersebut disarankan diinstal di / opt / <provider> / <package> dan ikuti struktur serupa dengan pedoman untuk / opt / paket. Alasan yang sah untuk menyimpang dari struktur ini adalah untuk paket dukungan yang mungkin memiliki file yang diinstal di / opt / <provider> / lib atau / opt / <provider> / bin.

bain
sumber
3

Tidak ada yang sakral /opt , itu hanya praktik umum untuk meletakkan perangkat lunak yang sudah dikompilasi yang harus dapat diakses oleh semua pengguna sistem dalam direktori ini. Jika Anda adalah satu-satunya pengguna sistem, tidak ada yang salah sama sekali dengan mengekstraknya di direktori home Anda. Dan bahkan jika ada beberapa pengguna pada sistem yang membutuhkan akses ke perangkat lunak ini tetapi Anda ingin menggunakan ruang pada /homepartisi Anda , tidak ada yang salah dengan membuat /home/softwarenamedirektori yang dapat diakses publik dan mengekstraksi perangkat lunak Anda di sana (satu-satunya peringatan adalah jika Anda kebetulan untuk memiliki nama pengguna softwarename, Anda tidak akan dapat menggunakannya di direktori home pengguna).

fkraiem
sumber
2

Jawaban terperinci sangat baik, tetapi (selain dari perangkat lunak yang mungkin memiliki jalur absolut yang sulit dikodekan di dalamnya - bukan praktik pemrograman terbaik), poin utamanya adalah bahwa perangkat lunak non-sistem / non-distribusi tidak boleh disimpan bercampur dengan file sistem biasa.

Menempatkan sesuatu di /optatau/usr/local menjaga hal-hal bersih dan aman.

Secara khusus, jalur pencarian perangkat lunak Anda ($ PATH) menentukan urutan lokasi yang dicari ketika mencari program dengan nama tertentu untuk dieksekusi. Biasanya, tempat suka /optdan/usr/local berada di akhir daftar.

Jika Anda menginstal paket yang memiliki program bernama cpdi dalamnya, urutan pencarian default yang datang dengan distro Anda akan menemukan yang normal karena direktori tempat penyimpanannya dicari sebelum tempat-tempat seperti/opt .

Jika tidak berfungsi seperti itu, siapa yang tahu apa yang mungkin merusak atau membuka lubang keamanan jika sebuah program bernama cpyang melakukan sesuatu yang lain dijalankan ketika Anda berpikir Anda hanya mencoba untuk menyalin beberapa file.

Jika sesuatu seperti ini benar-benar terjadi, mungkin perlu beberapa saat sebelum seseorang berpikir untuk menjalankan perintah seperti type cp(yang bahkan mungkin tidak cukup untuk menunjukkan bahwa ada sesuatu yang salah) untuk mengetahui bahwa apa yang sedang dijalankan bukan seperti yang Anda pikirkan. Sampai saat itu, Anda terjebak pada "Semuanya persis seperti seharusnya terlepas dari detail kecil yang tidak berfungsi!"

Ini pada dasarnya membantu menjaga hal-hal yang tidak terduga terjadi dan juga menghindari situasi di mana pembaruan sistem dapat menghapus atau mengganti beberapa atau semua paket terinstal "khusus" Anda. Atau, sebaliknya, beberapa program "custom" mungkin menimpa program yang disediakan sistem yang banyak bergantung pada program atau skrip lain.

Dari sudut pandang administratif, pencampuran program / file "sistem" dan "opsional" di lokasi yang sama menempatkan sistem Anda dalam keadaan "tidak terdefinisi" atau setidaknya "ambigu".

Jika Anda memiliki masalah dengan sistem atau program Anda dan butuh bantuan, salah satu pertanyaan pertama yang ditanyakan adalah "Apa yang Anda ubah?" dan "Bisakah kita menonaktifkan sementara beberapa dari semua perubahan itu sehingga kita tahu kita sedang melihat masalah sebenarnya dan bukan hanya gejala dari sesuatu yang lain."

Dengan lokasi yang terpisah, perubahan ini dapat diidentifikasi dengan cepat dan yang harus Anda lakukan (setidaknya untuk program itu sendiri) adalah menghapus sementara direktori mereka dari jalur.

Joe
sumber