Her iki işletim sistemine ait olmayan dosyaları içerecek şekilde tasarlanmıştır, iken /opt
ve /usr/local
aynı dosya kümesi içerecek şekilde amaçlanmamıştır.
/usr/local
Yönetici tarafından oluşturulan dosyaları, genellikle make
komutu kullanarak (örn ./configure; make; make install
.) kurabileceğiniz bir yerdir . Buradaki düşünce, işletim sisteminin bir parçası olan ya da yerel dosyaların üzerine yazılacak ya da üzerine yazacak dosyalara çarpmamaktan kaçınmaktır (örneğin, yerel bir alternatif olsa da işletim sisteminin bir /usr/bin/foo
parçasıdır /usr/local/bin/foo
).
/usr
Bu, Linux ile nadiren yapılmasına rağmen, altındaki tüm dosyalar işletim sistemi örnekleri arasında paylaşılabilir. Bu, FHS'nin /usr
salt okunur olarak tanımlandığı gibi biraz çelişkili olduğu, ancak /usr/local/bin
yerel yazılım kurulumunun başarılı olması için okunması gereken bir bölüm . FHS'nin ana ilham kaynağı olan SVR4 dosya sistemi standardı, bu sorunun üstesinden gelmekten kaçınmak /usr/local
ve kullanılmasını tavsiye ediyor /opt/local
.
/usr/local
orijinal BSD’den kalan bir miras. O zaman, kaynak kodu /usr/bin
işletim sistemi komutları vardı /usr/src/bin
ve /usr/src/usr.bin
yerel olarak geliştirilmiş komutların kaynağı iken /usr/local/src
ve onların ikili içinde /usr/local/bin
. Ambalaj kavramı (tarball'ların dışında) yoktu.
Öte yandan, /opt
her biri kendi alt dizininde, birleştirilmiş paketleri (yani, İşletim Sistemi dağıtımının bir parçası olmayan, ancak bağımsız bir kaynak tarafından sağlanan paketler) yüklemek için bir dizindir. Bunlar zaten bağımsız bir üçüncü taraf yazılım distribütörü tarafından sağlanan bütün paketleri inşa ediyorlar. /usr/local
Bunların aksine , bu paketler dizin kurallarını takip eder (ya da en azından onlar gerekir). Örneğin, someapp
yüklü olacak /opt/someapp
onun komuta olmanın biriyle, /opt/someapp/bin/foo
kendi yapılandırma dosyası olacağını /etc/opt/someapp/foo.conf
ve bunun günlük dosyaları içinde /var/opt/someapp/logs/foo.access
.
/usr/local
yerel bir versiyonudur/usr
, oysa yanlış/opt
şeyler için yer tutucudur.