আমি আরএইচইএলের কোন সংস্করণ ব্যবহার করছি?


151

শেল থেকে এবং মূল অধিকার ছাড়াই, আমি কীভাবে নির্ধারণ করতে পারি যে আমি রেড হ্যাট এন্টারপ্রাইজ লিনাক্সের সংস্করণটি চালাচ্ছি?

আদর্শভাবে, আমি উভয় প্রধান এবং গৌণ রিলিজ সংস্করণ পেতে চাই, উদাহরণস্বরূপ RHEL 4.0 বা RHEL 5.1 ইত্যাদি etc.

উত্তর:


154

আপনি lsb_releaseবিভিন্ন লিনাক্স বিতরণে কমান্ডটি ব্যবহার করতে পারেন :

lsb_release -i -r 

এটি আপনাকে বিতরণ এবং সংস্করণ জানাবে এবং অ্যাডমিন বা কোনও সফ্টওয়্যার প্যাকেজ দ্বারা সংশোধিত হতে পারে বা নাও হতে পারে এমন ফাইলগুলিতে অ্যাক্সেস করার চেয়ে কিছুটা সঠিক। পাশাপাশি একাধিক ডিস্ট্রোস জুড়ে কাজ করছেন।

RHEL এর জন্য আপনার ব্যবহার করা উচিত:

cat /etc/redhat-release

5
কমান্ডটি আমার
সেন্টোস

@ জিবিজাবানব: এটি আশ্চর্যজনক যে আমি এটি একটি নতুন 5.4 ন্যূনতম ইনস্টলটিতে পরীক্ষা করেছি এবং এটি ঠিক কাজ করেছে ...
জিফার

26
lsb_release -i -r-বাশ: lsb_re দয়া করে আদেশটি পাওয়া যায় নি। তবে, cat /etc/redhat-releaseরেড হ্যাট এন্টারপ্রাইজ লিনাক্স সার্ভার 5.6 (টিকঙ্গা) প্রকাশ করেছে
টম

7
কেবল রেকর্ডের জন্য: আরএইচইএল 6.5 ন্যূনতম ইনস্টলটিতে কাজ করে না। Lsb_release কমান্ডটি কোথাও খুঁজে পাওয়া যায়নি।
sborsky

4
lsb_re कृपया কোনও হালকা ওজনের প্যাকেজ নয়, এটি '/ usr / bin / lp' সরবরাহের জন্য সিইপিএসে টানছে, যা কিছু পিডিএফ অনুবাদ গপকে টানছে, যা কিছু রেন্ডারিং লাইব্রেরিতে টানছে ...
জেনস টিমারম্যান

142

আপনি / ইত্যাদি / রেডহ্যাট-রিলিজের সামগ্রীগুলি দেখতে পারেন যা দেখতে এরকম কিছু দেখবে:

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

প্রকৃত আরএইচইএল সিস্টেমের জন্য সামগ্রীগুলি পৃথক different এই কৌশলটি সেন্টোস, ফেডোরা এবং অন্যান্য সহ সকল রেডহ্যাট ডেরিভেটিভসে কাজ করে।


14
এটি প্রশ্নের সবচেয়ে উপযুক্ত উত্তর।
fsoppelsa

lsb_releaseপ্রথমে চেষ্টা করার চেষ্টা করা হয়েছে, তবে যেহেতু ফাইলগুলির দিকে তাকানো ইনস্টল করা নাও হতে পারে এটি একটি ভাল পরিকল্পনা বি
ছানা

1
@ চিক্স প্রদত্ত যে প্রশ্নটি রেডহ্যাট সিস্টেমগুলির জন্য একটি পরীক্ষা চেয়েছে, এবং lsb_re দয়া করে ডিফল্টরূপে redhat সিস্টেমে ইনস্টল করা হয়নি এবং / ইত্যাদি / redhat- রিলিজ হয়, তবে lsb_re مهرباني স্পষ্টতই চেষ্টা করার প্রথম বিষয় নয়!
বিদায়

@ বাই প্রথম চেষ্টা করা (কমপক্ষে আমার মতে) আপনি সর্বদা চেষ্টা করেন যা প্রথমে সমস্ত বিতরণে সাধারণ হওয়া উচিত, তারপরে কেবল আপনি বিতরণ-নির্দিষ্ট সমাধানগুলিতে স্যুইচ করেন।
ডেনিস নোল্টে

25

আমি / ইত্যাদি / ইস্যু ফাইলটি ব্যবহার করতে পছন্দ করি।

$ cat /etc/issue

আমি অনেকগুলি পরিস্থিতি দেখেছি যেখানে সফ্টওয়্যার সামঞ্জস্যতার প্রয়োজনীয়তা পূরণের জন্য / ইত্যাদি / রেডহ্যাট-রিলিজটি সংশোধন করা হয়েছে (উদাহরণস্বরূপ ডেল বা এইচপির পরিচালনা এজেন্টস)।


1
/etc/issueঅন্যান্য ওএস যেমন ডিবিয়ান ও উবুন্টুতেও কাজ করে এবং লিনাক্স ওএসের সাথে কাজ করে যা লিনাক্স স্ট্যান্ডার্ড বেসের সাথে সামঞ্জস্য করে না এবং লাইটওয়েট ওএসে যেখানে lsb * ইউটিলিটি ইনস্টলড নেই।
স্টেফান লাসিউস্কি 21

5
এটি নির্ভরযোগ্য নয়। স্পষ্টতই অ্যাজেটি/etc/issue দ্বারা পার্স করা বোঝানো হয়েছে , যা সঠিক তথ্য দিয়ে পালানোর ক্রমগুলি প্রতিস্থাপন করে। আপনি যদি এটি ঠিক করেন তবে ফলাফলটি হস্তান্তরিত হতে পারে। ফেডোরায়, একজন পেয়ে যায় , যা আপনাকে কিছু বলে তবে আরএইচইএল 7-তে, কেবল পায় । catFedora release 20 (Heisenbug) Kernel \r on an \m (\l)\S Kernel \r on an \m
ডেভিড টোনহোফার 16:30

নোট করুন যে /etc/issueস্থানীয় প্রশাসক দ্বারা প্রতিস্থাপিত হতে পারে এবং তাই তথ্যের একটি নির্ভরযোগ্য উত্স নয়।
লারস্ক

13

ইনস্টল করা না হওয়ার পরে সবচেয়ে নির্ভরযোগ্য উপায় হ'ল:lsb_release

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

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

ন্যূনতম ইনস্টলগুলিতে, lsb_releaseঅনুপস্থিত।

রেড হ্যাট ক্লোনগুলির সাহায্যে এটি কাজ করার জন্য (ক্রেডিট মন্তব্যগুলিতে যায়):

# 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)'

আপনি যা চান তা পেতে UNIX সরঞ্জামগুলি ব্যবহার করে sed/ cutএবং অন্যান্য পাঠ্য ব্যবহার করুন।


2
এটি কাজ করে বলে মনে হচ্ছে, আরও সাধারণভাবে: rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)' এসএলটি বৈজ্ঞানিক লিনাক্সের জন্য; আপনি যদি অন্য RHEL পুনর্নির্মাণের সঠিক নামটি জানেন তবে নীচে মন্তব্য করতে পারেন। সতর্কতা - ব্যাপকভাবে পরীক্ষা করা হয় না।
ড্যান প্রিটস

1
হ্যাঁ ধন্যবাদ, একটি নোট: আরএইচইএল ওয়ারস্টেশন নিয়ে কাজ করে না।
lzap

একটি নোট - পার্সিং / ইত্যাদি / ফু-রিলিজের তুলনায় এটি অনেক ধীর গতিতে চলে।
ড্যান প্রিটস

1
বা rpm -qa | grep releaseআরও সহজ
ওয়ারেন

6

ধরে নিলে এটি সত্যই একটি রেড হ্যাট রিলিজ (সেন্টোস নয়):

rpm -q redhat-release

অথবা কেবল চালান:

uname -r

এবং আউটপুট মানচিত্র। 2.6.9 কার্নেলগুলি হ'ল RHEL4, 2.6.18 কার্নেলগুলি RHEL5। যদি প্রয়োজন হয় তবে আপনি রেড হ্যাট থেকে নির্দিষ্ট আপডেটের রিলিজের সম্পূর্ণ সংস্করণটি মানচিত্র করতে পারেন (অর্থাত্ 2.6.9-89 হল RHEL5 U4)।


1
rpm -q redhat-releaseশুধু package redhat-release is not installedআমার জন্য ফিরে আসে , এবং uname -rকেবল কর্নেল রিলিজ আমাকে বলে।
মার্ক বুথ

উহু ! এবং এখন সেই সময়টি কেটে গেছে, আরহেল 6 কী হবে? RHEL7? হাম ... এখানে উত্তর হল: access.redhat.com/articles/3078#RHEL7
মিকা

3

আমি পছন্দ করি 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

2

আমি এই /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)

আকর্ষণীয়, দরকারী। দুর্ভাগ্যক্রমে, এই মুহুর্তে সীমিত মান হিসাবে RHEL6 এ উপস্থিত নেই।
ড্যান প্রিটস

1

আপনি যদি কেবল সংস্করণ নম্বরগুলি পেতে চান তবে নীচেরগুলি যতটা সংক্ষিপ্ত এবং সহজ হিসাবে আমি এটি পেতে পারি is

রেল 7.7, রেল .2.২, ডিবিয়ান ৮.৩ এবং উবুন্টু ১৪.০৪ তে পরীক্ষিত:

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

1

এটিতে দেরীতে আগমন, তবে বেশ কয়েকটি দূরবর্তী নোডে আরএইচইএল সংস্করণটি বের করার চেষ্টা করে আমি মজা পেয়েছি। সুতরাং, আপনার কাছে যদি এমন একটি সার্ভারের ব্যাচ থাকে যা একই পাসওয়ার্ড ব্যবহার করে (আমি জানি, আমি জানি ...) এখানে রেডহ্যাট সংস্করণটি যাচাই করার জন্য একটি দ্রুত এবং নোংরা:

একটি প্রত্যাশা স্ক্রিপ্ট তৈরি করুন

vim server-version.sh

স্ক্রিপ্টটি একাধিক দূরবর্তী হোস্টগুলিতে বড় রেডহ্যাট সংস্করণটি পরীক্ষা করার প্রত্যাশা করে

#!/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 ~]#

...

আপনি যদি প্রচুর মেশিনে রিমোট স্টাফ করতে চলেছেন তবে আমি হাতের ঘূর্ণিত ব্যাশ স্ক্রিপ্টগুলির পরিবর্তে উত্তরযোগ্য ব্যবহারের পরামর্শ দিচ্ছি।
নীল মেহেহে

আমি ssh- এর মাধ্যমে রুট লগইন সক্ষম না করার প্রস্তাব দিই
নীল মেহেহে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.