4. /usr Hiyerarşisi

4.1. Amaç

/usr, dosya sisteminin ikinci ana bölümüdür. /usr paylaşılabilir, salt okunur veridir. Bu, /usr'nin çeşitli FHS uyumlu konaklar arasında paylaşılabilir olması ama üzerine yazılmaması gerektiği anlamına gelir. Konağa özgü veya zaman zaman değişen herhangi bir bilgi başka bir yerde depolanmalıdır.

Büyük yazılım paketleri, /usr hiyerarşisi altında doğrudan bir alt dizin kullanmamalıdır.

4.2. Gereksinimler

Aşağıdaki dizinlerin ve bu dizinlere sembolik bağların /usr içinde bulunması gereklidir:

Dizin Açıklama
bin Çoğunluğu kullanıcı komutudur
lib Kütüphaneler
local Yerel hiyerarşi (ana kurulum sonrası boştur)
sbin Yaşamsal olmayan sistem ikil dosyaları
share Mimariye bağımlı olmayan veriler

4.3. Özel Seçenekler

Dizin Açıklama
games Oyunlar ve eğitici ikil dosyalar (seçimlik)
include C yazılımlarına dahil edilen başlık dosyaları
libexec Diğer uygulamalar tarafından çalıştırılan ikil dosyalar (seçimlik)
lib<nitelik> Özel amaçlı kütüphaneler (seçimlik)
src Kaynak kodlar (seçimlik)

Nispeten önemli bir örnek ve geniş kabul gören bir uygulama olması nedeniyle X Pencere Sistemi için bir istisna yapılmıştır.

Dizinler için aşağıdaki sembolik bağlar olabilir. Bu olasılık, tüm dağıtımların /var hiyerarşisini kullandığı varsayılana kadar eski sistemlerle uyumluluğu koruma ihtiyacına dayanmaktadır.

/usr/spool -> /var/spool
/usr/tmp -> /var/tmp
/usr/spool/locks -> /var/lock

Bir sistem yukarıdaki sembolik bağlardan herhangi birini artık gerektirmediğinde, istenirse bağ kaldırılabilir.

4.4. /usr/bin

4.4.1. Amaç

Bu, sistemdeki çalıştırılabilir komutların birincil dizinidir.

4.4.2. Gereksinimler

/usr/bin alt dizin içermemelidir.

4.4.3. Özel Seçenekler

İlgili alt sistem kuruluysa, aşağıdaki dosyaların ve bu dosyalara sembolik bağların /usr/bin içinde bulunması gerekir:

Komut Açıklama
perl Pratik Çıkarma ve Rapor Dili (seçimlik)
python Python yorumlama dili (seçimlik)
tclsh Tcl yorumlayıcı içeren basit kabuk (seçimlik)
wish Basit Tcl/Tk pencere kabuğu (seçimlik)
expect Etkileşimli iletişim kutusu uygulaması (seçimlik)

Gerekçe

Çalıştırılabilir betiklerin çoğunda, betiği çalıştıracak yorumlayıcı, betik dosyasının ilk satırında #!yorumlayıcı-mutlak-yolu biçeminde belirtilir. Bu tür betikleri farklı sistemler arasında taşınabilir kılmak için yorumlayıcı konumlarını standart hale getirmenin getirileri vardır. Kabuk yorumlayıcısı, bu belirtim tarafından /bin içine zaten sabitlenmiştir, ancak Perl, Python, Tcl ve wait için yorumlayıcılar çeşitli yerlere kurulabilir. Burada belirtilen konumlar, yorumlayıcıların fiziksel konumuna sembolik bağ olarak gerçeklenebilir.

4.5. /usr/include

4.5.1. Amaç

Burası, C yazılımlama dili için sistemin tüm genel kullanım başlık dosyalarının yerleştirilmesi gereken yerdir.

4.5.2. Özel Seçenekler

İlgili alt sistem kuruluysa, aşağıdaki dizinlerin ve bu dizinlere sembolik bağların /usr/include içinde bulunması gerekir:

Dizin Açıklama
bsd BSD uyumluluğu başlık dosyaları (seçimlik)

4.6. /usr/lib

4.6.1. Amaç

/usr/lib nesne dosyalarını ve kütüphanelerini içerir.[22] Bazı sistemlerde, /usr/lib doğrudan kullanıcılar veya kabuk betikleri tarafından çalıştırılması amaçlanmayan ikil dosyaları da içerebilir.[23]

Uygulamalar, /usr/lib altında tek bir alt dizin kullanabilir. Bir uygulama bir alt dizin kullanıyorsa, uygulama tarafından özel olarak kullanılan mimariye bağlı tüm veriler bu alt dizine yerleştirilmelidir.[24]

4.6.2. Özel Seçenekler

Tarihsel nedenlerden dolayı, /usr/lib/sendmail, eğer varsa, sistemin posta aktarım aracısı tarafından sağlanan sendmail-uyumlu komuta sembolik bağ olmalıdır.[25] [26]

4.7. /usr/libexec

4.7.1. Amaç

/usr/libexec doğrudan kullanıcılar veya kabuk betikleri tarafından yürütülmesi amaçlanmayan dahili ikil dosyaları içerir.

/usr/libexec'i bu şekilde kullanan uygulamalar, /usr/lib'i burada belgelenen diğer amaçlar için kullansalar bile dahili ikil dosyaları depolamak için /usr/lib kullanmamalıdır.

Gerekçe

Bu belgenin önceki bazı sürümleri, bazı ortamlarda standart uygulama olmasına rağmen /usr/libexec'i desteklemiyordu.[27] Bu kısıtlamaya uyum sağlamak için, bunun yerine /usr/lib kullanmak yaygın bir uygulama haline geldi. Her iki uygulama da artık kabul edilebilir, ancak her uygulama kendini yapılandırmak için bir yol seçmelidir.

4.8. /usr/lib<nitelik>

4.8.1. Amaç

/usr/lib<nitelik> belli bir amaca yönelik olması dışında /usr/lib ile aynı görevi yerine getirir. Buna /usr/lib<nitelik>/sendmail ve /usr/lib<nitelik>/X11 sembolik bağlarının gerekliliği dahil değildir.[28]

4.9. /usr/local

4.9.1. Amaç

/usr/local hiyerarşisi, yazılımı yerel olarak kurarken sistem yöneticisi tarafından kullanılır. Sistem yazılımı güncellendiğinde üzerine yazılmaması gereken kurulumlar içindir. Bir grup konak arasında paylaşılabilen ancak /usr altında bulunmayan uygulamalar ve veriler için de kullanılabilir.

/usr altındaki yazılımı değiştirmeyecek veya yükseltmeyecekse yerel olarak kurulan yazılım /usr yerine /usr/local içine yerleştirilmelidir.[29]

4.9.2. Gereksinimler

Aşağıdaki dizinler veya bu dizinlere sembolik bağların /usr/local içerisinde bulunması gereklidir:

Dizin Açıklama
bin Yerel ikil dosyaları
etc Yerel ikil dosyalar için konağa özgü sistem yapılandırması
games Yerel oyun ikil dosyaları
include Yerel C başlık dosyaları
lib Yerel kütüphaneler
man Yerel çevrimiçi kılavuzlar
sbin Yerel sistem ikil dosyaları
share Yerel mimariden bağımsız hiyerarşi
src Yerel kaynak kodları

FHS uyumlu bir sistem ilk kez kurulduktan sonra, aşağıda listelenenler dışında hiçbir dizin /usr/local dizininde olamaz.

4.9.3. Özel Seçenekler

/lib<nitelik> veya /usr/lib<nitelik> dizinleri mevcutsa, bunlara eşdeğer dizinlerin ayrıca /usr/local altında da bulunması gerekir.

/usr/local/etc, /etc/local dizinine sembolik bağ olabilir.

Gerekçe

/usr/local/etc tutarlılığı kurulumcular için faydalıdır ve diğer sistemlerde zaten kullanılmaktadır. Bir sistemi yeniden oluşturmak için tüm /usr/local dizininin de yedeklenmesi gerektiğinden, ek bakım yükü getirmez, ancak sistemler tüm yapılandırmalarını tek bir hiyerarşi altında istiyorsa, /etc/local dizinine bir sembolik bağ uygundur.

/usr/etc'ye hala izin verilmediği unutulmamalıdır: /usr içindeki uygulamalar yapılandırma dosyalarını /etc içine yerleştirmelidir.

/usr/share/color dizini bu belgede belirtildiği gibi mevcutsa, /usr/local/share/color dizini de /usr/share/color ile aynı kurallara tabi olarak mevcut olmalıdır.

Gerekçe

Bu kullanım, sistem yöneticisine gerektiğinde renk profillerini elle olarak kurmak için yer sağlar.

4.9.4. /usr/local/share

Bu dizinin içeriği için gereksinimler /usr/share ile aynıdır.

4.10. /usr/sbin

4.10.1. Amaç

Bu dizin, yalnızca sistem yöneticisi tarafından kullanılan zorunlu olmayan ikil dosyaları içerir. Sistem onarımı, sistem kurtarma, /usr bölümünün bağlanması veya diğer temel işlevler için gerekli olan sistem yönetim araçları bunun yerine /sbin içine yerleştirilmelidir.[30]

4.10.2. Gereksinimler

/usr/sbin içinde alt dizin olmamalıdır.

4.11. /usr/share

4.11.1. Amaç

/usr/share hiyerarşisi mimariden bağımsız salt okunur veri dosyaları içindir.[31]

Bu hiyerarşinin, belirli bir işletim sisteminin tüm mimari platformları arasında paylaşılabilir olması amaçlanmıştır; bu nedenle, örneğin, i386, Alpha ve PPC platformlarına sahip bir konak, merkezi olarak bağlı tek bir /usr/share dizinine sahip olabilir. Bununla birlikte, /usr/share hiyerarşisinin genellikle farklı işletim sistemleri veya aynı işletim sisteminin farklı sürümleri tarafından paylaşılmasının amaçlanmadığı unutulmamalıdır.

Değiştirilmesi gerekmeyen veriler içeren veya gerektiren herhangi bir uygulama veya paket, bu verileri /usr/share (veya yerel olarak kuruluysa /usr/local/share) dizininde saklamalıdır. Bu amaçla /usr/share içinde bir alt dizin kullanılması önerilir. Tek bir dosya kullanan uygulamalar /usr/share/misc dizinini kullanabilir.

/usr/share/games içinde depolanan oyun verileri tamamen statik veriler olmalıdır. Puan dosyaları, oyun oynama günlükleri vb. gibi değiştirilebilir dosyalar /var/games içine yerleştirilmelidir.

4.11.2. Gereksinimler

Aşağıdaki dizinler veya bu dizinlere sembolik bağların /usr/share içerisinde bulunması gereklidir:

Dizin Açıklama
man Çevrimiçi kılavuzlar
misc Mimariden bağımsız çeşitli veriler

4.11.3. Özel Seçenekler

İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere sembolik bağların /usr/share içerisinde bulunması gerekir:

Dizin Açıklama
color Renk yönetim bilgileri (seçimlik)
dict Sözcük listeleri (seçimlik)
doc Çeşitli belgelendirme (seçimlik)
games /usr/games için duruk veri dosyaları (seçimlik)
info GNU Info sistemi için birincil dizin (seçimlik)
locale Yerel bilgileri (seçimlik)
nls Yerel dil desteği için ileti katalogları (seçimlik)
ppd Yzaıcı tanımları (seçimlik)
sgml SGML verisi (seçimlik)
terminfo terminfo veritabanı için dizinler (seçimlik)
tmac groff ile dağıtılmayan troff makroları (seçimlik)
xml XML veri (seçimlik)
zoneinfo Zaman dilimi bilgileri ve yapılandırması (seçimlik)

Uygulamaya özgü, mimariden bağımsız dizinlerin buraya yerleştirilmesi önerilir. Bu tür dizinler arasında groff, perl, ghostscript, texmf ve kbd (Linux) veya syscons (BSD) bulunur. Bununla birlikte, dağıtıcının takdirine bağlı olarak geriye dönük uyumluluk için bunlar /usr/lib dizinine yerleştirilebilir. Benzer şekilde, dağıtıcı bazı oyun verilerini de buraya yerleştirmek isterse, /usr/share/games hiyerarşisine ek olarak bir /usr/lib/games de hiyerarşisi kullanılabilir.

4.11.4. /usr/share/color

4.11.4.1. Amaç

Bu dizin, sistem tarafından yüklenen ICC renk yönetimi dosyalarının ana dizinidir.

4.11.4.2. Özel Seçenekler

İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere sembolik bağların /usr/share/color içerisinde bulunması gerekir:

Dizin Açıklama
icc ICC renk profilleri (seçimlik)

/usr/share/color dizininin kökü dosya içermemeli, tüm dosyalar alt dizinlerde olmalıdır.

4.11.5. /usr/share/dict

4.11.5.1. Amaç

Bu dizin, sistemdeki sözcük listelerinin ana dizinidir; Geleneksel olarak bu dizin, yalnızca look(1) ve çeşitli yazım denetim uygulamaları tarafından kullanılan İngilizce words dosyasını içerir. words dosyası sözcüklerin Amerikan veya İngiliz yazılışını kullanabilir.

Gerekçe

Sözcük listelerinin yalnızca burada bulunmasının nedeni, tüm yazım denetleyicileri için bu dosyaların ortak dosyalar olmalarıdır.

4.11.5.2. Özel Seçenekler

İlgili alt sistem kuruluysa, aşağıdaki dosyalar veya bu dosyalara sembolik bağların /usr/share/dict içerisinde bulunması gereklidir:

Dosya Açıklama
words İngilizce sözcük listesi (seçimlik)

Hem Amerikan hem de İngiliz yazılışların gerektiği yerlerde words dosyası ­/usr/share/dict/american-english veya ­/usr/share/dict/british-english ile ilintilenebilir.

Diğer diller için sözcük listeleri, o dilin İngilizce adı kullanılarak eklenebilir, örneğin, /usr/share/dict/french, /usr/share/dict/danish, vb. Bunlar, mümkünse, Unicode'a dayalı bir karakter seti kullanmalı ve UTF-8 karakter kümesi tercih edilen seçenek olmalıdır.

Varsa, diğer sözcük listeleri de buraya dahil edilmelidir.

4.11.6. /usr/share/man

4.11.6.1. Amaç

Bu bölüm, /usr/share/man dahil olmak üzere sistemdeki kılavuz sayfalarının yapılandırması ile ilgili ayrıntıları içerir. Ayrıca /var/cache/man ile ilgili bölüme de bakılmalıdır.

Sistemin birincil <mandizini> /usr/share/man dizinidir. / ve /usr dosya sistemleri altındaki komutlar ve veriler için kullanım bilgileri içerir.[32]

Kılavuz sayfaları <mandizini>/<yerel>/man<bölüm>/<mimari> altında saklanır. <mandizini>, <yerel>, <bölüm> ve <mimari> ile ilgili açıklamalar aşağıdadır.

Bölüm açıklamaları:

man1: Kullanıcı komutları

Genel olarak erişilebilen komutları açıklayan kılavuz sayfaları bu bölümde yer almaktadır. Bir kullanıcının kullanması gereken uygulama belgelerinin çoğu burada bulunur.

man2: Sistem çağrıları

Bu bölümde tüm sistem çağrıları (çekirdeğin işlemleri gerçekleştirmesi için istekler) açıklanmaktadır.

man3: Kütüphane işlevleri

3. Bölüm, doğrudan çekirdek hizmetlerini talep etmeyen yazılım kütüphanesi işlevlerinin açıklamalarını içerir. Bu ve 2. bölüm aslında yalnızca yazılım geliştirenlerin ilgisini çeker.

man4: Özel dosyalar

4. bölüm sistemde bulunan özel dosyaları, ilgili sürücü işlevlerini ve ağ desteğini açıklamaktadır. Genelde bu, /dev dizininde bulunan aygıt dosyalarını ve ağ protokolü desteğine yönelik çekirdek arayüzünü içerir.

man5: Dosya biçemleri

Birçok veri dosyasının biçemi 5. bölümde belgelenmiştir. Buna çeşitli başlık dosyaları, uygulamaların çıktı dosyaları ve sistem dosyaları dahildir.

man6: Oyunlar

Bu bölüm oyunları, demoları ve genellikle önemsiz uygulamaları belgelendirir. Farklı insanların bunun ne kadar gerekli olduğuna dair çeşitli fikirleri vardır.

man7: Çeşitli

Sınıflandırılması zor olan kılavuz sayfaları için 7. bölüm ayrılmıştır. Troff ve diğer metin işleme makro paketleri burada bulunur.

man8: Sistem yönetimi

Sistem yöneticileri tarafından sistem işletimi ve bakımı için kullanılan komutlar burada belgelenmiştir. Bu komutlardan bazıları ara sıra normal kullanıcılar için de yararlıdır.

4.11.6.2. Özel Seçenekler

Aşağıdaki dizinler veya bu dizinlere sembolik bağlar, boş olmadıkları takdirde /usr/share/<mandizini>/<yerel> içerisinde bulunması gerekir:[33]

Dizin Açıklama
man1 Kullanıcı komutları (seçimlik)
man2 Sistem çağrıları (seçimlik)
man3 Kütühane işlevleri (seçimlik)
man4 Özel dosyalar (seçimlik)
man5 Dosya biçemleri (seçimlik)
man6 Oyunlar (seçimlik)
man7 Çeşitli (seçimlik)
man8 Sistem yönetim komutları (seçimlik)

<bölüm> bileşeni kılavuzun bulunduğu bölümün numarasıdır.

Farklı (veya birden çok) dilde yazılmış kılavuz sayfalarını desteklemek için /usr/share/man yapısında düzenlemeler yapılmalıdır. Bu düzenlemeler, bu kılavuz sayfalarının saklanacağı yeri ve kaynağını dikkate almalıdır. İlgili etmenler arasında dil (yöresel ağızlar dahil) ve karakter kümesi yer alır.

/usr/share/man dil alt dizinlerinin bu adlandırma biçimi, kültürel bir ortamı tanımlamanın en kabul gören yöntemi olan yerel ayar tanımlama dizgesini tanımlayan POSIX 1003.1 standardının E ekine dayanmaktadır. <yerel> dizgesinin açılımı:

<dil>[_<ülke>][.<karakter-kümesi>][,<sürüm>]

<dil> alanı ISO 639'dan (dil adlarının temsili için kodlama) alınmış olmalıdır. İki karakter genişliğinde olmalı ve sadece küçük harflerle belirtilmelidir.

<ülke> alanı, mümkünse, ISO 3166'nın (ülkelerin gösterimlerinin belirtimi) iki harfli kodu olmalıdır. (E-posta adreslerinde ülke kodları için kullanılan iki harfli kodlara çoğu kişi aşinadır.) İki karakter genişliğinde olmalı ve yalnızca büyük harflerle belirtilmelidir.[34]

<karakter-kümesi> alanı, karakter kümesini açıklayan standardı temsil etmelidir. <karakter-kümesi> alanı sadece sayısal bir belirtim ise, sayı karakter kümesini tanımlayan uluslararası standardın numarasıdır. Mümkünse bunun sayısal bir gösterim olması (özellikle ISO standartları), ek noktalama işaretleri içermemesi ve tüm harflerin küçük olması önerilir.

<karakter-kümesi> alanından sonra virgülle ayrılmış olarak profilin <sürüm>'ünü belirten bir değer yerleştirilebilir. Bu, farklı kültürel ihtiyaçlar arasında ayrım yapmak için kullanılabilir; örneğin, sistem odaklı sıralamaya karşın sözlük sıralaması. Bu standart, zorunlu olmadıkça <sürüm> alanının kullanılmamasını önerir.

Tüm kılavuz sayfaları için benzersiz bir dil ve karakter kümesi kullanan sistemler, <yerel> alt dizgesini atlayabilir ve tüm kılavuz sayfalarını <mandizini> dizininde saklayabilir. Örneğin, sadece ASCII ile kodlanmış İngilizce kılavuz sayfaları olan sistemler, kılavuz sayfalarını (man<bölüm> dizinlerini) doğrudan /usr/share/man altında saklayabilir. (Aslında geleneksel durum ve düzenleme budur.)

Kabul görmüş standart karakter kümesi bulunan ülkeler <karakter-kümesi> alanını atlayabilir, ancak özellikle birden fazla yetkin standarda sahip ülkeler için dahil edilmesi şiddetle önerilir.

Çeşitli örnekler:

Dil Ülke Karakter Kümesi Dizin
İngilizce ASCII /usr/share/man/en
İngilizce İngiltere Unicode UTF-8 /usr/share/man/en_GB.10646
İngilizce ABD ASCII /usr/share/man/en_US
Fransızca Kanada ISO 8859-1 /usr/share/man/fr_CA.88591
Fransızca Fransa ISO 8859-1 /usr/share/man/fr_FR.88591
Almanca Almanya ISO 646 /usr/share/man/de_DE.646
Almanca Almanya ISO 6937 /usr/share/man/de_DE.6937
Almanca Almanya ISO 8859-1 /usr/share/man/de_DE.88591
Almanca İsviçre ISO 646 /usr/share/man/de_CH.646
Japonca Japonya JIS /usr/share/man/ja_JP.jis
Japonca Japonya SJIS /usr/share/man/ja_JP.sjis
Japonca Japonya UJIS (veya EUC-J) /usr/share/man/ja_JP.ujis
Japonca Japonya Unicode UTF-16 /usr/share/man/ja_JP.10646

Benzer şekilde, aygıt sürücüleri veya alt düzey sistem yönetim komutları ile ilgili belgeler gibi mimariye bağlı kılavuz sayfaları için düzenleme yapılmalıdır. Bunlar, uygun man<bölüm> dizininde bir <mimari> alt dizini altına yerleştirilmelidir; örneğin, i386 ctrlaltdel(8) komutu için kılavuz sayfası /usr/share/man/<yerel>/man8/i386/ctrlaltdel.8 düzeniyle yerleştirilebilir.

/usr/local altındaki komutlar ve veriler için kılavuz sayfaları /usr/local/man veya /usr/local/share/man dizininde saklanır. Sistemdeki tüm kılavuz sayfası hiyerarşileri, /usr/share/man ile aynı yapıya sahip olmalıdır, çünkü kılavuz sayfası içeriğini kullanan komutlar tarafından beklenen yapı budur.[35]

Biçimlendirilmiş kılavuz sayfa girdilerini içeren cat sayfası bölümleri (cat<bölüm>), <mandizini>/ <yerel> alt dizinlerinde de bulunur, ancak bunlar gerekli olmadığı gibi nroff kaynak kılavuz sayfalarının yerine de dağıtılamaz.

"1" ila "8" arasındaki numaralı bölümler geleneksel olarak tanımlanır. Genel olarak, belirli bir bölüm içinde bulunan kılavuz sayfalarının dosya adı .<bölüm> uzantısı ile biter.

Ek olarak, bazı uygulamaya özel büyük kılavuz sayfaları kümelerinin, kılavuz sayfası dosya adına eklenmiş bir soneki vardır. Örneğin, MH posta işleme sistemi kılavuz sayfalarında tüm MH kılavuzlarına mh eklenmiş olmalıdır. Tüm X Pencere Sistemi kılavuz sayfalarının dosya adının sonuna bir x eklenmesi gerekir.

Çeşitli dillerdeki kılavuz sayfalarını /usr/share/man dizininin uygun alt dizinlerine yerleştirme uygulaması, /usr/local/man gibi diğer kılavuz sayfası hiyerarşileri için de geçerlidir. (Standartın bu bölümü, isteğe bağlı /var/cache/man yapısıyla ilgili bölümde daha sonra da geçerlidir.)

4.11.7. /usr/share/misc

Bu dizin, /usr/share altında ayrı bir alt dizin gerektirmeyen, mimariden bağımsız çeşitli dosyalar içerir.

4.11.7.1. Özel Seçenekler

İlgili alt sistem kuruluysa, aşağıdaki dosyalar veya bu dosyalara sembolik bağların /usr/share/misc içerisinde bulunması gereklidir:

Dosya Açıklama
ascii ASCII karakter kümesi tablosu (seçimlik)
termcap Uçbirim yetenekleri veritabanı (seçimlik)
termcap.db Uçbirim yetenekleri veritabanı (seçimlik)

Diğer (uygulamaya özel) dosyalar burada görünebilir, ancak bir dağıtıcı bunları kendi takdirine bağlı olarak /usr/lib dizinine yerleştirebilir.[36] [37]

4.11.8. /usr/share/ppd

4.11.8.1. Amaç

/usr/share/ppd, birçok yazdırma sistemi tarafından yazıcı sürücülerinin açıklamaları olarak kullanılan PostScript Yazıcı Tanımı (PPD) dosyalarını içerir. PPD dosyaları bu dizine veya bir alt dizine yerleştirilebilir.

4.11.9. /usr/share/sgml

4.11.9.1. Amaç

/usr/share/sgml, sıradan kataloglar (merkezi olanlar değil, bkz. /etc/sgml), DTD'ler, öğeler veya biçimleme dosyaları gibi SGML uygulamaları tarafından kullanılan mimariden bağımsız dosyaları içerir.

4.11.9.2. Özel Seçenekler

İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere sembolik bağların /usr/share/sgml içerisinde bulunması gerekir:

Dizin Açıklama
docbook docbook DTD (seçimlik)
tei tei DTD (seçimlik)
html html DTD (seçimlik)
mathml mathml DTD (seçimlik)

Belirli bir DTD'ye özgü olmayan diğer dosyalar kendi alt dizinlerinde bulunabilir.

4.11.10. /usr/share/xml

4.11.10.1. Amaç

/usr/share/xml, sıradan kataloglar (merkezi olanlar değil, bkz. /etc/sgml), DTD'ler, öğeler veya biçimleme dosyaları gibi XML uygulamaları tarafından kullanılan mimariden bağımsız dosyaları içerir.

4.11.10.2. Özel Seçenekler

İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere sembolik bağların /usr/share/xml içerisinde bulunması gerekir:

Dizin Açıklama
docbook docbook XML DTD (seçimlik)
xhtml XHTML DTD (seçimlik)
mathml MathML DTD (seçimlik)

4.12. /usr/src

4.12.1. Amaç

Kaynak kod, yalnızca başvuru amacıyla bu alt dizine yerleştirilebilir.[38]



[22] Mimariden bağımsız, uygulamaya özgü, duruk dosya ve alt dizinler /usr/share dizinine yerleştirilmelidir.

[23] Çalıştırılabilir ikili dosyalar için /usr/lib ile /usr/libexec karşılaştırması için aşağıdaki /usr/libexec bölümüne bakınız.

[24] Örneğin, Perl 5 modülleri ve kitaplıkları için perl5 alt dizini.

[25] makewhatis ve sendmail gibi bazı komutlar da geleneksel olarak /usr/lib dizinine yerleştirilmiştir. makewhatis dahili bir ikil dosyadır ve bir ikil dizinine yerleştirilmelidir; kullanıcılar yalnızca catman'e erişir. Daha yeni sendmail ikil dosyaları artık öntanımlı olarak /usr/sbin dizinine yerleştirilmektedir. Ek olarak, sendmail uyumlu bir posta aktarım aracısı kullanan sistemler, sendmail komutu olarak, yürütülebilir dosyanın kendisine veya uygun yürütülebilir bir dosyaya sembolik bağ olarak /usr/sbin/sendmail'i sağlamalıdır.

[26] X Pencere Sistemi için konağa özgü veriler /usr/lib/X11'de saklanmamalıdır. xorg.conf gibi konağa özgü yapılandırma dosyaları /etc/X11'de saklanmalıdır. Bu, daha genel bir yapılandırma dosyasına (muhtemelen /usr/lib/X11'de) yalnızca sembolik bağ yapılmış olsa bile, system.twmrc gibi yapılandırma verilerini de içerir.

[27] Örneğin, Özgür Yazılım Vakfı tarafından sağlanan "GNU Kodlama Standartları"na bakılabilir.

[28] /usr/lib ve /usr/lib<nitelik> aynı olduğunda (biri diğerine sembolik bağ ise), bu dosyalar ve bu uygulamaların alt dizinleri de mevcut olacaktır.

[29] / veya /usr dizinine yerleştirilen yazılımların üzerine sistem yükseltmeleri yazılabilir (yine de bu koşullar altında dağıtımların /etc dizinindeki verilerin üzerine yazmamasını öneririz). Bu nedenle yerel yazılımlar sebepsiz yere /usr/local dışına yerleştirilmemelidir.

[30] Yerel olarak kurulan sistem yönetim uygulamaları /usr/local/sbin altına yerleştirilmelidir.

[31] Bu verilerin çoğu başlangıçta /usr (man, doc) veya /usr/lib (dict, terminfo, zoneinfo) altında saklanırdı.

[32] Açıkçası, / içinde kılavuz sayfaları yoktur, çünkü bunlar önyükleme sırasında veya acil durumlarda gerekli değildir. Gerçekten.

[33] Örneğin, /usr/share/man altında 4. bölümde (Aygıtlar) hiç kılavuz sayfası yoksa /usr/share/man/man4 dizini olmayabilir.

[34] Bu kuralın önemli bir istisnası, ISO 3166'da 'GB' olan, ancak çoğu e- posta adresi için 'UK' olan Birleşik Krallık'tır.

[35] /usr/local/man dizininin kullanımı artık önerilmemektedir ve bu belirtimin sonraki sürümlerinde tamamen kullanımdan kaldırılabilir.

[36] Böyle dosyalardan bazıları: airport, birthtoken, eqnchar, getopt, gprof.callg, gprof.flat, inter.phone, ipfw.samp.filters, ipfw.samp.scripts, keycap.pcvt, mail.help, mail.tildehelp, man.template, map3270, mdoc.template, more.help, na.phone, nslookup.help, operator, scsi_modes, sendmail.hf, style, units.lib, vgrindefs, vgrindefs.db, zipcodes.

[37] Tarihsel olarak, magic dosyası /usr/share/misc dizinine yerleştirildi, ancak file komutunun günümüzdeki sürümleri birkaç dosya kullanmakta ve bunları /usr/share/file dizinine yerleştirmektedir. Uyumluluk için dağıtım, /usr/share/misc/magic adında /usr/share/file/magic dosyasına sembolik bağ oluşturabilir.

[38] Genelde, kaynak kod bu hiyerarşi içinde derlenmemelidir.