apt-get üzerinden kurulum yaparken varsayılan postgresql konumu


15

14.04'e postgresql yüklediğinizde, ana sunucu programı postgres'i şu adrese yapıştırır:

/usr/lib/postgresql/9.3/bin/postgres

tüm veritabanı kümelerinin depolanacağı veri dizini:

/var/lib/postgresql/9.3/main

ve yapılandırma dosyasını şu adreste bulabilirsiniz:

/etc/postgresql/9.3/main/postgresql.conf

Şimdi postgresql.conf ve diğer yapılandırma dosyalarının neden /etc/postgresql/9.3/main dosyasında depolandığını anlayabiliyorum. Sonuçta, / etc, yapılandırma dosyalarının linux sisteminde depolandığı yerdir.

Ancak, neden veritabanı depolama alanını / var / lib içine yerleştirmelisiniz? Anlayamadım / var, çünkü bu statik olmayan veri ve veritabanları için yer olmayan bir yerdir. Ama neden özellikle / var / lib?

Ayrıca, / bin önyükleme için gerekli programlar için inanıyorum. / usr / bin dağıtıma dahil edilen programlar içindir. ve / usr / local / bin dağıtımda bulunmayan ancak sistem genelinde kullanılabilen programlar için olmalıdır. Ve böylece postgresql sistem çapında kullanım için tasarlandığından, / usr / local / bin içinde mevcut olmalıdır. Yine de, / usr / lib içine yerleştirdiler, neden bilmiyorum.

Bu soruyu neden soruyorum? Çünkü düzen ve yapı olmadan, her gün kullandığınız programların yerini hatırlamak zordur.

Yanıtlar:


11

Dosya Sistemi Hiyerarşi Standardında, / var / lib / ifadesi (italik olarak en önemli bölüm) olarak belirtilir:

5.8.1 Amaç

Bu hiyerarşi, bir uygulama veya sistemle ilgili durum bilgilerini içerir. Durum bilgisi, programların çalışırken değiştirdikleri ve belirli bir ana bilgisayarla ilgili verilerdir.Kullanıcıların bir paketin çalışmasını yapılandırmak için / var / lib içindeki dosyaları asla değiştirmeleri gerekmez.

Durum bilgisi genellikle çağrılar arasında ve aynı uygulamanın farklı örnekleri arasında bir uygulamanın (veya birbiriyle ilişkili uygulamalar grubunun) durumunu korumak için kullanılır. Durum bilgileri genellikle yeniden başlatma sonrasında geçerli kalmalı, çıktı günlüğe kaydedilmemeli ve veri biriktirilmemelidir.

Bir uygulama (veya birbiriyle ilişkili uygulamalar grubu) verileri için / var / lib alt dizinini kullanmalıdır. Bir alt dizine ihtiyaç duymayan durum dosyaları için tasarlanmış gerekli bir alt dizin vardır / var / lib / misc; diğer alt dizinler sadece söz konusu uygulama dağıtıma dahil edilmişse mevcut olmalıdır.

/ var / lib /, tüm dağıtım paketleme desteği için kullanılması gereken konumdur. Farklı dağıtımlar elbette farklı isimler kullanabilir.

Kısaca: / var / lib /, yerel olarak kullanılan veriler içindir.

Bu nedenle, bir veritabanının verilerini / var / lib / {mysql | postgress} / dizinine koymak mükemmel bir anlam ifade eder, ancak ... FHS çoğunlukla dağıtımlar tarafından kullanılmak üzere oluşturulmuş bir standarttır . Bir kullanıcı olarak verilerinizi istediğiniz yere yerleştirmekte özgürsünüz ve bu çoğunlukla bir fikir meselesidir.


"Yerel" kelimesini yanlış anlıyorsunuz. / usr / local / bin / sistem yazılımı için değil, kendi yazılımınız içindir (temelde "local" olan herhangi bir şeye asla sistem tarafından dokunulmamalıdır. FHS tarafından açıklandığı gibi:

/ Usr / local /

4.9.1 Amaç

/ Usr / local hiyerarşisi, yazılımı yerel olarak yüklerken sistem yöneticisi tarafından kullanılmak içindir. Sistem yazılımı güncellendiğinde üzerine yazılması güvenli olmalıdır. Bir grup ana bilgisayar arasında paylaşılabilen ancak / usr dosyasında bulunmayan programlar ve veriler için kullanılabilir. Yerel olarak yüklenen yazılım / usr içindeki yazılımı değiştirmek veya yükseltmek için kurulmadıkça / usr yerine / usr / local içine yerleştirilmelidir.

Sistem yazılımından yüklenen bir yürütülebilir dosya hiçbir zaman yerel bir şeye gitmemelidir.


Şimdi / usr / lib / için .

4.7.1 Amaç

/ usr / lib, doğrudan kullanıcılar veya kabuk komut dosyaları tarafından yürütülmesi amaçlanmayan nesne dosyalarını, kitaplıkları ve iç ikili dosyaları içerir. Uygulamalar / usr / lib altında tek bir alt dizin kullanabilir. Bir uygulama bir alt dizin kullanıyorsa, yalnızca uygulama tarafından kullanılan mimariye bağımlı tüm veriler bu alt dizine yerleştirilmelidir.

postgressql muhtemelen bir daemon açılışta başladı? Eğer öyleyse buraya koymak mantıklı. Komutu kendiniz kullanmanız değil, bir hizmet başlatmanız gerekiyor. / Usr / lib / içindeki dosyalar kendi kullanıcılarına ve gruplarına ve / veya / var / lib erişimini kısıtlayan bir arka plan programına sahip olma eğilimindedir (örneğin yalnızca mysqld / var / lib / mysql / dizinine erişebilir; bu aynı PostGresSql)

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.