लिनक्स वितरण पर मैं / etc / os-release की उपस्थिति पर क्या भरोसा कर सकता हूँ?


17

मैं लिनक्स वितरण नाम और संस्करण को निर्धारित करने का एक तरीका खोजने की कोशिश कर रहा हूं जो आधुनिक वितरण पर सबसे (या आदर्श रूप से, सभी) काम करेगा। मैंने देखा कि /etc/os-releaseमेरे द्वारा वितरित किए गए वितरण (CentOS, डेबियन) पर मुझे जो जानकारी चाहिए, उसमें वह शामिल है, लेकिन उसकी मौजूदगी पर भरोसा करना कितना सुरक्षित है? इस तरह के कमांड में uname -aवास्तव में समान जानकारी नहीं होती है, और lsb_releaseयह जाहिरा तौर पर न्यूनतम सेंटोस पर मौजूद नहीं है।

क्या यह पता लगाने का एक त्वरित तरीका है कि डिस्ट्रोस किसके साथ आते हैं /etc/os-release? इसके अलावा, /etc/os-releaseको शामिल करने की गारंटी है NAME, VERSIONऔर PRETTY_NAMEखेतों?


1
उबंटू, डेबियन, आर्क फॉर श्योर। वैसे भी मैं इस तरह से डिस्ट्रो का पता लगाना छोड़ दूंगा। पिछली बार मुझे डिस्ट्रोस को अलग करने की आवश्यकता है मैं विशेष पैकेज प्रबंधकों की उपस्थिति की जांच कर रहा था (यानी pacman -> Arch, apt-get & no pacman -> या तो उबंटू या डेबियन)। यह थोड़े मुश्किल काम है और मैं यह भी जानना चाहूंगा कि क्या कोई बेहतर उपाय है।
ddnomad

1
एक आश्चर्य है कि आपको वितरण नाम जानने की आवश्यकता क्यों है। जब आप फ़ीचर डिटेक्शन कर रहे हों, तो यह ब्राउजर डिटेक्शन के मामले की तरह लगता है ।
xDaizu

@xDaizu मैं उनके बारे में विभिन्न जानकारी खींचने के लिए दूरस्थ होस्ट पर स्क्रिप्ट चला रहा हूं।
w128

@ w128 उस मामले में, क्या आप जाँच नहीं कर सकते हैं कि "फीचर" (/ etc / os-release) मौजूद है (और अन्य तरीकों से कमबैक हुआ है तो नहीं) वितरण की स्थैतिक परिवर्तनशील सूची में भरोसा करने के बजाय जहां यह काम करता है?
xDaizu

1
@xDaizu "अन्य विधियों" पर गिरने से अतिरिक्त कार्य शामिल हो सकते हैं जो अनावश्यक साबित हो सकते हैं यदि मैं प्रश्न में प्रस्तावित सरल समाधान की गारंटी दे सकता हूं जो कई प्रमुख डिस्ट्रोस पर मुझे विश्वसनीय होना चाहिए, इसलिए समर्थित डिस्ट्रोस की एक परिवर्तनशील सूची ठीक है इस मामले में।
w128

जवाबों:


14

कोई भी सिस्टम रनिंग सिस्टमड होना चाहिए /etc/os-release, जो कि सिस्टमड के हिस्से के रूप में निर्दिष्ट हो । सिस्टमड के बिना कुछ सिस्टम भी हो सकता है ( उदाहरण के लिए डेबियन 8 जहां सिस्टमड वैकल्पिक है लेकिन /etc/os-releaseसभी मामलों में स्थापित है)।

विनिर्देश के अनुसार, सभी क्षेत्र वैकल्पिक हैं, और कुछ में चूक ("लिनक्स" के लिए NAMEऔर PRETTY_NAME) है।

आपको /etc/os-releaseघोषणा में अधिक पृष्ठभूमि मिलेगी ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.