Linux, C: \ Program Files'a eşdeğerdir?


64

Windows ve Linux ve Unix'te herhangi bir dizine bir program | uygulama | yazılımının yüklenebileceğini biliyorum. Ayrıca, dağıtımın paketleme sistemi kullanılarak paketler kurulursa, dosyaları doğru yere yerleştirir.

Ancak bazen, bir yazılım yüklemesi dosya yerleştirmek için bir yol ister. Bir Linux dağıtımı durumunda, bu varsayılan yer neresidir ( C:\Program Filesveya C:\progra~1eşdeğeri)? Çeşitli dağılımlar için farklı mı? Evetse, bu nereye olurdu RHEL, Suseve Ubuntu?

Yanıtlar:


60

Linux Belgeleme Projesi bir sahiptir Linux dosya sistemi hiyerarşisi açıklamasını farklı klasörler ve onların (kısmen tarihsel) anlamını açıklamak.

Xenoterracide zaten işaret etti /binve /optWindows'ta "Program Files" ile karşılaştırılabilecek standart dizinler.

/binhem sistem yöneticisi hem de ayrıcalıklı olmayan kullanıcılar için kullanılabilecek birkaç yararlı komut içerir. Genellikle gibi kavkılıdır bash, csh.... vb ve yaygın gibi komutları kullanılan cp, mv, rm, cat, ls.

( TLDP'den alıntı )

/optvarsayı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.

( TLDP'den alıntı )


9
/ Opt sadece depolarda bulunmayan paketler için kullanılmaz mı? İnkscape, gimp, rhythmbox vb. Bu eşdeğer olmaz mıydı?
c76c3r8c42b347r8 11:11

5
Dosya sistemi hiyerarşisi (FHS) hakkında daha güncel bilgiler için linuxfoundation.org/en/FHS adresini ziyaret edin. (Not: Site şu anda kapalı, ancak kısa bir süre sonra yedeklenmelidir).
jw013 11:11

@Toksicbits: En azından Gentoo'da / opt içinde ikili paketler var - özellikle standart olmayan dosya sistemi hiyerarşisi nedeniyle / usr'a kurulamayan paketler.
Maciej Piechotka 11:11

TLDP harika görünüyor! Bir yandan notta; TLDP'yi ilk gördüğümde şöyle düşündüm: "çok uzun zamandır ... pik değil mi?"
Ege Özcan

3
Bu yanlış. / bin yalnızca çalıştırılabilir programlar içeriyor. Windows Program Dosyaları dizini, tüm çalıştırılabilir uygulamalar için, tüm çalıştırılabilir dosyaları, görevleri, veri dosyalarını ve uygulama tarafından ihtiyaç duyulan / sevk edilen her şeyi içeren bir alt dizini içerir.
psusi

45

Doğrudan bir eşdeğer yoktur. Dizin yapısı çok farklı. Windows altında, (örn. C:\Program Files\MyProgram) İle ilgili tüm dosyaları içeren kurulu her paket / yazılım için tek bir dizine sahipsiniz . Linux altında her bir yazılım, dosya türüne ve diğer bazı kurallara göre birçok dizinde "dağıtılır".

Örnek olarak, xscreensaverprogramla ilgili farklı dosyaların nereye yüklendiğini inceleyebiliriz:

/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]

Yüklemek için nerede bir yükleyici sorar genellikle zaman, Üzülmeyin, doğru cevap aşağıdakilerden biridir: /, /opt, /usr,/usr/local

Gördüğünüz gibi, dosyaların tümü (1) bazı basit kurallara göre xscreensaverkurulur /usr: çalıştırılabilir dosyalar /usr/bin, el ile sayfalar /usr/share/man, belgeler /usr/share/doc/packages/PROGRAMNAMEvb.

Bir yükleyici bir yükleme istediğinde prefix, genellikle şimdi programı yükleyen temel yolu bulmak ister . Benim xscreensaverörneğimde öyle /usr.

Basit kural olarak: /yalnızca sistemi (as C:\windows\system32) önyüklemek için gereken programı /usr/localiçermeli, yalnızca bu benzersiz bilgisayarda gereken programları içermeli, /opt(2) standart dizin yapısına sahip olmayan tüm isteğe bağlı programları ve /usrtüm standart yazılımları içermelidir. .

Her durumda, tüm bu kuralları ayrıntılı olarak tanımlayan bir standart vardır: Dosya Sistemi Hiyerarşi Standardı

(1) sistem çapında konfigürasyon dosyalarında bulunması gerekir /etc

(2) Linux altında oldukça eski


/optüçüncü parti yazılımlar için bir süredir tercih edilmektedir /usr/local.
Steve-o

7
Sadece bir açıklama, /usr/sharefarklı mimariler (belgeler, senaryolar, görüntüler) arasında paylaşıldığı /usr/lib*için mimariye bağlı dosyalar (ve bunun için çalıştırılabilir dosyalar değil ) için paylaşıldığı için "paylaşma" olarak adlandırılır /usr/bin.
eudoxos

12

Ususually, /bin, /usr/bin, /usr/local/binveya /opt/bin. Sanırım /usr/binve /opt/binProgram Dosyalarına en yakın olanlar, çünkü bunlar genellikle sistem yöneticisi tarafından yüklenen sistem dışı kritik ikili dosyalar içindir, ancak her ikisinin de pencereleri aksine paket yöneticisine sahip programları içerir. Nerede /usr/local/binolmayan dağıtıma paket yazılım içindir. /bingibi sistem kritik ikili dosyalar içindir /bin/sh.


neden dört seçenek? /bin, /usr/bin, /usr/local/binYa da /opt/bin. Standart bir yer yok mu? Sormamın nedeni, birkaç VM'ye yazılım yüklüyorum ve hiç bir bölümün en büyük alana sahip olduğu varsayılan konum. Bölüm alanını, genellikle yazılımın tüm VM'lere yerleştirildiği ve yazılımın farklı bir yere yerleştirilmediği dizine dönüştürmek istiyorum.
Thomas

1
Standart, yol adının neden kapalı olduğunu belirten birden fazla konumu belirtir, ancak işte bunlar, bunların ne olduğu hakkında daha fazla tanımlayan önbelleklenmiş FHS'ye bir bağlantıdır ve gerçekte ne yüklediğinize bağlıdır. Ayrıca RHEL, Suse ve Ubuntu farklıdır, bu yüzden aynı şeyi biraz farklı yerlere koyabilirler. /optörneğin, genellikle özel yazılım için kullanılır.
xenoterracide

Ayrıca genellikle ... tipik olarak hepsi aynı bölümdeyse ... bazen /usr/ayrı bir bölümdür.
xenoterracide 11:11

1
Bazı insanlar (örneğin, Hurd projesi) ayrımcılığın /binve /usr/binmodası geçmişin artık eski olduğunu; tarihsel olarak, sistem açısından kritik şeyler olacağını /bin, /lib... olurken, (doğrudan root) /usr(ile /usr/bin, /usr/lib, ...) temel sistem işlevselliği için gerekli olmayan, (belki de ağ üzerinden) daha sonra monte edilecektir.
eudoxos

1
@Tomas, çıkmamalı /opt. Bazı insanlar geçmişte bazı uygulamaların diğer tüm uygulamalardan farklı bir konumda olmasının iyi bir fikir olduğunu düşünürdü. /binkök bölümündedir. Bazı sistemlerde, kök bölümdeki alan sınırlıdır, temel olmayan ikili dosyalar (yani tüm kullanıcı uygulamaları) taşındı /usr/bin.
Ocak

8

man hierBir "Dosya sistemi hiyerarşisinin açıklaması" bölümüne bir göz atın .


3

Diğerlerinin de belirttiği gibi, paket yöneticisi aracılığıyla yüklenen programlar birkaç dizine dağılmıştır. İkili dosya genellikle bulunurken /usr/bin, sistem genelinde yapılandırma dosyaları /etcvb. İçindedir.

Bir uygulama paket yöneticisi aracılığıyla kurulmazsa, dosyalar paket yöneticisine müdahale etmeyecekleri bir yere kurulmalıdır. Bu yer /usr/local.

Bir yükleme yolu istenirse, en yaygın seçenek /usr/local/appname


3

Tip echo $PATHkabuk bir komut bulmak için görüneceğini yolunu (ler) görmek için terminali içinde. Bir dosyayı yazdırıldığı sırada kontrol etmeye gider.


1
Bu OP'nin istediği şeye cevap vermiyor.
Francesco Turco

1

Peki alışkanlık tüm çözümler bulmak /binve sbinçoğunlukla sistem komutlarını tutun çünkü (sistem tarafından kullanılan komutları yani).

/usr/binideal olarak "Program Files"unix dünyasının adı verilebilir . İlgili /optçok az paketler kurulum için bu konumu kullanmayı tercih, aynı kullanarak paketleri için de geçerlidir /etc/veya /varyerleri olarak

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.