5. /var
Hiyerarşisi
5.1. Amaç
/var
/var, değişken veri dosyalarını içerir.
Bunlara kuyruk dizinleri ve dosyaları, yönetim ve günlükleme verileri ve
gelip geçici dosyalar dahildir.
/var
hiyerarşisinin bazı bölümleri farklı sistemler
arasında paylaşılamaz. Örneğin, /var/log
,
/var/lock
ve /var/run
. Diğer
bölümler paylaşılabilir, özellikle /var/mail
,
/var/cache/man
, /var/cache/fonts
ve /var/spool/news
.
/var
, /usr
'yi salt okunur
olarak bağlamayı mümkün kılmak için burada belirtilmiştir. Sistem
çalışması sırasında (kurulum ve yazılım bakımının aksine)
/usr
'ye yazılan her şey /var
içinde olmalıdır.
/var
ayrı bir bölüm yapılamazsa, genellikle
/var
'ın kök bölümden çıkarılıp
/usr
altına taşınması tercih edilir. (Bu bazen kök
bölümün boyutunu küçültmek için veya kök bölümde alan azaldığında
yapılır.) Ancak, /usr
ile /var
arasında bağ kurulmamalıdır çünkü bu, /usr
ve
/var
'ın ayrışmasını zorlaştırır ve isim çakışması
olasılığı ortaya çıkar. Bunun yerine, /var
'ı
/usr/var
'a bağlamak gerekir.
Uygulamaların genelde /var
'ın en üst düzeyine dizin
eklememesi gerekir. Bu tür dizinler, yalnızca sistem çapında bir anlamı
varsa ve FHS posta listesine danışılarak eklenmelidir.
5.2. Gereksinimler
Aşağıdaki dizinler veya bu dizinlere sembolik bağların
/var
içerisinde bulunması gereklidir:
Dizin | Açıklama |
---|---|
cache
|
Uygulamaların önbellek verileri |
lib
|
Değişken durum bilgileri |
local
|
/usr/local için değişken veri |
lock
|
Kilit dosyaları |
log
|
Günlük dosyaları ve dizinleri |
opt
|
/opt için değişken veri |
run
|
Çalışan süreçlerle ilgili veriler |
spool
|
Uygulamaların kuyruk verileri |
tmp
|
Sistem yeniden başlatmaları arasında korunan geçici dosyalar |
Bazı dizinler, tarihsel ve/veya yerel uygulamalarla çelişeceklerinden, bazı yeni uygulamalar tarafından keyfi olarak kullanılmamaları gerektiği anlamında 'ayrılmıştır'. Bunlar:
/var/backups /var/cron /var/msgs /var/preserve
5.3. Özel Seçenekler
İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere
sembolik bağların /var
içerisinde
bulunması gerekir:
Dizin | Açıklama |
---|---|
account
|
Süreç hesaplarının günlükleri (seçimlik) |
crash
|
Sistem çökme dökümleri (seçimlik) |
games
|
Değişken oyun verisi (seçimlik) |
mail
|
Kullanıcı posta kutusu dosyaları (seçimlik) |
yp
|
Ağ Bilgi Hizmeti (NIS) veritabanı dosyaları (seçimlik) |
5.4. /var/account
5.4.1. Amaç
Bu dizin, geçerli etkin süreç hesaplarının günlüklerini ve bileşik süreç kullanım verilerini (bazı UNIX benzeri sistemlerinde lastcomm ve sa tarafından kullanıldığı gibi) tutar.
5.5. /var/cache
5.5.1. Amaç
/var/cache
, uygulamalardan önbelleğe alınan veriler
için tasarlanmıştır. Bu tür veriler, yerel olarak zaman alıcı G/Ç veya
hesaplamanın sonucunda oluşturulur. Uygulama, verileri yeniden
oluşturabilmeli veya geri yükleyebilmelidir.
/var/spool
'dan farklı olarak, önbelleğe alınan
dosyalar veri kaybı olmadan silinebilir. Veriler, uygulama çağrıları ve
sistemin yeniden başlatılması arasında geçerli kalmalıdır.
/var/cache
altında bulunan dosyaların süresi
uygulamaya özel bir şekilde, sistem yöneticisi tarafından veya her ikisi
tarafından da doldurulmuş olabilir. Uygulama, bu dosyaları (genellikle
disk alanı yetersizliği nedeniyle) elle silinmesinden sonra her zaman
kurtarabilmelidir. Önbellek dizinlerinin veri biçemi için başka herhangi
bir gereklilik yoktur.
Gerekçe
Önbelleğe alınan veriler için ayrı bir dizinin varlığı, sistem
yöneticilerinin /var
içindeki diğer dizinlerden
farklı disk ve yedekleme politikaları belirlemesine olanak tanır.
5.5.2. Özel Seçenekler
Dizin | Açıklama |
---|---|
fonts
|
Yerel olarak üretilmiş yazı tipleri (seçimlik) |
man
|
Yerel olarak biçemlenmiş kılavuz sayfaları (seçimlik) |
www
|
WWW vekil veya önbellek verileri (seçimlik) |
<paket>
|
Pakete özgü önbellek verileri (seçimlik) |
5.5.3. /var/cache/fonts
5.5.3.1. Amaç
Dinamik olarak oluşturulmuş tüm yazı tiplerini depolamak için
/var/cache/fonts
dizini kullanılmalıdır. Özellikle,
mktexpk tarafından otomatik olarak oluşturulan tüm
yazı tiplerinin /var/cache/fonts
dizininin uygun
şekilde adlandırılmış alt dizinlerinde bulunması gerekir.[39]
5.5.3.2. Özel Seçenekler
Diğer dinamik olarak oluşturulmuş yazı tipleri de bu ağaca,
/var/cache/fonts
dizininin uygun şekilde
adlandırılmış alt dizinlerine yerleştirilebilir.
5.5.4. /var/cache/man
5.5.4.1. Amaç
Bu dizin, /usr
bölümünü salt okunur bağlayan,
ancak yerel olarak biçimlendirilmiş kılavuz sayfalarının önbelleğe
alınmasına da izin vermek isteyenler için standart bir konum sağlar.
/usr
bölümünü yazılabilir olarak bağlayanlar ise
(örneğin, tek kullanıcılı kurulumlar)
/var/cache/man
ağacını kullanmamayı tercih
edebilir ve biçimlendirilmiş man sayfalarını doğrudan
/usr/share/man
altındaki
cat
dizinlerine yazabilir. Çoğu kurulumun bunun yerine aşağıdaki
seçeneklerden birini kullanması önerilir:
<bölüm>
-
Biçimlendirilmemiş sürümlerle birlikte tüm kılavuz sayfaları önceden biçimlendirilebilir.
-
Biçimlendirilmiş kılavuz sayfalarının önbelleğe alınmasına izin vermeyip biçimlendirmenin her kılavuz sayfasını açılışında yapılması zorunlu kılınabilir.
-
Biçimlendirilmiş kılavuz sayfalarının
/var/cache/man
dizininde yerel olarak önbelleğe alınmasına izin verilebilir.
/var/cache/man
yapısının çoklu kılavuz sayfası
hiyerarşilerini fiilen çoklu dil desteği olasılığıyla yansıtması gerekir
Normalde
dizininde görünen biçimlendirilmemiş kılavuz sayfalarından biri
verildiğinde, biçimlendirilmiş kılavuz sayfalarının yerleştirileceği
dizin <yol>
/man/<yerel>
/man<bölüm>
/var/cache/man/
olur. Buradaki <catyolu>
/<yerel>
/cat<bölüm>
<catyolu>
, baştaki
usr
ve/veya sondaki share
yol bileşenleri kaldırarak <yol>
bileşeninden türetilmiştir. (<yerel>
bileşeninin eksik olabileceği unutulmamalıdır.)[40]
/var/cache/man
altına yazılan kılavuz sayfaları,
sonunda kaynak man
hiyerarşisindeki önceden
biçimlendirilmiş uygun dizinlere aktarılabilir veya süresi dolmuş
olabilir. Kaynak man
hiyerarşisindeki aynı şekilde
biçimlendirilmiş man sayfalarına bir süre erişilmezse onların da
süreleri dolmuş olabilir.
Önceden biçimlendirilmiş kılavuz sayfaları sistemle birlikte
salt okunur ortamda (örneğin bir CD-ROM) geliyorsa, kaynak
man
hiyerarşisine kurulmaları gerekir (örn.
/usr/share/man/cat
).
<bölüm>
/var/cache/man
biçimlendirilmiş kılavuz
sayfaları için yazılabilir önbellek olarak ayrılmıştır.
Gerekçe
Bu standardın 1.2 sürümünde, bu hiyerarşi için
/var/catman
belirlenmişti. Yol, biçimlendirilmiş
kılavuz sayfalarının dinamik doğasını daha iyi yansıtmak için
/var/cache
altına taşındı. PostScript, HTML veya
DVI gibi "cat" dışındaki sonradan işlenmiş biçimleri içerecek şekilde
hiyerarşinin geliştirilmesine izin vermek için dizin adı
man
olarak değiştirildi.
5.6. /var/crash
5.6.1. Amaç
Bu dizin, sistem kilitlenme dökümlerini tutar. Standardın yayın tarihi itibariyle, sistem çökme dökümleri Linux altında desteklenmiyordu, ancak FHS ile uyumlu olabilecek diğer sistemler tarafından desteklenebilir.
5.7. /var/games
5.7.1. Amaç
/usr
içindeki oyunlarla ilgili tüm değişken veriler
buraya yerleştirilmelidir. Daha önce /usr
altında
bulunan değişken veriler /var/games
altında
tutulmalı; yardım metni, seviye açıklamaları vb. duruk veriler,
/usr/share/games
gibi başka bir yerde kalmalıdır.
Gerekçe
Bu standardın 1.2 sürümündeki gibi /var/lib
altında bırakmak yerine /var/games
'e artık kendi
hiyerarşisi verilmiştir. Bu kayırma, yedekleme stratejilerinin,
izinlerin ve disk kullanımının yerel olarak denetlenmesine ve ayrıca
konaklar arası paylaşıma izin verilmesine ve
/var/lib
'deki karmaşanın azaltılmasına olanak
tanır. Ek olarak, /var/games
, BSD tarafından
geleneksel olarak kullanılan yoldur.
5.8. /var/lib
5.8.1. Amaç
Bu hiyerarşi, uygulamalar veya sistemle ilgili durum bilgilerini tutar.
Durum bilgisi, uygulamaların çalışırken değiştirdiği ve belirli bir
konağa ait olan verilerdir. Kullanıcıların, bir paketin çalışmasını
yapılandırmak için /var/lib
'deki dosyaları
değiştirmesi hiçbir zaman gerekmemeli ve verileri depolamak için
kullanılan özel dosya hiyerarşisi, normal kullanıcılardan
korunmalıdır.[41]
Durum bilgisi genellikle bir uygulamanın (veya birbiriyle ilişkili bir grup uygulamanın) durumunu, çağrılar arasında ve aynı uygulamanın farklı örnekleri arasında korumak için kullanılır. Durum bilgileri genellikle yeniden başlatmanın ardından geçerli kalmalı, günlük çıktısı olmamalı ve veriler bekletilmemelidir.
Bir uygulama (veya birbiriyle ilişkili uygulamalar grubu), verileri
için bir /var/lib
altındaki bir dizini
kullanmalıdır. Bir alt dizine ihtiyaç duymayan durum dosyalarının
kullanımına ayrılmış /var/lib/misc
adında bir alt
dizin vardır; diğer alt dizinler, yalnızca söz konusu uygulama dağıtımda
yer alıyorsa bulunmalıdır.[42]
/var/lib/
,
dağıtım paketleme desteğinin tamamı için kullanılması gereken konumdur.
Farklı dağıtımlar elbette farklı isimler kullanabilir.
<isim>
5.8.2. Gereksinimler
Aşağıdaki dizinler veya bu dizinlere sembolik bağların
/var/lib
içerisinde bulunması gereklidir:
Dizin | Açıklama |
---|---|
misc
|
Çeşitli durum verileri |
5.8.3. Özel Seçenekler
İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere
sembolik bağların /var/lib
içerisinde
bulunması gerekir:
Dizin | Açıklama |
---|---|
<düzenleyici>
|
Düzenleyici yedekleme ve durum dosyaları (seçimlik) |
<pktaracı>
|
Paketleme destek dosyaları (seçimlik) |
<paket>
|
Paketler ve alt sistemler için durum verileri (seçimlik) |
color
|
Renk yönetim bilgileri (seçimlik) |
hwclock | Donanım saati durum dizini (seçimlik) |
xdm | X ekran yöneticisi değişken verileri (seçimlik) |
5.8.4. /var/lib/
<düzenleyici>
5.8.4.1. Amaç
Bu dizinler, (elvis, jove, nvi gibi) bir düzenleyicinin beklenmedik bir şekilde sonlandırılmasıyla oluşturulan kaydedilmiş dosyaları içerir.
Diğer düzenleyiciler, çökme-kurtarma dosyaları için bir dizin
gerektirmeyebilir, ancak düzenleyici çalışırken diğer bilgileri
depolamak için iyi tanımlanmış bir yer gerekli olabilir. Bu bilgi
/var/lib
altındaki bir alt dizinde saklanmalıdır
(örneğin, GNU Emacs kilit dosyalarını
/var/lib/emacs/lock
içine yerleştirir).
Gelecekteki editörler çökme-kurtarma dosyalarının ve kilit dosyalarının
ötesinde ek durum bilgileri gerektirebilir — bu bilgiler ayrıca
/var/lib/
altına yerleştirilmelidir.
<düzenleyici>
Gerekçe
Önceki Linux sürümleri ve tüm ticari satıcılar, vi ve benzerleri için
/var/preserve
dizinini kullanmaktadır. Ancak, her
düzenleyici bu çökme-kurtarma dosyaları için kendi biçimini kullanır,
dolayısıyla her düzenleyici için ayrı bir dizin gerekir.
Düzenleyiciye özgü kilit dosyaları, genellikle
/var/lock
'ta ve dolayısıyla
/var/lib
altında depolanan aygıt
veya kaynak kilit dosyalarından oldukça farklıdır.
5.8.5. /var/lib/color
5.8.5.1. Amaç
Bu dizin, dinamik olarak yüklenen ICC renk yönetimi dosyalarının ana
dizinidir. Bu dizine,
/usr/share/color
dizinine uygulanan kurallar uygulanır.
5.8.6. /var/lib/hwclock
5.8.6.1. Amaç
Bu dizin /var/lib/hwclock/adjtime
dosyasını içerir.
Gerekçe
FHS 2.1'de, bu dosya /etc/adjtime
idi, fakat
hwclock tarafından güncellendiğinden dosyanın yeri
açıkça yanlıştı.
5.8.7. /var/lib/misc
5.8.7.1. Amaç
Bu dizin, /var/lib
içindeki bir alt dizine
yerleştirilmemiş değişken verileri içerir. İsim alanı çakışmalarını
önlemek için bu dizinde nispeten benzersiz adlar kullanılmaya
çalışılmalıdır.[43]
5.9. /var/lock
5.9.1. Amaç
Kilit dosyaları /var/lock
dizin yapısında saklanmalıdır.
Evvelce /usr/spool/locks
veya
/usr/spool/uucp
'de bulunan seri port aygıt kilit
dosyaları gibi birden fazla uygulama tarafından paylaşılan aygıtlar ve
diğer kaynaklar için kilit dosyaları artık /var/lock
altında saklanmalıdır. Kullanılması gereken adlandırma kuralı
"LCK.." önekinin ardından aygıtın temel adının
gelmesi biçemindedir. Örneğin, /dev/ttyS0
'ı
kilitlemek için "LCK..ttyS0
" dosyası
oluşturulur.[44]
Bu tür kilit dosyalarının içeriği için kullanılan biçim, HDB UUCP kilit dosyası biçimi olmalıdır. HDB biçemi, süreç kimliğini (PID), satır sonu karakteri ile sonlanan on baytlık ASCII ondalık sayı dizgesi olarak saklamaktır. Örneğin, 1230. süreç bir kilit dosyası tutuyorsa, bu dosya on bir karakter içerecektir: boşluk, boşluk, boşluk, boşluk, boşluk, boşluk, bir, iki, üç, sıfır ve satır sonu.
5.10. /var/log
5.10.1. Amaç
Bu dizin çeşitli günlük dosyaları içerir. Günlüklerin çoğunlukla bu dizine veya uygun bir alt dizine yazılmalıdır.
5.10.2. Özel Seçenekler
İlgili alt sistem kuruluysa, aşağıdaki dosyalar veya bu dosyalara
sembolik bağların /var/log
içerisinde
bulunması gereklidir:
Dosya | Açıklama |
---|---|
lastlog
|
her kullanıcının son oturumunun kaydı |
messages
|
syslogd sistem iletileri |
wtmp
|
tüm oturum açma ve kapama kayıtları |
5.11. /var/mail
5.11.1. Amaç
Posta kuyruğu /var/mail
altında erişilebilir olmalı
ve posta kuyruğu dosyaları <kullanıcı>
biçeminde adlandırılmalıdır.[45]
Bu konumdaki kullanıcı posta kutusu dosyaları, standart UNIX posta kutusu biçeminde depolanmalıdır.
Gerekçe
FHS'yi hemen hemen her UNIX dağıtımıyla aynı hizaya getirmek için bu
dizinin /var/spool/mail
olan mantıksal konumu
değiştirildi. Tek bir /var/mail
genellikle birden
çok konak ve birden çok UNIX dağıtımı arasında paylaşıldığından (NFS
kilitleme sorunlarına rağmen) bu değişiklik birlikte çalışabilirlik
için önemlidir.
Posta kuyruğunu fiziksel olarak bu konuma taşımaya gerek olmadığına
dikkat etmek önemlidir. Ancak, /var/mail
'i
kullanmak için uygulamaların ve başlık dosyalarının değiştirilmesi
gerekir.
5.12. /var/opt
5.12.1. Amaç
/opt
içindeki paketlerin değişken verileri /var/opt/
<altdizin>
'e
kurulmalıdır; burada <altdizin>
,
/etc
içindeki başka bir dosyanın yerini aldığı
durumlar dışında, bir eklenti yazılım paketinden gelen duruk verilerin
depolandığı /opt
içindeki alt ağacın adıdır.
/var/opt/
<altdizin>
içeriğinin yapılandırılması ile ilgili herhangi bir düzenleme yoktur.
Gerekçe
/opt
gerekçesine bakınız.
5.13. /var/run
5.13.1. Amaç
Bu dizin, bir zamanlar, önyükleme sonrası sistemi açıklayan sistem
bilgisi verileri için tasarlanmıştı. Bu işlevler artık
/run
'a taşınmıştır; bu dizin, bu belirtimin daha
eski bir sürümünü kullanan sistemler ve yazılımlarla uyumluluk için
mevcuttur.
5.13.2. Gereksinimler
Genel olarak, /run
gereksinimleri
/var/run
için de geçerli olacaktır.
/var/run
'u /run
dizinine
sembolik bağ yapmak geçerlidir.
Sistemi o anda kimlerin kullandığına dair bilgilerin saklandığı
utmp
dosyası bu dizinde yer alır.
Uygulamalar, /var/run/utmp
dışında
/var/run
ve /run
'a doğrudan
erişmemelidir.[46]
5.14. /var/spool
5.14.1. Amaç
/var/spool
, daha sonra işlenmek üzere bekleyen
türden verileri içerir. /var/spool
içindeki veriler
gelecekte (bir uygulama, kullanıcı veya yönetici tarafından) yapılacak
işleri temsil eder; genellikle veriler işlendikten sonra
silinir.[47]
5.14.2. Özel Seçenekler
İlgili alt sistem kurulu ise aşağıdaki dizinler veya bu dizinlere
sembolik bağların /var/spool
içerisinde
bulunması gerekir:
Dizin | Açıklama |
---|---|
lpd
|
Yazıcı kuyruğu dizini (seçimlik) |
mqueue
|
Giden posta kuyruğu (seçimlik) |
news
|
Haber kuyruğu dizini (seçimlik) |
rwho
|
Rwhod dosyaları (seçimlik) |
uucp
|
UUCP için kuyruk dizini (seçimlik) |
5.14.3. /var/spool/lpd
5.14.3.1. Amaç
lpd için kilit dosyası lpd.lock
,
/var/spool/lpd
içine yerleştirilmelidir.
Her yazıcı için kilit dosyasının, söz konusu yazıcının kuyruk dizinine
yerleştirilmesi ve lock
olarak adlandırılması
önerilir.
5.14.3.2. Özel Seçenekler
Dizin | Açıklama |
---|---|
printer
|
Belli bir yazıcı için kuyruk (seçimlik) |
5.14.4. /var/spool/rwho
5.14.4.1. Amaç
Bu dizin, yerel ağdaki diğer sistemler için rwhod bilgilerini tutar.
Gerekçe
Bazı BSD sürümleri bu veriler için /var/rwho
kullanır; diğer sistemlerdeki /var/spool
içindeki
tarihsel konum ve 'kuyruğa alınmış' veri tanımına yaklaşık olarak
uygunluk göz önüne alındığında, bu konumun daha uygun olduğu
görülmüştür.
5.15. /var/tmp
5.15.1. Amaç
/var/tmp
dizini, sistem yeniden başlatmaları
arasında korunan geçici dosyalar veya dizinler gerektiren uygulamalar
için kullanılabilir hale getirilmiştir. Bu nedenle,
/var/tmp
'de saklanan veriler,
/tmp
'deki verilerden daha kalıcıdır.
/var/tmp
dizininde bulunan dosya ve dizinler,
sistem önyüklendiğinde silinmemelidir. /var/tmp
'de
saklanan veriler genel olarak kuruluma özgü bir şekilde silinse de,
silme işlemlerinin /tmp
'den daha seyrek
aralıklarla yapılması önerilir.
5.16. /var/yp
5.16.1. Amaç
Eskiden Sun Yellow Pages (YP) -Sun sarı sayfaları- olarak bilinen Ağ Bilgi Servisi (NIS) için değişken veriler bu dizine yerleştirilmelidir.
Gerekçe
/var/yp
, NIS (YP) verileri için standart
dizindir ve neredeyse yalnızca NIS belgeleri ve sistemlerinde
kullanılır.[48]
[39] Bu standart şu anda TeX Dizin Yapısını (TeX dosyalarının ve dizinlerinin düzenini açıklayan bir belge) içermemektedir, ancak okumak yararlı olabilir. https://git.texlive.info/CTAN/tree/README.structure adresinde bulunabilir.
[40]
Örneğin, /usr/share/man/man1/ls.1
dosyası
/var/cache/man/cat1/ls.1
olarak ve
/usr/X11R6/man/
ise
<yerel>
/man3/XtClass.3x/var/cache/man/X11R6/
olarak biçemlenmiş olabilir.
<yerel>
/cat3/XtClass.3x
[41]
Normal kullanıcılardan korunması gerekmeyen dosya sistemi yapısıyla
ilgili veriler /srv
altında saklanmalıdır.
[42]
Bu standardın bu sürümü ile önceki sürümler arasındaki önemli bir
fark, uygulamaların artık /var/lib
altındaki
bir dizini kullanmasının gerekli olmasıdır.
[43]
Bu hiyerarşi, mevcut BSD sürümlerinde /var/db
'de
saklanan dosyaları içermelidir. Bunlar,
locate.database
ve mountdtab
ile çekirdek simge veritabanlarını içerir.
[44]
Ardından, /dev/ttyS0
'ı kullanmak isteyen herkes
kilit dosyasını okuyabilir ve buna göre hareket edebilir
(/var/lock
içindeki tüm kilitler herkes
tarafından okunabilir olmalıdır).
[45]
/var/mail
'in başka bir dizine sembolik bir bağ
olabileceği unutulmamalıdır.
[46]
Bu, geçici dosyaların nerede bulunduğuyla ilgili karışıklığı
önlemek içindir. Genel olarak, bir uygulama bu dosyalara erişmek
için /var/run
veya /run
'u
kullanmalıdır, ikisini birden değil.
[47]
UUCP kilit dosyaları /var/lock
dizinine
yerleştirilmelidir.
/var/lock
ile ilgili
bölüme bakınız.
[48]
NIS, /var/nis
diye farklı bir dizin kullanan Sun NIS+ ile karıştırılmamalıdır.