ইয়াম: আমি কীভাবে $ রিলিভার, $ বেসার্ক এবং UM YUM0 এর মত চলকগুলি দেখতে পারি?


49

আমি একটি yum সংগ্রহস্থল স্থাপন করছি, এবং yum.conf ফাইলে কিছু URL টি ডিবাগ করা দরকার। আমার জানা দরকার যে বৈজ্ঞানিক লিনাক্স কেন এই ইউআরএলটি ধরার চেষ্টা করছে, যখন আমি এটির অন্য একটি ইউআরএল ধরে নেওয়ার প্রত্যাশা করছিলাম:

# yum install package 
http://192.168.1.100/pub/scientific/6.1/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: sl. Please verify its path and try again

Yum.conf (5) র manpage এই ভেরিয়েবল সম্পর্কে কিছু তথ্য দেয়:

ভেরিয়েবল

Yum এর কনফিগারেশন ফাইলগুলির রক্ষণাবেক্ষণ সহজ করতে আপনি বেশ কয়েকটি ভেরিয়েবল ব্যবহার করতে পারেন। তারা নাম, বেসুরল এবং কমান্ড সহ কয়েকটি বিকল্পের মানগুলিতে উপলব্ধ।

$ রিলিভার এটি ডিস্ট্রোভারপেকগিতে তালিকাভুক্ত প্যাকেজের সংস্করণের মানের সাথে প্রতিস্থাপিত হবে। এটি 'redhat-release' প্যাকেজের সংস্করণে ডিফল্ট।

$ খিলান এটি পাইথনের os.uname () [4] দ্বারা তালিকাভুক্ত হিসাবে আপনার স্থাপত্যের সাথে প্রতিস্থাপন করা হবে।

$ বেসার্ক এটি আপনার বেস আর্কিটেকচারের সাথে প্রতিস্থাপন করা হবে। উদাহরণস্বরূপ, যদি আপনার $ খিলানটি i686 হয় তবে আপনার $ বেসআরচ i386 হবে।

$ YUM0- $ YUM9 এটিকে একই নামের শেল এনভায়রনমেন্ট ভেরিয়েবলের মান দিয়ে প্রতিস্থাপন করা হবে। শেল এনভায়রনমেন্ট ভেরিয়েবলের অস্তিত্ব না থাকলে কনফিগারেশন ফাইল ভেরিয়েবল প্রতিস্থাপন করা হবে না।

yumকমান্ডলাইন ইউটিলিটি ব্যবহার করে এই পরিবর্তনগুলি দেখার কোনও উপায় আছে কি ? আমি 'রেডহ্যাট-রিলিজ' প্যাকেজের সংস্করণটি অনুসন্ধান না করা বা পাইথনে ম্যানুয়ালি os.uname () [4] এর মানটি পেতে পছন্দ করব।


'রেডহাট-রিলিজের সংস্করণ খোঁজা' তুচ্ছ। cat /etc/redhat-release প্রকৃতপক্ষে, এর cat /etc/system-releaseপরিবর্তে ব্যবহার করুন, যেহেতু এটি / etc / redhat-release, / etc / Centos-release, / etc / oel-release, / etc / <বৈজ্ঞানিক লিনাক্স যেভাবেই ব্যবহার করবে> হিসাবে উপযুক্ত to
জালিয়রস

3
/etc/redhat-release$releaseverপরিবর্তনশীল হিসাবে একই জিনিস নয় । এখানে প্রশ্নটি এই ভেরিয়েবলের জায়গায় ইয়ামের বিকল্প কী তা নির্ধারণ করতে হবে? প্রোগ্রামিয়ালি কি হচ্ছে?
স্টিফান লাসিউইস্কি

1
'রেডহাট-রিলিজের সংস্করণ খোঁজা' এছাড়াও 'বিড়াল / ইত্যাদি / রেডহ্যাট-রিলিজ' এর মতো নয়। প্রাক্তনটি একটি সংস্করণ জিজ্ঞাসা করে, যদিও পরেরটি একটি সম্পূর্ণ অবিশ্বাস্য এবং অসীম পরিবর্তনযোগ্য ফাইল দেখায় যা কখনও বিশ্বাসযোগ্য নয়। rpm -qf /etc/issueক্যানোনিকাল পদ্ধতি, এবং হতো মধ্যে lsb ব্যতীত SUSE FSStnd বৈঠকে নাড়া দেয়নি পদ্ধতি। YARLY।
ব্যবহারকারী 2066657

উত্তর:


71

আপনি যদি ইনস্টল করেন yum-utils, এটি আপনাকে দেয় yum-debug-dumpযা কোন ফাইলগুলিতে সেই পরিবর্তনগুলি এবং আরও ডিবাগিং তথ্য লিখবে। স্ট্যাডআউটে লেখার কোনও বিকল্প নেই, এটি সর্বদা কোনও ফাইলে লিখবে যা সত্যই সহায়ক নয়।

এটি স্পষ্টতই দুর্দান্ত সমাধান নয় তাই এখানে একটি অজগর ওয়ান-লাইনার আপনি অনুলিপি করে পেস্ট করতে পারেন যা স্ট্রাউডে এই পরিবর্তনগুলি মুদ্রণ করবে।

python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'

এটি CentOS 5 এবং 6 এ কাজ করে, তবে 4 নয় y ইয়াম পাইথনে লেখা আছে, তাই ইয়াম পাইথন মডিউলটি ইতিমধ্যে আপনার সার্ভারে রয়েছে, কোনও এক্সট্রা ইনস্টল করার দরকার নেই।

এটি সেন্টস 5 এ দেখতে কেমন লাগে তা এখানে:

[root@somebox]# python -c 'import yum, pprint; yb = yum.YumBase(); pprint.pprint(yb.conf.yumvar, width=1)'
{'arch': 'ia32e',
 'basearch': 'x86_64',
 'releasever': '5',
 'yum0': '200',
 'yum5': 'foo'}
[root@somebox]# 

2
yum-debug-dumpআমার যা প্রয়োজন তা মনে হচ্ছে এই %%%%YUM INFOবিভাগের অধীনে তথ্যগুলি রয়েছে বলে মনে হচ্ছে । আমি জিনিসগুলিকে $YUM0-$YUM9প্রদর্শিত হওয়ার মতো করে দেবে বলে মনে হচ্ছে না , তবে আমি আর কোনওভাবেই এই পরিবর্তনকগুলি ব্যবহার করি না।
স্টিফান লাসিউইস্কি

2
ব্যাশ শেলের মধ্যে $ রিলিজের একটি পরিষ্কার প্রদর্শন পেতে , এটি ব্যবহার করুন:/usr/bin/python -c 'import yum;yb=yum.YumBase();yb.doConfigSetup(init_plugins=False);print yb.conf.yumvar["releasever"]'
রক্যালাইট

এটি কেবল পাইথনের সিস্টেম সংস্করণে কাজ করে - পাইথনের অতিরিক্ত "Alt-ইনস্টল" সংস্করণের জন্য আপনি কীভাবে এটি কাজ করবেন?
সি ক্রস

রিলিভারটি আসলে যদি স্ট্রিংটি রিলিজকারী হয় তবে আপনি কী করবেন ....
অলস কোডার

10

এগুলির সবগুলি পেতে আপনাকে এমএমকিনস্ট পোস্টের মতো কোড ব্যবহার করতে হবে , তবে আপনি যদি পরীক্ষা $releaseverকরতে চান তবে আপনি yum version nogroupsRHEL-6 এ চালাতে পারেন ।

RHEL -6 এ, না বলে অন্যের জিনিস, শুধু আপনার নিজের তৈরি করা /etc/yum/vars


তুমি কি বিস্তারিত বলতে পারো? সৃষ্টি কী /etc/yum/varsসম্পাদন করে? এছাড়াও, আপনি কি জানবেন যে এটি RHEL5 থেকে RHEL6 এ পরিবর্তিত হয়েছে?
স্টিফান লাসিউইস্কি

1
আপনার কোনও সমস্যা ছাড়াই RHEL-5 এবং RHEL-6 এ কাজ করে এমন কোড লিখতে সক্ষম হওয়া উচিত। সংস্করণ কমান্ডটি RHEL-5 এটিমে নেই। আমি / etc / yum / vars (কেবলমাত্র RHEL-6) বলতে চাইছি তা হ'ল আপনি কেবল একটি / etc / yum / vars / foorelease তৈরি করতে পারেন ... এতে আপনার নিজস্ব প্রকাশের ডেটা রয়েছে, এমনকি কেবল সিস্টেম রিলিজভারকে ওভাররাইড করে / ইত্যাদি / ইয়ম / ভার্স / রিলিজভারে লিখে লিখে।
জেমস অ্যান্টিল

এর সম্পর্কে আরও তথ্য অ্যাক্সেস/etc/yum/vars . redhat.com/ জ্ঞান
স্টেফান লাসিউস্কি

10

ফেডোরার জন্য ডিএনএফ-এর সমতুল্য উত্তরের সন্ধানের জন্য, এখানে যেমন আমি এখানে পাইথন ওয়ান-লাইন খুঁজে পেয়েছি:

python3 -c 'import dnf, pprint; db = dnf.dnf.Base(); pprint.pprint(db.conf.substitutions,width=1)'

ফেডোরা 24 এ দেখে মনে হচ্ছে:

{'arch': 'x86_64',
 'basearch': 'x86_64',
 'releasever': '24'}

1
অনুসন্ধান থেকে এটি পাওয়া গেছে yum variables repo names। ডিএনএফের সাথে ইয়ামের প্রতিস্থাপনের ফলে এটি আপাতত প্রশ্নের উত্তর দেয়। মহান কাজ!
বিজিস্ট্যাক

4

এবং কীভাবে $ রিলিভারটি বরাদ্দ করা হয় তা খনন করে:

ফাংশন _getsysver RPM ডাটাবেস কোয়েরি মত:

rpm -q --provides $(rpm -q --whatprovides "system-release(releasever)") | grep "system-release(releasever)" | cut -d ' ' -f 3

"সিস্টেম-রিলিজ (রিলিজভার)" মানটি এখানে সংজ্ঞায়িত করা হয়েছে , এবং এটি yum.conf এ distroverpkg দ্বারা ওভাররাইড করা যেতে পারে

যদি কোয়েরিতে কোনও মান না ফেরায়, রিলিজভারটি '$ রিলিভার' হিসাবে সেট করা থাকে (উদাহরণস্বরূপ আপনি যদি ডিস্ট্রোভারপকিগ = সেন্টো-রিলিজ সেট করেন তবে আরপিএম redhat-release-server ইনস্টল করেছেন)


0

পরিবর্তনশীল প্রতিস্থাপনের ফলাফলগুলি দেখার আরও একটি উপায় হ'ল এরকম কিছু করা:

yum-config-manager -c /etc/reposyncb.conf  | grep -i spacewalk

স্থানীয় রেপো তৈরির জন্য কোন স্পেসওয়াক ক্লায়েন্টটি নির্বাচিত হয়েছে তা নিয়ন্ত্রণ করতে আমি ইয়াম ভেরিয়েবলগুলির সাথে টিঙ্কারিং করছিলাম এবং ভেরিয়েবলগুলি কীভাবে ব্যাখ্যা করা হচ্ছে তা দেখতে এটি দরকারী।


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