Farklı dağıtımlar programlar için yapılandırma dosyalarının konumlarını nasıl değiştirir?


14

Birçok Linux programı, yapılandırma dosyalarının konumunun dağıtıma bağlı olduğunu belirtir. Farklı dağıtımların bunu nasıl yaptığını merak ediyordum. Kaynak kodunu gerçekten değiştiriyorlar mı? Bu konumları ayarlayan yapı parametreleri var mı? Bunu aradım ama herhangi bir bilgi bulamıyorum. Orada olduğunu biliyorum, onu bulamıyorum. Bununla ilgili "Linux yolu" nedir?

Yanıtlar:


14

Dağıtıma ve orijinal ('yukarı akış') kaynağına bağlıdır.

Çoğu autoconf ve automake kullanan paketlerde, --sysconfdirparametre kullanılarak yapılandırma dosyalarının aranacağı dizini belirtmek mümkündür . Diğer derleme sistemleri (ör. CMake) benzer seçeneklere sahiptir. Kaynak paket bu derleme sistemlerinden birini kullanıyorsa, paketleyici doğru parametreleri kolayca belirleyebilir ve düzeltme eki gerekmez. Kullanmasalar bile (örneğin, yukarı akış kaynağı evde yetiştirilen bir yapı sistemi kullandığından), yukarı akış kaynağını yamalamak zorunda kalmadan yapılandırma dosyalarını belirli bir konuma taşımak için bazı yapı yapılandırmaları belirtmek yine de mümkündür.

Durum böyle değil, o zaman dağıtımın dosyaları gerçekten 'doğru' konum olarak gördükleri şeyde hareket ettirmek için kaynağa yamalar eklemek zorunda kalacaktır. Çoğu durumda, dağıtım paketleyicileri, kaynağın yukarıdaki anlamda yapılandırılmasına izin verecek bir düzeltme eki yazacak, böylece düzeltme ekini yukarı akış destekleyicilerine gönderebilecekleri ve bakımını / güncellemelerini sürdürmelerine gerek kalmayacaklardır. Bu, yapılandırma dosyası konumları için olduğu gibi, bin/ sbinexecutables (sistem yöneticisinin komutunun ne olduğunu yorumlamak dağıtımlar arasında farklılık gösterir), belgelerin nereye yazılacağı vb. Gibi diğer şeyler için de geçerlidir .

Yan not: Bazı ücretsiz yazılımlara sahipseniz, lütfen paketleyicilerin sizinle konuşmasını kolaylaştırın. Aksi takdirde, bu tür yamaları özellikle iyi bir sebep olmadan korumak zorundayız ...


8

Konumları uyarlayan kaynak kodu ağacına uygulanan yamalar vardır.

Her dağıtımın (kişisel) tercihlere ve / veya tarihsel uygulamalara göre kendi seçebileceği yeterli "standartlar" vardır. Nadiren sadece avantajları olan bir çözüm vardır. Bu bazen sinir bozucu / kafa karıştırıcıdır, ancak bir dağıtımdaki tutarlılık en önemli hedeftir: benzer şeylerin (kurulum / yapılandırma dosyaları gibi) program için nerede olduğunu zaten biliyorsanız, program Y için işlerin nerede olabileceğini daha az dağınıklığa ve daha kolay tahmin etmeye yol açar. X.

Yama uygulaması örneği

Python paketim ruamel.yamlDebian Sid'de mevcut. Eskiden bağımlıydı ruamel.baseve PyPI aracılığıyla yüklenen kullanıcılar hala eski, uyumsuz sürümlere sahip olabilir ruamel.base. setup.py/ PyPI kullanmak gerçek bir paket yönetimi değildir, bu nedenle daha önce bağımlılıklar yoluyla yüklenmiş bir paketi silemezsiniz . PyPI kullanıcıları için sorunu ruamel.baseeski ruamel.basepaketlerle ilişkili sorunları ortadan kaldırarak ve daha ruamel.yamlyeni sürüme bağımlı hale getirerek daha yeni bir sürüm yaparak çözdüm .

Sid için bu bir sorun değildir: eski sürümleri ruamel.baseyüklenmemiştir (veya paket yönetimi yoluyla kaldırılabilir). Bu nedenle , Sid'in bilgi sayfasında üzerinde bağımlılığını kaldıran bir yama uygularlar .ruamel.yamlruamel.yamlruamel.base

Diğer dağıtımlar benzer kurulumlara sahiptir. Örneğin, kaynak RPM dosyası oluşturma özelliklerine bakarsanız (örneğin, RedHat / CentOS / SuSE için), bir paketin orijinal orijinal tarball'ını yapılandırmadan / derlemeden önce uygulanacak bir veya daha fazla yama ile birleştirdiğinizi görürsünüz. .

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.