Neden her şeyi / opt'e taşımalıyım?


16

SDK, IDE, bazı uzantılar vb. Yüklemek için her ipucunu okuduğumda, bunları paketinden çıkarmam gerektiğini söylüyor /opt klasörde . Bunu neden yapmam gerekiyor?

Ubuntu'yu kurarken, /dosya sistemi ve kalan alan için sadece 10-20 GiB ayarlamam gerektiğini okudum /home. Öyleyse kök klasör alanını genişletmeli miyim, yoksa her şeyi açık bırakmalı /homemıyım? Fark var mı?


1
Burada iki sorunuz var. Gönderi başına yalnızca bir soruya izin verilir. Lütfen yazınızı düzenleyin ve isterseniz boyut veya ev klasörü ile ilgili başka bir soru gönderebilirsiniz
Sergiy Kolodyazhnyy


Yanıtlar:


20

İlk olarak, ayrı bir bölüm için (veya böyle bir bağlama noktasının alt dizini) açıkça bir bağlama noktası olmayan herhangi bir dizinin root ( /) bölümünde depolandığını anlayın . Bu nedenle, root ( /) varsa ve /homebaşka bölüm yoksa, /optdizininiz root ( /) üzerindeki bir dizindir . Aynı şekilde için /tmp, /sbinbaşka ve hiçbir şeye. Bu nedenle, ilk soru root ( /) 'dan çıkan her dizin için ayrı bölümlere ihtiyaç duyduğunuz yanlış önermeye dayanır ve doğrudan yanıtlanamaz.

İkincisi, /optUbuntu bağlamında, Debian paketleri aracılığıyla dağıtılmayan önceden derlenmiş yazılım anlamına gelen üçüncü taraf yazılımlar için kullanılır. Bazen, başvuruda bulunan resmi program belgelerini görürsünüz /opt, ancak bu dosyaları başka bir yere bırakan Debian paketleri mevcuttur. Bu gibi durumlarda, Debian paketini kullanırken resmi belgeleri veya en azından dosya konumu referanslarını yok saymalısınız. Ayrıca, bir tarball veya Debian paketi aracılığıyla önceden derlenmiş bir paketi kullanma seçeneğiniz varsa, genellikle Debian paketini kullanmak en iyisidir. Sonuçta, /optbugünlerde kullanımı oldukça nadirdir. Hala dosya koymanız gerektiğini düşünüyorsanız /opt, yazılımı adlandırmak iyi olabilir, çünkü buradaki insanlar bu yazılım için bir Debian paketinin mevcut olup olmadığını bilebilir.

Son olarak, önceki iki noktayı birleştirerek, Ubuntu kurulumlarının /optayrı bir bölüme ayrılması çok nadirdir, çünkü orada önemli miktarda veri depolanması nadirdir. Çoğu Ubuntu yazılımı /usrve diğer konumlar girer . Bir zamanlar /usrayrı bir bölüme ayrılmak yaygındı , ancak bu uygulama bugün oldukça nadirdir. İçinde birçok yazılım yüklemek gerekir başına yoksa /opto zaman bunun için ayrı bir bölüm oluşturarak, belkimantıklı - ancak çoğu durumda bu gerçekten yardımcı olmaz. Güvenliği farklı şekilde ele almanız gerekiyorsa, farklı dosya sistemi özellikleri yardımcı olacaksa, verileri çoklu önyükleme yapılandırmasında ve diğer nedenlerle birden çok işletim sistemi yüklemesinde paylaşmak için ayrı bölümler mantıklıdır. Rutin yazılım kurulumunun ayrı bir bölümden faydalanması olası değildir; aslında, /optorada depolanan yazılım tarafından tüketilen boyut değişirse veya boyut tahminini yanlış yaparsanız, için ayrı bir bölüm oluşturmak sorunlara neden olabilir.


1
Re "bugünlerde / opt kullanımı oldukça nadir" Emin misiniz?
Pacerier

@Pacerier bir nedenle / opt geri gelmek gibi görünüyor, / usr / local birkaç yıl önce Ubuntu kesinlikle daha popüler oldu. Her halükarda IMHO, / opt ve / usr / local eşdeğerdir. Ayrıca bkz. Linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocal ve tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html "Bugünlerde, '/ usr / local' yaygın olarak iyi bir yer olarak kabul ediliyor kendi kendine derlenmiş veya üçüncü taraf programları tutmak. "
Panther

8

Yapıyor musun?

Gerçek şu ki, bunu yapmanıza gerek yok. kullanma/opt bir kuraldır. Bunu kullanmanızı tavsiye ederim ama kesinlikle gerekli değildir.

Gönderen Linux Dosya Sistemi Hiyerarşisi: Bölüm 1. Linux Dosya Sistemi Hiyerarşisi :

1.13. / opt

Bu dizin, varsayılan kurulumun parçası olmayan tüm yazılım ve eklenti paketleri için ayrılmıştır. Örneğin, StarOffice, Kylix, Netscape Communicator ve WordPerfect paketleri normalde burada bulunur. FSSTND'ye uymak için tüm üçüncü taraf uygulamaları bu dizine kurulmalıdır. Buraya kurulacak herhangi bir paket statik dosyalarını (yani, ekstra yazı tipleri, küçük resim, veritabanı dosyaları) statik dosyalarını ayrı bir / opt / 'package' veya / opt / 'sağlayıcı' dizin ağacında (yoluna benzer şekilde) bulmalıdır Windows'un kendi dizin ağacına yeni yazılım yükleyeceği C: \ Windows \ Progam Files \ "Program Adı"), burada 'paket' yazılım paketini tanımlayan bir isim ve 'sağlayıcı' sağlayıcının LANANA kayıtlı adıdır.

Çoğu dağıtım / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib ve / opt / man dizinlerini oluşturmayı ihmal etse de, yerel sistem yöneticisi kullanımına ayrılmıştır. Paketler, sistem yöneticisi tarafından bu ayrılmış dizinlere yerleştirilmesi (bağlanması veya kopyalanmasıyla) "ön uç" dosyaları sağlayabilir, ancak bu ayrılmış dizinlerin yokluğunda normal şekilde çalışması gerekir. Kullanıcılar tarafından çağrılacak programlar / opt / 'package' / bin dizininde bulunur. Paket UNIX kılavuz sayfalarını içeriyorsa, / opt / 'package' / man dizininde bulunurlar ve / usr / share / man ile aynı alt yapı kullanılmalıdır. Değişken olan paket dosyaları / var / opt içine kurulmalıdır. Ana bilgisayara özgü yapılandırma dosyaları / etc / opt dizinine yüklenir.

Hiçbir koşulda / opt, / var / opt ve / etc / opt hiyerarşilerinin dışında, düzgün çalışması için dosya sistemi ağacındaki belirli konumlarda bulunması gereken paketler dışında başka paket dosyaları bulunmaz. Örneğin, / var / lock içindeki cihaz kilit dosyaları ve / dev içindeki cihazlar kilitlenir. Dağıtımlar, / opt dizininde yazılım yükleyebilir, ancak yerel sistem yöneticisinin izni olmadan yerel sistem yöneticisi tarafından yüklenen yazılımı değiştirmemeli veya silmemelidir.

Eklenti yazılımın / opt için kullanımı UNIX topluluğunda yerleşik bir uygulamadır. Sistem V Arayüz Tanımı (Üçüncü Baskı) ve Intel İkili Uyumluluk Standardı v. 2 (iBCS2) temelli Sistem V Uygulama İkili Arabirimi [AT&T 1990], burada tanımlanana çok benzer bir / opt yapısı sağlar.

Genel olarak, bir sistemde bir paketi desteklemek için gereken tüm veriler, / etc / opt / 'package' ve / var / opt / 'package' içine kopyalanması amaçlanan dosyalar dahil / opt / 'package' içinde bulunmalıdır. / opt içinde ayrılmış dizinler. / Opt kullanan dağıtımlara ilişkin küçük kısıtlamalar gereklidir çünkü dağıtım yüklü ve yerel olarak yüklenmiş yazılım arasında, özellikle bazı ikili yazılımlarda bulunan sabit yol adları durumunda çakışmalar mümkündür.

/ Opt / 'sağlayıcı' altındaki dizinlerin yapısı yazılımın paketleyicisine bırakılır, ancak paketlerin / opt / 'sağlayıcı' / 'paketinde' kurulması ve yönergelere benzer bir yapı izlemesi önerilir. / opt / paketi. Bu yapıdan sapmanın geçerli bir nedeni, / opt / 'sağlayıcı' / lib veya / opt / 'sağlayıcı' / bin içine dosya yüklenmiş olan destek paketleri içindir.


Bu garip, çünkü çoğu insan küçük bir dizini kök dizine ayırmayı önerir ve çok fazla değişmeyeceğini düşündüm. Sözleşmelere uymaları için bu tavsiyeleri hatırlatmam gerekiyor gibi görünüyor?
Dua

2
@Praytic Pek değil. Geçmişte /optgenellikle ayrı bir sürücü vardı. Gerekli tüm kitaplıkların ve diğer kaynakların paketlenmesi nedeniyle genellikle büyük disk alanı gereksinimleri olan özel yazılımları yüklemek için kullanılır. Modern zamanlarda, sürücüler o kadar büyüktür ki, tek bir sürücüde tek bir kök kullanmak mümkün ve daha kolaydır.
bain

4

/optLinux dağıtımının bir parçası olarak değerlendirilmeyen (bazen tescilli) harici uygulamalar için kullanılır. Bu uygulamalar sabit kodlanmış yollara sahip olabilir ve bu nedenle yalnızca üzerine yüklendiğinde doğru şekilde çalışır /opt- ancak sabit kodlanmış yol yoksa, bunları herhangi bir yola yükleyebilirsiniz. Yüklü bir programın /optbağımsız olması gerekir.

Kullanmanın ana nedeni, /optharici yazılımın kurulu sistemin geri kalanına müdahale etmeden kurulabileceği ortak bir standart yol sağlamaktır. /optstandart derleyici veya bağlayıcı yollarında ( gcc -print-search-dirsveya /etc/ld.so.confvb.) görünmediğinden, yüklü olan üstbilgiler ve kitaplıklar ana sistemden bir şekilde yalıtılmıştır ve önceden yüklenmiş programlara müdahale etmemelidir.

Kullanımı, başlangıçta Unix'ten gelen Notes System Hierarchy Standard : / opt/opt tarafından belirtilir ./opt

/ opt: Eklenti uygulama yazılım paketleri

amaç

/ opt, eklenti uygulama yazılım paketlerinin yüklenmesi için ayrılmıştır.

/ Opt dizininde kurulacak bir paket statik dosyalarını ayrı bir / opt / <package> veya / opt / <provider> dizin ağacında bulmalıdır; burada <package> yazılım paketini tanımlayan bir isimdir ve <provider> sağlayıcının LANANA kayıtlı adı.

Gereksinimler

/ Opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib ve / opt / man dizinleri yerel sistem yöneticisi kullanımına ayrılmıştır. Paketler, yerel sistem yöneticisi tarafından bu ayrılmış dizinlere yerleştirilmesi (bağlanması veya kopyalanması) için "ön uç" dosyaları sağlayabilir, ancak bu ayrılmış dizinlerin yokluğunda normal şekilde çalışması gerekir.

Kullanıcılar tarafından çağrılacak programlar / opt / <package> / bin dizininde veya / opt / <provider> hiyerarşisinde bulunmalıdır. Paket UNIX manuel sayfalarını içeriyorsa, / opt / <package> / share / man içinde veya / opt / <provider> hiyerarşisi altında bulunmalı ve / usr / share / man ile aynı alt yapı kullanılmalıdır.

Değişken olan paket dosyaları (normal işlemde değişiklik) / var / opt içine kurulmalıdır. Daha fazla bilgi için / var / opt bölümüne bakın.

Ana bilgisayara özgü yapılandırma dosyaları / etc / opt içine kurulmalıdır. Daha fazla bilgi için / etc bölümüne bakın.

/ Opt, / var / opt ve / etc / opt hiyerarşilerinin dışında, düzgün çalışması için dosya sistemi ağacındaki belirli konumlarda bulunması gereken paket dosyaları dışında başka paket dosyaları bulunamaz. Örneğin, aygıt kilit dosyaları / var / lock içine ve aygıtlar / dev içine yerleştirilmelidir.

Dağıtımlar, / opt dizininde yazılım yükleyebilir, ancak yerel sistem yöneticisinin izni olmadan yerel sistem yöneticisi tarafından yüklenen yazılımı değiştirmemeli veya silmemelidir.

gerekçe

Eklenti yazılımın / opt için kullanımı UNIX topluluğunda yerleşik bir uygulamadır. Sistem V Arabirim Tanımını (Üçüncü Sürüm) temel alan Sistem V Uygulaması İkili Arabirimi [AT&T 1990], burada tanımlanana çok benzer bir / opt yapısı sağlar.

Intel İkili Uyumluluk Standardı s. 2 (iBCS2) de / opt için benzer bir yapı sağlar.

Genel olarak, bir sistemde bir paketi desteklemek için gereken tüm veriler, / etc / opt / <package> ve / var / opt / <package> içine kopyalanması amaçlanan dosyalar da dahil olmak üzere / opt / <package> içinde bulunmalıdır. / opt içinde ayrılmış dizinler.

/ Opt kullanan dağıtımlara ilişkin küçük kısıtlamalar gereklidir, çünkü dağıtım yüklü ve yerel olarak yüklenmiş yazılımlar arasında, özellikle bazı ikili yazılımlarda bulunan sabit yol adları durumunda çakışmalar mümkündür.

/ Opt / <provider> altındaki dizinlerin yapısı yazılımın paketleyicisine bırakılır, ancak paketlerin / opt / <provider> / <package> içine kurulması ve yönergelere benzer bir yapı izlemesi önerilir. / opt / paketi. Bu yapıdan sapmanın geçerli bir nedeni, / opt / <provider> / lib veya / opt / <provider> / bin içine yüklenmiş dosyaları içerebilen destek paketleri içindir.


3

Kutsal bir şey yok /opt, sadece bu dizindeki bir sistemin tüm kullanıcıları tarafından erişilebilir olması gereken önceden derlenmiş bir yazılım koymak yaygın bir uygulamadır. Sistemin tek kullanıcısıysanız, ana dizininizde ayıklamakla ilgili yanlış bir şey yoktur. Ve sistemde bu yazılıma erişmesi gereken birkaç kullanıcı olsa da, /homebölümünüzdeki alanı kullanmak istiyorsanız , genel olarak erişilebilir bir /home/softwarenamedizin oluşturma ve yazılımınızı orada çıkarma konusunda yanlış bir şey yoktur (tek uyarı, adlı bir kullanıcının softwarenameolması için kullanıcının ana dizininde kullanamazsınız).


2

Ayrıntılı cevaplar çok iyi, ancak (içinde sabit kodlanmış mutlak yolları olabilecek yazılımların yanı sıra - en iyi programlama uygulaması değil), asıl nokta, sistem dışı / dağıtım dışı yazılımların karışık olarak depolanmaması gerektiğidir. düzenli sistem dosyaları.

Bir şeyleri koymak /optveya /usr/localtemiz ve daha güvenli tutmak.

Özellikle, yazılım arama yolunuz ($ PATH), yürütülecek belirli bir ada sahip bir program ararken konumların aranma sırasını belirler. Genellikle, gibi /optve /usr/locallistenin sonuna doğru olan yerler .

cpİçinde bir programın bulunduğu bir paket yüklerseniz , dağıtımınızla birlikte gelen varsayılan arama sırası normal olanı bulur çünkü depolandığı dizin benzer yerlerden önce aranır /opt.

Bu şekilde çalışmadıysa, cpsadece bazı dosyaları kopyalamaya çalıştığınızı düşündüğünüzde, başka bir şey yapan bir program çalıştırılırsa, bir güvenlik açığını neyin kırabileceğini veya açabileceğini kim bilebilir .

Böyle bir şey olursa, type cpçalıştırılan şeyin sizin düşündüğünüz şey olmadığını anlamak için birisinin (bir şeyin yanlış olduğunu göstermek için bile yeterli olmayabilir) bir komutu çalıştırmayı düşünmesi biraz zaman alabilir . Bu noktaya kadar, "Her şey tam olarak işe yaramadığı küçük detayın bir kenara bırakılması gereken yol!"

Temel olarak beklenmedik şeylerin gerçekleşmesini önlemeye yardımcı olur ve ayrıca sistem güncellemelerinin "özel" kurulu paketlerinizin bir kısmını veya tamamını kaldırabileceği veya değiştirebileceği durumlardan kaçınır. Ya da bunun tersi, bazı "özel" programlar, diğer birçok programın veya komut dosyasının güvenebileceği sistem tarafından sağlanan programların üzerine yazabilir.

Yönetimsel açıdan bakıldığında, "sistem" ve "isteğe bağlı" programların / dosyaların aynı konumlarda karıştırılması, sisteminizi "tanımsız" veya en azından "belirsiz" duruma getirir.

Sisteminizle veya programınızla ilgili bir sorununuz varsa ve yardıma ihtiyacınız varsa, sorulan ilk sorulardan biri "Neyi değiştirdiniz?" ve "Bu değişikliklerin bazılarını geçici olarak devre dışı bırakabilir miyiz? Bu nedenle, yalnızca başka bir şeyin belirtisine değil, gerçek soruna baktığımızı biliyoruz."

Ayrı konumlarda, bu değişiklikler hızlı bir şekilde tanımlanabilir ve tek yapmanız gereken (en azından programların kendileri için) dizinlerini geçici olarak yoldan kaldırmaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.