লিনাক্সের কোন সংস্করণ (বিতরণ ও কার্নেল সংস্করণ, আমি মনে করি) কোন লিনাক্স সিস্টেমে কাজ করে (কমান্ড-লাইন থেকে) চলছে তা নির্ধারণ করার কোনও উপায় আছে কি?
লিনাক্সের কোন সংস্করণ (বিতরণ ও কার্নেল সংস্করণ, আমি মনে করি) কোন লিনাক্স সিস্টেমে কাজ করে (কমান্ড-লাইন থেকে) চলছে তা নির্ধারণ করার কোনও উপায় আছে কি?
উত্তর:
কার্নেলটি সর্বজনীনভাবে সনাক্ত করা হয় uname
:
$ uname -or
2.6.18-128.el5 GNU/Linux
আপনি কোন বিতরণ এবং সংস্করণে আছেন তা নির্ধারণের জন্য সত্যই কোনও ক্রস-বিতরণ উপায় নেই। এটি ধারাবাহিক করার চেষ্টা করা হয়েছে, তবে শেষ পর্যন্ত এটি পরিবর্তিত হয়, দুর্ভাগ্যক্রমে। এলএসবি সরঞ্জামগুলি এই তথ্য সরবরাহ করে তবে কৌতুকজনকভাবে কোথাও ডিফল্টরূপে ইনস্টল করা হয় না। lsb-release
ইনস্টল করা প্যাকেজ সহ উবুন্টু 9.04 সিস্টেমের উদাহরণ :
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
অন্যথায়, নিকটতম বহুল-উপলভ্য পদ্ধতিতে ফাইলগুলি পরীক্ষা করা হচ্ছে। এগুলি বেশিরভাগ সাধারণ প্ল্যাটফর্মে এবং তাদের ডেরিভেটিভগুলিতে (যেমন, রেড হ্যাট এবং সেন্টোস) রয়েছে।/etc/something-release
এখানে কিছু উদাহরণঃ.
উবুন্টু আছে /etc/lsb-release
:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"
তবে দেবিয়ান রয়েছে /etc/debian_version
:
$ cat /etc/debian_version
5.0.2
ফেডোরা, রেড হ্যাট এবং সেন্টোসগুলির মধ্যে রয়েছে:
Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)
Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)
newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
জেন্টু:
$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1
এই মুহুর্তে আমার কাছে SUSE সিস্টেম উপলব্ধ নেই তবে আমি বিশ্বাস করি এটি এটি /etc/SuSE-release
।
স্ল্যাকওয়ারের রয়েছে /etc/slackware-release
এবং / অথবা /etc/slackware-version
।
মান্দ্রিভা আছে /etc/mandriva-release
।
তখন বেশিরভাগ জনপ্রিয় বিতরণের জন্য,
$ cat /etc/*{release,version}
প্রায়শই কাজ করবে। স্ট্রিপ ডাউন এবং বেয়ারবোনস "সার্ভার" ইনস্টলেশনগুলিতে বিতরণ করার জন্য 'রিলিজ' প্যাকেজ নাও থাকতে পারে।
অতিরিক্তভাবে, দুটি তৃতীয় পক্ষের প্রোগ্রাম যা আপনি স্বয়ংক্রিয়ভাবে এই তথ্যটি পেতে ব্যবহার করতে পারেন সেগুলি হ'ল ওহাই এবং ফ্যাক্টর ।
নোট করুন যে অনেক বিতরণে এই জাতীয় তথ্য থাকে /etc/issue
বা থাকে /etc/motd
তবে কিছু সুরক্ষা নীতি এবং সেরা অনুশীলনগুলি নির্দেশ করে যে এই ফাইলগুলিতে অ্যাক্সেস নোটিফিকেশন ব্যানার থাকা উচিত।
সম্পর্কিত: নোডে ইনস্টল করা সফ্টওয়্যার প্যাকেজের সংস্করণটি কীভাবে খুঁজে পাবেন? , পুতুল ।
আপনি চেষ্টা করতে পারেন:
$ cat /etc/issue
এটি সাধারণত (সর্বদা নয়, তবে) আপনাকে বলবে যে আপনি কী বিতরণ ব্যবহার করছেন। /etc/issue
লগইন স্ক্রিনের জন্য ব্যবহৃত ফাইল।
\S[newline]Kernel \r on an \m
কার্নেল: uname -a
cat /etc/os-release
সর্বনিম্ন উবুন্টু, ফেডোরা এবং ওপেনসুএসের জন্য।
কমপক্ষে ১০.৯ (ম্যাভারিক্স) পর্যন্ত ওএস এক্সের জন্য কাজ করে না। ব্যবহার করুন sw_vers পরিবর্তে।
ওপেনসুএসে 13.1.1 অবধি বিড়াল / ইত্যাদি / সুস-রিলিজ ছিল তবে ওএস-রিলিজের পক্ষে অবহেলা করা হয়েছে।
রেডহাট 6.1 এর মধ্যে বিড়াল / ইত্যাদি / রেডহ্যাট-রিলিজ রয়েছে
কার্নেল: uname -r
ডিস্ট্রো: lsb_release -a
এগুলি বেশিরভাগ লিনাক্স সিস্টেমে চলবে
lsb_release -a && uname -r
মডিউলটি দিয়ে পাইথন ব্যবহার করেও এই সমস্যাটি সমাধান করা যেতে পারে :platform
platform()
ফাংশন ব্যবহার :
python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6
উপরের কমান্ডটি যথাসম্ভব দরকারী তথ্য সহ অন্তর্নিহিত প্ল্যাটফর্মটি সনাক্ত করে একটি একক স্ট্রিং প্রদান করে।
বা uname()
ফাংশন ব্যবহার :
python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')
উপরোক্ত কমান্ডের একটি ফেরৎ namedtuple()
ধারণকারী ছয় বৈশিষ্ট্যাবলী: system
, node
, release
, version
, machine
, এবং processor
।
বা dist()
ফাংশন ব্যবহার :
python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')
গত কমান্ড লিনাক্স OS বিতরণ নামের নাম নির্ধারণ করার চেষ্টা করে , কিন্তু এটা করা হয় পাইথন 3.5 থেকে অবচিত এবং করা হবে পাইথন 3.8 সরানো ।