/ Etc / os-release'in varlığına hangi Linux dağıtımlarına güvenebilirim?


17

Çoğu (veya ideal olarak, tüm) modern dağıtımlar üzerinde çalışacak Linux dağıtım adı ve sürümünü belirlemek için bir yol bulmaya çalışıyorum. /etc/os-releaseDenediğim dağıtımlarda ihtiyacım olan bilgileri (CentOS, Debian) içerdiğini fark ettim , ancak varlığına güvenmek ne kadar güvenli? Gibi komutlar uname -agerçekten aynı bilgileri içermez ve lsb_releasegörünüşe göre örneğin minimum CentOS'ta mevcut değildir.

Tam olarak hangi dağıtımların geldiğini öğrenmenin hızlı bir yolu var mı /etc/os-release? Üstelik edilir /etc/os-releaseiçerecek şekilde garanti NAME, VERSIONve PRETTY_NAMEalanlar?


1
Ubuntu, Debian, Kesinlikle Arch. Her neyse, dağıtımın bu şekilde tespit edilmesini ihmal ederim. Son dağıtımları ayırt etmem gerektiğinde, belirli paket yöneticilerinin (yani, pacman -> Arch, apt-get & no pacman -> Ubuntu veya Debian) varlığını kontrol ediyordum. Bu biraz zor bir iş ve daha iyi bir çözüm olup olmadığını da bilmek istiyorum.
ddnomad

1
Biri neden dağıtım adını bilmeniz gerektiğini merak ediyor. Özellik algılaması yapmanız gerektiğinde Tarayıcı algılaması durumu gibi görünür .
xDaizu

@xDaizu Onlar hakkında çeşitli bilgiler almak için uzak ana bilgisayarlarda komut dosyaları çalıştırıyorum.
w128

@ w128 bu durumda, çalıştığı statik değişken bir dağıtım listesine güvenmek yerine "özellik" (/ etc / os-release) olup olmadığını (ve eğer değilse diğer yöntemlere geri dönüşü) kontrol edemez misiniz?
xDaizu

1
@xDaizu, "diğer yöntemlere" geri dönmek, desteklemem gereken birkaç önemli dağıtımda güvenilir olmasını sağlamak için soruda önerilen basit çözümün güvenilir olmasını garanti edersem gereksiz olabilecek ekstra işleri içerebilir, bu nedenle desteklenen dağıtımların değişken bir listesi iyidir bu durumda.
w128

Yanıtlar:


14

Herhangi Sistem çalışırken systemd olmalıdır /etc/os-release, hangi belirtilen systemd parçası olarak kullanılabilir. Systemd olmayan bazı sistemler de buna sahip olabilir ( örn. Systemd'nin isteğe bağlı olduğu, ancak /etc/os-releaseher durumda kurulu olduğu Debian 8 ).

Spesifikasyona göre, tüm alanlar isteğe bağlıdır ve bazılarının varsayılan değerleri vardır ( NAMEve için "Linux" PRETTY_NAME).

/etc/os-releaseDuyurunuzda daha fazla arka plan bulacaksı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.