Linux'taki uygulamalar için geleneksel yükleme konumu nedir?


72

Şu anda NetBeans'ı yüklüyorum ve varsayılan yükleme dizini /home/thomasowens/netbeans-6.8. Ben bu konumda bir hayranı değilim, bu yüzden bakıyorum /etc, /bin, /usr/bin, ve /sbin. Linux'un, sözleşmeyle Windows C:\Program Filesdiziniyle aynı olduğu bir yeri var mı ?

Yanıtlar:


98

Göre Dosya Sistemi Hiyerarşi Standardı , kabul edilebilir uygulamaya bağlı olarak çeşitli yerler vardır. Burada yoğun bir şekilde alıntı yapıyorum.

  • bin Elbette "ikili" için kısa
  • sbin "server binary" kısaltması, aksi halde şöyle tanımlanır:

    Sistem yönetimi için kullanılan yardımcı programlar (ve yalnızca diğer kök komutları)

  • /usr paylaşılabilir, salt okunur veriler içindir ve çeşitli FHS uyumlu ana bilgisayarlar arasında paylaşılabilir olmalıdır (ağınızda çok sayıda makineniz varsa ve hepsi aynı mimariyse, tek bir / usr klasörünü paylaşabilmeniz gerekir. ağdaki her makine ile)

  • /usr/local yazılımı yerel olarak kurarken sistem yöneticisi tarafından kullanılmak içindir (örn. ağdaki her makineye değil, yalnızca bu makineye yüklenen uygulamalar için).

Bunları bir araya getirmek:

  • /usr/bin sistemdeki çalıştırılabilir komutların birincil dizinidir.
  • /usr/sbin münhasıran, sistem yöneticisi tarafından kullanılan tüm önemli olmayan ikili dosyalar içindir.
  • Sistem onarım, sistem kurtarma, usr / montaj veya diğer temel fonksiyonlar için gerekli olan sistem yönetim programları yerleştirilmelidir /sbin(yani sırayla erişmesi gereken şeyler monte etmek yerine /usr/sbingitmek /sbin)
  • Aynı şekilde, daha önce gerekli olabilecek temel kullanıcı komutları /usrgirilir./bin
  • Yalnızca yerel makineye kurulan herhangi bir şey girmeli /usr/local/binveya/usr/local/sbin

Yine de / usr / local için bir başka kullanım var. Dağıtımınızdaki paket yöneticisine yüklediğiniz çoğu şey / usr altına yerleştirilir; birçok insan elle derledikleri şeyleri / usr / local altına koyar. Bu, onları paket yönetim sisteminin dışında tutar ve dağıtımdan ne kurduğunuzu (ve tekrar kapmak için geri almak zorunda kalmazsınız) ve elle derlediklerinizi tespit etmenizi sağlar; aynı zamanda farklı sürümleri aynı anda çalıştırmanıza izin verir (örneğin, / usr / bin / firefox vs / usr / local / bin / firefox).


İşlerin yerleşmiş sanıyordum Sadece zaman, muhtemelen en yakın eşdeğerdir bir başka yerde, orada c:\Program Files- /opt:

/opt Eklenti uygulama yazılımı paketlerinin kurulumu için ayrılmıştır.

/optMuhtemelen en yakın eşdeğerdir c:\program files, bu bir yerdir o birlikte bir klasördeki tüm dosyaları ile bir uygulama bulmak yerine dağılmış beklediğiniz /usr/bin, /varve /etc. Genellikle sadece çok büyük paketler tarafından kullanılır, ancak bu durumda, Netbeans'ın kendi klasörü olmasını istediği göz önüne alındığında, muhtemelen / opt / netbeans altına koymak en mantıklı olur.


3
ilginç. Eğer Linux'u dizayn etseydim, ağ paylaşımlı uygulamalarını / usr / shared içine koyardım ve sonra özel yerel ana bilgisayar uygulamalarını / usr içine koyardım. bu şekilde paylaşabilirim / usr / paylaşmadan, kalıtım yoluyla, / usr paylaşarak.
djangofan

1
Gerçekten güzel cevap. Paket yönetim sisteminden uzak durma hakkındaki yorumları da beğeniyorum.
DaveParillo

1
Kesinlikle / "tam 3. parti paketler" i tercih et. Yüklemelerin çoğu çeşitli ikili dosyaları, kütüphaneleri, dosyaları vb. Farklı dizinlere böler, ancak "hepsi bir arada" dizininiz olduğunda / opt başa çıkmayı kolaylaştırır.
Avery Payne

Birkaç hızlı soru: 1) Eğer / usr bir ağdaki tüm makineler arasında paylaşılabilir olması gerekiyorsa, bu tüm alt dizinlerin de paylaşılabilir olacağı anlamına gelmez, bu yüzden / usr / yerel ağdaki diğer makinelere görünebilir mi? 2) FHS nedir 3) Montaj / usr için gerekli komutlardan bahsettiğinizde, işletim sisteminin nasıl kapandığını, yani kapanmayı mı konuşuyorsunuz? 7 yıl sonra soruların bombardımanı için özür dilerim, ancak Linux'ta yeniyim ve kurulum kılavuzlarının bir şeyler nereye koyacağını söylediklerini gördükten sonra da aynı soruyu sordum ama niçin oraya koyacağımı. +1 btw
Ungeheuer

5

Gerçekten kişisel tercihime bağlı. Benim için değerinin değerini açıklayacağım.

/ usr, / usr / bin genellikle kurulacak sistem tarafından kurulan yazılımların yerleridir. Bir şeyleri kendim kurduğumda, onları birkaç yerden birine kurarım:

  1. Eğer sadece bir komut dosyası veya küçük bir program kullanacaksam, ~ / bin içine yüklerim - bu benim eşyalarımın çoğunun biteceği yer.
  2. Tam bir ağaç ağacıyla tanımladığınız gibi (NetBeans) sizin gibi bir şey varsa, / opt içine yüklerim
  3. Eğer tek bir çalıştırılabilirse, / usr / local / bin içine yüklerim

Neden # 2 ve # 3'ü ayırt ediyorum? Hiç bir fikrim yok, sadece zamanla geliştirdiğim bir alışkanlık. Bu, / opt'un genellikle derin bir dosya ağacı haline gelmesiyle sonuçlandığını, ancak yalnızca 2 veya 3 gerçek “şey” yüklü olduğunu ortaya koyuyor. Şu anda, seçmeli olarak yerleştirilmiş lord ve nilüfer notalarım var, her birinde altlarında oldukça büyük ağaçlar bulunan 2 dizin var. / Usr / local / bin dizininde 20 veya 30 giriş var, ancak alt dizin yok.

/ Usr / bin veya / usr / sbin içine bir şey yüklemiyorum, çünkü elle eklediğim şeyleri (sadece standart depodan yüklemenin bir parçası değil) ayrı tutmaktan hoşlanıyorum.


1

Dosya Sistemi Hiyerarşi Standardı bazı rehberlik sağlar iken . Çoğu dağıtımın paketleri yüklemek istediğini öğrendim /usr/share.

Bu nedenle, paket yöneticisi (rpm / apt-get / emerge) içinde kurulmamış herhangi bir uygulamayı yükleme uygulamasını benimsedim /usr/local. Bu, paket yönetimi ile yönetilmeyen uygulamaları ve kitaplıkları, olanlardan ayrı tutmama izin veriyor.

Hem Fedora Core hem de Gentoo kapsamında sistemimi yönetmeme yardımcı olan bir teknik.


0

Ben varsayılan konum olduğunu düşünürdüm, /binapt-get ya da benzeri bir şey kullanıyorsanız varsayılan olarak hemen hemen her şeyin yüklendiği yer ...

... Bununla birlikte, birçok ek dosya içeren daha modern programlara (ya da kurulum programı olmayan programlara) gelince, onları kendi dizinlerine yerleştirmeyi seviyorum /bin.


3
/ Bin, / usr / bin ve / sbin arasındaki fark nedir? BINary dosyalar için / bin en mantıklı.
Thomas Owens

0

Genellikle / usr, / local, / bin, vb. Gibi birden fazla klasöre kurulurlar. Programın GDebi Yükleyici'den (dosyalar sekmesi altında) nereye kurulduğunu öğrenebilirsiniz. Netbeans’ı taşıyacaksanız, / opt’e taşımayı öneririm, çünkü Google’ın eşyalarını yüklediği yer.


0

James Polley'in cevabını kabul etmiş olmakla birlikte, aslında varsayılan dizin, uygulamayı birden fazla hesap arasında paylaşmanız gerekmedikçe, çok anlamlıdır. Örneğin Flex'in Linux altında çalışması için Eclipse 3.0'ı (eski) yüklemem gerekiyordu ve $ HOME / eclipse3'e koydum.


0

Birden fazla sunucuya yüklediğim çoğu eklenti uygulama için / apps kullanmayı seviyorum. Klasörün bir kopyasını nfs sunucumda / installs / apps içinde saklıyorum. Herhangi bir yeni linux sunucusu oluşturduğumda installs klasörünü ve copy / apps'ı yüklüyorum ve yeni sunucuda birçok farklı ortak uygulamaya sahibim. Bu yeni sunucu için ihtiyaç duymadığım girişleri sildim ve işim bitti. Şey, belki ortam değişkenleri veya yol ifadeleri ayarlamak için bir komut dosyası ya da üç çalıştırmam gerekiyor ama bu pek çok yeni sunucu kurmak için gerekli.

Bir Windows ve .net arkaplanından geliyorum. .Net'in vaatlerinden biri çoğu uygulamanın Windows xcopy kullanılarak kurulabilmesiydi. Linux'ta da aynı şeyi arıyorum. Mümkünse, RPM veya yum vb. Üzerinden tarball'ı seçerim, böylece cp -r ile / apps dizinine dağıtabilir ve uygulamayı gelecekteki dağıtımlar için nfs sunucuma ekleyebilirim.


2
Soru kongre için sorar. Ne yaptığını kişisel olarak tanımladın. En azından bunu bir kongre ile ilişkilendirebilir misin?
fixer1234
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.