सवाल मैं आरएचईएल का किस संस्करण का उपयोग कर रहा हूं?


खोल से और रूट विशेषाधिकारों के बिना, मैं यह निर्धारित कैसे कर सकता हूं कि Red Hat Enterprise Linux संस्करण मैं क्या चल रहा हूं?

आदर्श रूप में, मैं दोनों प्रमुख और मामूली रिलीज संस्करण प्राप्त करना चाहता हूं, उदाहरण के लिए आरएचईएल 4.0 या आरएचईएल 5.1, आदि।


142
2017-12-01 01:59


मूल




जवाब:


आप इसका उपयोग कर सकते हैं lsb_release विभिन्न लिनक्स वितरण पर आदेश:

lsb_release -i -r 

यह आपको वितरण और संस्करण बताएगा और उन फ़ाइलों तक पहुंचने से थोड़ा अधिक सटीक होगा जो व्यवस्थापक या सॉफ़्टवेयर पैकेज द्वारा संशोधित किए जा सकते हैं या नहीं। साथ ही साथ कई distros में काम कर रहे हैं।

आरएचईएल के लिए, आपको इसका उपयोग करना चाहिए:

cat /etc/redhat-release

144
2017-12-01 06:47



मेरे CentOS 5.4 बॉक्स पर कमांड नहीं मिला :( - gbjbaanb
@gbjbaanb: यह अजीब बात है कि मैंने इसे एक नए 5.4 न्यूनतम इंस्टॉलेशन पर परीक्षण किया और यह ठीक काम किया ... - Zypher
lsb_release -i -r -बैश: lsb_release: आदेश नहीं मिला। हालाँकि, cat /etc/redhat-release Red Hat Enterprise Linux सर्वर रिलीज 5.6 (टिकंगा) - Tom
सिर्फ रिकॉर्ड के लिए: आरएचईएल 6.5 न्यूनतम स्थापित पर काम नहीं करता है। आदेश lsb_release कहीं भी नहीं मिला है। - sborsky
lsb_release एक हल्के पैकेज नहीं है, यह '/ usr / bin / lp' प्रदान करने के लिए CUPS में खींचता है, जो कुछ पीडीएफ अनुवाद गोप में खींचता है, जो कुछ प्रतिपादन पुस्तकालयों में खींचता है ... - Jens Timmerman


आप / etc / redhat-release की सामग्री को देख सकते हैं, जो इस तरह कुछ दिखाई देगा:

$ cat /etc/redhat-release 
CentOS release 5.4 (Final)

वास्तविक आरएचईएल प्रणाली के लिए सामग्री अलग-अलग हैं। यह तकनीक CentOS, फेडोरा और अन्य सहित सभी रेडहाट डेरिवेटिव्स पर काम करती है।


140
2017-12-01 02:13



यह प्रश्न का सबसे उचित उत्तर है। - fsoppelsa
lsb_release कोशिश करने वाली पहली बात है, लेकिन चूंकि फाइलों को देखने में इंस्टॉल नहीं किया जा सकता है, यह एक अच्छी योजना बी है। - chicks
@chicks यह देखते हुए कि सवाल Redhat सिस्टम के लिए एक परीक्षण के लिए पूछता है, और lsb_release डिफ़ॉल्ट रूप से redhat सिस्टम और / etc / redhat-release पर स्थापित नहीं है, तो lsb_release स्पष्ट रूप से कोशिश करने वाली पहली बात नहीं है! - bye
@bye यह कोशिश करने वाली पहली बात है (कम से कम मेरी राय में), आप हमेशा उन चीजों को आजमाएं जो पहले सभी वितरणों पर आम हों, फिर केवल आप वितरण-विशिष्ट समाधानों पर स्विच करें। - Dennis Nolte


मैं / etc / issue फ़ाइल का उपयोग करना पसंद करता हूं।

$ cat /etc/issue

मैंने कई परिस्थितियों को देखा है जहां सॉफ़्टवेयर संगतता आवश्यकताओं (उदाहरण के लिए डेल या एचपी के प्रबंधन एजेंट) को पूरा करने के लिए / etc / redhat-release को संशोधित किया गया है।


24
2017-12-01 05:35



/etc/issue अन्य ओएसई पर भी काम करता है, जैसे डेबियन और उबंटू, और लिनक्स ओएस के साथ काम करता है जो लिनक्स स्टैंडर्ड बेस के अनुरूप नहीं है, और लाइटवेट ओएस जिनके पास lsb * utilities इंस्टॉल नहीं है। - Stefan Lasiewski
यह विश्वसनीय नहीं है। जाहिरा तौर पर /etc/issue इसका मतलब है कि पार्स किया जाना है agetty, जो उचित जानकारी के साथ भागने के दृश्यों को प्रतिस्थापित करता है। अगर आप बस cat यह, परिणाम जबरदस्त हो सकता है। फेडोरा पर, एक हो जाता है Fedora release 20 (Heisenbug) Kernel \r on an \m (\l), जो आपको कुछ बताता है लेकिन आरएचईएल 7 पर, एक बस मिलता है \S Kernel \r on an \m। - David Tonhofer
ध्यान दें कि /etc/issue स्थानीय व्यवस्थापक द्वारा प्रतिस्थापित किया जा सकता है और इसलिए जानकारी का विश्वसनीय स्रोत नहीं है। - larsks


सबसे विश्वसनीय तरीका कब  lsb_release  स्थापित नहीं किया गया है:

# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server

# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6

न्यूनतम इंस्टॉल पर, lsb_release लापता है।

यह Red Hat क्लोन के साथ भी काम करने के लिए (क्रेडिट टिप्पणियों पर जाता है):

# rpm -q --queryformat '%{VERSION}' $(rpm -qa '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)')

या, एक ही कमांड के रूप में (दो "आरपीएम" निष्पादित किए जा रहे हैं):

# rpm -qa --queryformat '%{VERSION}\n' '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'

उपयोग sed/cut और अन्य पाठ जो आप चाहते हैं उसे पाने के लिए यूनिक्स उपकरण में हेरफेर करना।


12
2018-06-05 11:15



यह काम करता है, अधिक सामान्य रूप से: rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)'  एसएल वैज्ञानिक लिनक्स के लिए है; यदि आप अन्य आरएचईएल पुनर्निर्माण के लिए सही नाम जानते हैं तो शायद नीचे टिप्पणी करें। चेतावनी - व्यापक रूप से परीक्षण नहीं किया गया। - Dan Pritts
हाँ धन्यवाद, एक नोट: आरएचईएल वर्स्टेशन के साथ काम नहीं करता है। - lzap
एक नोट - यह पार्सिंग / आदि / foo-release से बहुत धीमी गति से चलता है। - Dan Pritts
या rpm -qa | grep release भी आसान है - warren


मान लीजिए कि यह वास्तव में एक Red Hat रिलीज है (Centos नहीं):

rpm -q redhat-release

या बस चलाएं:

uname -r

और आउटपुट मैप करें। 2.6.9 कर्नल आरएचईएल 4 हैं, 2.6.18 कर्नल आरएचईएल 5 हैं। यदि आवश्यक हो, तो आप पूर्ण संस्करण को Red Hat से विशिष्ट अद्यतन रिलीज़ में मैप कर सकते हैं (यानी 2.6.9-89 RHEL5 U4 है)।


5
2017-12-01 13:36



rpm -q redhat-release बस वापस आती है package redhat-release is not installed मेरे लिए, और uname -r बस मुझे कर्नेल रिलीज बताता है। - Mark Booth
ओह! और अब वह समय बीत चुका है, आरएचईएल 6 क्या होगा? आरएचईएल 7? हम ... यहां जवाब हैं: access.redhat.com/articles/3078#RHEL7 - mika


मुझे काफी पसंद है /etc/os-release फ़ाइल, जो रिलीज आरपीएम में है:

# yum whatprovides /etc/os-release 
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
 * base: dl.za.jsdaav.net
 * extras: dl.za.jsdaav.net
 * updates: dl.za.jsdaav.net
centos-release-7-4.1708.el7.centos.x86_64 : CentOS Linux release file
Repo        : base
Matched from:
Filename    : /etc/os-release

centos-release-7-4.1708.el7.centos.x86_64 : CentOS Linux release file
Repo        : @anaconda
Matched from:
Filename    : /etc/os-release

इस फ़ाइल को स्क्रिप्ट में सोर्स किया जा सकता है, जैसे:

$ source /etc/os-release
$ echo $NAME
CentOS Linux
$ echo $VERSION
7 (Core)

1
2018-01-23 20:28



दिलचस्प, उपयोगी। दुर्भाग्य से, इस समय सीमित मूल्य के रूप में RHEL6 पर मौजूद नहीं है। - Dan Pritts


यदि आप केवल संस्करण संख्याएं प्राप्त करना चाहते हैं तो निम्न इसे जितना छोटा और सरल हो सकता है उतना ही मैं इसे प्राप्त कर सकता हूं।

राहेल 6.7, राहेल 7.2, डेबियन 8.3 और उबंटू 14.04 पर परीक्षण किया गया:

lsb_release -s -r | cut -d '.' -f 1

एक व्यावहारिक उदाहरण के लिए, कहें कि आप वितरण प्रमुख और मामूली संस्करण के लिए परीक्षण करना चाहते हैं और उस पर आधारित चीजें करते हैं:

#!/bin/bash

major=$(lsb_release -s -r | cut -d '.' -f 1)
minor=$(lsb_release -s -r | cut -d '.' -f 2)

if (( "$major" >= 7 ))
then
  echo "Do stuff, OS major version is $major"
  echo "OS minor version is $minor"
else
  echo "Do other things"
  echo "Your version is $major.$minor"
fi

0
2018-04-06 00:44





इसके लिए देर से आगमन, लेकिन मुझे कई रिमोट नोड्स पर आरएचईएल संस्करण को समझने का प्रयास करने में मजा आया। इसलिए, यदि आपके पास सर्वर का बैच है जो एक ही पासवर्ड का उपयोग करता है (मुझे पता है, मुझे पता है ...) रेडहाट संस्करण की जांच करने के लिए यहां एक त्वरित और गंदा है:

एक उम्मीद स्क्रिप्ट बनाएँ

vim server-version.sh

एकाधिक रिमोट होस्ट पर प्रमुख RedHat संस्करण की जांच करने के लिए स्क्रिप्ट की अपेक्षा करें

#!/usr/bin/expect
log_user 0
spawn ssh -l root [lindex $argv 0]
expect "assword:"
send "sUp3rS3cr3tP4ssW0rd^\r"
expect "# "
log_user 1
send "cat /etc/redhat-release\r"
expect "*#"
log_user 0
send "exit\n"

अपने सभी नोड्स के लिए स्क्रिप्ट चलाएं

[root@home ~]#
for server in server1 server2 server3 server4 server5; do echo -e "$server: \c"; /root/server-version.sh $server; echo; echo; done;

उत्पादन

server1: cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
[root@server1 ~]#

server2: cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)
[root@server2 ~]#

...

0
2017-10-05 12:31



यदि आप कई मशीनों पर रिमोट स्टफ करने जा रहे हैं, तो मैं दृढ़ता से हाथ से लुढ़का हुआ बैश स्क्रिप्ट के बजाय Ansible का उपयोग करने की सलाह देता हूं। - Neil Mayhew
मैं अनुशंसा करता हूं कि एसएसएच पर रूट लॉगिन सक्षम न करें - Neil Mayhew


मैं पसंद करता हूं hostnamectl:

$ hostnamectl
   Static hostname: xxxxxx.xxx.xxx
         Icon name: computer-server
           Chassis: server
        Machine ID: 3e3038756eaf4c5c954ec3d24f35b13f
           Boot ID: 958452e0088b4191a4ea676ebc90403b
  Operating System: Red Hat Enterprise Linux Server 7.5 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.5:GA:server
            Kernel: Linux 3.10.0-862.3.3.el7.x86_64
      Architecture: x86-64

0
2017-10-04 07:14