ইয়াম বজায় রাখতে এবং এর পারফরম্যান্স বুস্ট করার জন্য কীভাবে yum-utils ইনস্টল করবেন এবং ব্যবহার করবেন


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

সেই কারণে, এই গাইডে আমরা আপনাকে ইয়ম-ইউসগুলির সাথে পরিচয় করিয়ে দেব, ইউটিমের সাথে সংহত হওয়া ইউটিলিটির একটি সংগ্রহ যা এর মূল বৈশিষ্ট্যগুলি বিভিন্ন উপায়ে প্রসারিত করে, যাতে এটি আরও শক্তিশালী এবং সহজতর হয়।

আরএইচইএল/সেন্টস-এ yum-utils ইনস্টল করা

ইয়াম-ইউসগুলি বেস রেপোতে অন্তর্ভুক্ত করা হয়েছে (যা ডিফল্টরূপে সক্ষম করা হয়েছে) সুতরাং এটি কোনও ফেডোরা-ভিত্তিক বিতরণে ইনস্টল করা করণ করা যেমন সহজ:

# yum update && yum install yum-utils

Yum-utils দ্বারা সরবরাহিত সমস্ত ইউটিলিটিগুলি মূল প্যাকেজের সাথে স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে গেছে, যা আমরা পরবর্তী বিভাগে বর্ণনা করব।

Yum-utils প্যাকেজ দ্বারা সরবরাহিত ইউটিলিটিগুলি অন্বেষণ করুন

Yum-utils দ্বারা সরবরাহিত সরঞ্জামগুলি তার ম্যান পৃষ্ঠাতে তালিকাভুক্ত করা হয়েছে:

# man yum-utils

এইগুলি 10 টি ইউম ইউটিলিটি এখানে রয়েছে যা আমরা ভেবেছিলাম যে আপনার আগ্রহী হবেন:

ডিবাগইনফো-ইনস্টল <প্যাকেজ নাম> একটি ক্র্যাশ হওয়ার ক্ষেত্রে বা কোনও নির্দিষ্ট প্যাকেজ ব্যবহার করে এমন অ্যাপ্লিকেশন বিকাশ করার সময় <প্যাকেজের নাম> ডিবাগ করার জন্য প্রয়োজনীয় ডিবাগিনফো প্যাকেজগুলি (এবং তাদের নির্ভরতা) ইনস্টল করে।

একটি প্যাকেজ (বা অন্য কোনও এক্সিকিউটেবল) ডিবাগ করার জন্য আমাদের জিডিবি (জিএনইউ ডিবাগার) ইনস্টল করতে হবে এবং এটি ডিবাগিং মোডে একটি প্রোগ্রাম শুরু করতে ব্যবহার করতে হবে।

উদাহরণ স্বরূপ:

# gdb $(which postfix)

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

অন্যান্য উপলব্ধ ক্রিয়া এবং তাদের প্রত্যাশিত ফলাফল ম্যান জিডিবিতে তালিকাভুক্ত রয়েছে।

নিম্নোক্ত কমান্ডটি বর্তমানে ইনস্টল হওয়া প্যাকেজ <প্যাকেজ 1> <প্যাকেজ 2> <প্যাকেজ এন> থেকে ইনস্টল করা হয়েছে কোনটি সংগ্রহস্থল দেখায়:

# find-repos-of-install httpd postfix dovecot

যদি তর্ক ছাড়াই চালানো হয় তবে সন্ধান করুন-ইনস্টল ইনস্টল বর্তমানে ইনস্টল করা প্যাকেজগুলির পুরো তালিকাটি ফিরিয়ে দেবে।

প্যাকেজ-ক্লিনআপ প্যাকেজ ক্লিনআপ, ডুপ্লিকেটস, অনাথ প্যাকেজগুলি (বর্তমানে কনফিগার করা সংগ্রহস্থল ছাড়া অন্য উত্স থেকে ইনস্টল করা প্রোগ্রাম) এবং অন্যান্য নির্ভরশীলতার অসঙ্গতিগুলি সহ, নিম্নলিখিত উদাহরণে প্রদর্শিত পুরানো কার্নেলগুলি অপসারণ সহ:

# package-cleanup --orphans
# package-cleanup --oldkernels

আপনার শেষ কার্নেলটি আপনার কার্নেলকে ক্ষতিগ্রস্থ করার বিষয়ে চিন্তা করতে হবে না। এটি কেবল পুরানো কার্নেল প্যাকেজগুলিকে প্রভাবিত করবে (বর্তমানে চলমানের চেয়ে পুরানো সংস্করণগুলি) যেগুলি আর প্রয়োজন নেই।

কনফিগার করা সংগ্রহস্থল থেকে উপলব্ধ সমস্ত প্যাকেজের জন্য রেপো-গ্রাফ ডট ফর্ম্যাটে একটি সম্পূর্ণ প্যাকেজ নির্ভরতা তালিকা প্রদান করে। বিকল্পভাবে, রেপো গ্রাফ > --repoid= বিকল্পের সাথে ব্যবহার করা হলে একই তথ্য সংগ্রহস্থলের মাধ্যমে ফিরে আসতে পারে।

উদাহরণস্বরূপ, আসুন আপডেটের সংগ্রহস্থলের প্রতিটি প্যাকেজের জন্য নির্ভরতা দেখতে দিন:

# repo-graph --repoid=updates | less

উপরের কমান্ডে আমরা রেপো-গ্রাফের আউটপুট কম ভিজ্যুয়ালাইজেশনের জন্য কম পাঠিয়ে দিচ্ছি, তবে পরবর্তী সময়ে পরিদর্শন করার জন্য আপনি বিকল্পভাবে এটি স্থানীয় ফাইলে পুনর্নির্দেশ করতে পারেন:

# repo-graph --repoid=updates > updates-dependencies.txt

উভয় ক্ষেত্রেই, আমরা দেখতে পাচ্ছি যে iputils প্যাকেজটি সিস্টেমড এবং ওপেনসেল-লিবের উপর নির্ভর করে।

পুনরুদ্ধার কনফিগার করা সংগ্রহস্থলগুলির মেটাডেটা পড়ে, তাদের মধ্যে অন্তর্ভুক্ত প্যাকেজগুলির নির্ভরতা পরীক্ষা করে এবং প্রতিটি প্যাকেজের জন্য অমীমাংসিত নির্ভরতার তালিকা প্রদর্শন করে:

# repoclosure

repomanage rpm প্যাকেজ সহ একটি ডিরেক্টরি জিজ্ঞাসা করে এবং ডিরেক্টরিতে নতুন বা পুরানো প্যাকেজগুলির একটি তালিকা প্রদান করে। আপনি যদি বিভিন্ন প্রোগ্রামের বেশ কয়েকটি .rpm প্যাকেজ সঞ্চয় করেন এমন কোনও ডিরেক্টরি থাকে তবে এই সরঞ্জামটি কার্যকর হতে পারে।

যখন তর্ক ছাড়াই কার্যকর করা হয়, পুনঃব্যবস্থাপনাটি নতুন প্যাকেজগুলি ফিরিয়ে দেয়। --old পতাকাটি দিয়ে চালানো হলে এটি পুরানো প্যাকেজগুলি ফিরিয়ে দেবে:

# ls -l
# cd rpms
# ls -l rpms
# repomanage rpms

দয়া করে মনে রাখবেন যে আরপিএম প্যাকেজগুলির নাম পরিবর্তন করা কীভাবে ক্ষতিপূরণটি কাজ করে তা প্রভাবিত করবে না।

পুনরায় জিজ্ঞাসা জিজ্ঞাসা yum সংগ্রহস্থলগুলি এবং প্যাকেজগুলির উপর ইনস্টল করা আছে কিনা তা অতিরিক্ত তথ্য পান (নির্ভরতা, প্যাকেজের অন্তর্ভুক্ত ফাইলগুলি এবং আরও অনেক কিছু)।

উদাহরণস্বরূপ, এই সিস্টেমে বর্তমানে এইচটিপ (লিনাক্স প্রসেস মনিটরিং) ইনস্টল করা নেই, যেমন আপনি নীচে দেখতে পারেন:

# which htop
# rpm -qa | grep htop

এখন ধরা যাক আমরা একটি ডিফল্ট ইনস্টলেশনতে অন্তর্ভুক্ত থাকা ফাইলগুলির সাথে হটোপের নির্ভরতা তালিকাভুক্ত করতে চাই। এটি করার জন্য, নিম্নলিখিত দুটি কমান্ড যথাক্রমে সম্পাদন করুন:

# repoquery --requires htop
# repoquery --list htop

yum-debug-dump আপনাকে ইনস্টল করা সমস্ত প্যাকেজগুলির একটি সম্পূর্ণ তালিকা, কোনও সংগ্রহস্থলীতে উপলব্ধ সমস্ত প্যাকেজ, গুরুত্বপূর্ণ কনফিগারেশন এবং সিস্টেমের তথ্য একটি জিপ করা ফাইলের মধ্যে ডাম্প করার অনুমতি দেয়।

আপনি যদি কোনও সমস্যা ডিব্যাগ করতে চান তবে এটি কার্যকর হতে পারে। আমাদের সুবিধার জন্য, ইয়াম-ডিবাগ-ডাম্প ফাইলটিকে yum_debug_dump- <হোস্টনেম> - <টাইম> .txt.gz হিসাবে নাম দেয় যা আমাদের সময়ের সাথে সাথে এই পরিবর্তনগুলি ট্র্যাক করতে দেয়।

# yum-debug-dump

যে কোনও সংকোচিত পাঠ্য ফাইলের মতো, আমরা এর সামগ্রীগুলি zless কমান্ড ব্যবহার করে দেখতে পারি:

# zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

আপনার যদি yum- ডিবাগ-ডাম্প দ্বারা সরবরাহিত কনফিগারেশন তথ্যটি পুনরুদ্ধার করা দরকার, আপনি এটি করতে yum-debug-بحال ব্যবহার করতে পারেন:

# yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

yumdownloader তাদের নির্ভরতা সহ, সংগ্রহস্থল থেকে উত্স RPM ফাইলগুলি ডাউনলোড করে। সীমাবদ্ধ ইন্টারনেট অ্যাক্সেস সহ অন্যান্য মেশিনগুলি থেকে অ্যাক্সেস পাওয়ার জন্য একটি নেটওয়ার্ক সংগ্রহস্থল তৈরি করতে কার্যকর।

ইয়ামডাউনলোডার আপনাকে বাইনারি আরপিএমগুলিই কেবল ডাউনলোড করতে দেয় না তবে উত্সগুলিও ( - উত্স বিকল্পের সাথে ব্যবহার করা হয়)।

উদাহরণস্বরূপ, আসুন এইচটিপি-ফাইল নামের একটি ডিরেক্টরি তৈরি করুন যেখানে আমরা আরপিএম ব্যবহার করে প্রোগ্রামটি ইনস্টল করতে প্রয়োজনীয় আরপিএম (গুলি) সংরক্ষণ করব। এটি করার জন্য, আমাদের ইউমডাউনডারের সাথে --reolve সুইচটি ব্যবহার করতে হবে:

# mkdir htop-files
# cd htop-files
# yumdownloader --resolve htop
# rpm -Uvh 

reposync yumdownloader এর সাথে নিবিড়ভাবে সম্পর্কিত (বাস্তবে তারা প্রায় একই বিকল্পগুলি সমর্থন করে) তবে যথেষ্ট সুবিধা দেয়। বাইনারি বা উত্স আরপিএম ফাইলগুলি ডাউনলোড করার পরিবর্তে, এটি একটি স্থানীয় ডিরেক্টরিতে একটি রিমোট রিপোজিটরি সিঙ্ক্রোনাইজ করে।

চলুন বর্তমান ওয়ার্কিং ডিরেক্টরিটির ভিতরে ইপেল-লোকাল নামে একটি উপ-ডিরেক্টরিতে সুপরিচিত EPEL সংগ্রহস্থলটিকে সিঙ্ক করি:

# man reposync
# mkdir epel-local
# reposync --repoid=epel --download_path=epel-local

মনে রাখবেন যে 8867 প্যাকেজ ডাউনলোড করার সময় এই প্রক্রিয়াটি বেশ খানিকটা সময় নেবে:

সিঙ্ক্রোনাইজেশনটি সম্পূর্ণ হয়ে গেলে, আসুন du কমান্ডটি ব্যবহার করে আমাদের নতুন নির্মিত EPEL সংগ্রহস্থলের মিরর দ্বারা ব্যবহৃত ডিস্ক স্পেসের পরিমাণটি যাচাই করা যাক:

# du -sch epel-local/*

আপনি যদি এই EPEL আয়না রাখতে চান বা রিমোট ব্যবহার না করে প্যাকেজ ইনস্টল করতে চান তবে এটি এখন আপনার হাতে to প্রথম ক্ষেত্রে, দয়া করে মনে রাখবেন যে আপনাকে সেই অনুযায়ী /etc/yum.repos.d/epel.repo পরিবর্তন করতে হবে।

yum-সম্পূর্ণ-লেনদেন হ'ল yum-utils প্রোগ্রামের একটি অংশ যা কোনও সিস্টেমে অসম্পূর্ণ বা বাতিল হওয়া yum লেনদেনকে ধরে এবং এগুলি সম্পূর্ণ করার চেষ্টা করে।

উদাহরণস্বরূপ, আমরা যখন yum প্যাকেজ ম্যানেজারের মাধ্যমে লিনাক্স সার্ভারগুলি আপডেট করি তখন কখনও কখনও এটি একটি সতর্কতা বার্তা নিক্ষেপ করে যা নীচের মত পড়ে:

অসমাপ্ত লেনদেন বাকি আছে। এগুলি শেষ করার জন্য আপনি প্রথমে ইয়াম-সম্পূর্ণ-লেনদেন চালানো বিবেচনা করতে পারেন।

এই ধরনের সতর্কতা বার্তাগুলি ঠিক করতে এবং এ জাতীয় সমস্যার সমাধান করতে, অসম্পূর্ণ লেনদেন সম্পন্ন করার জন্য yum- সম্পূর্ণ-লেনদেনের আদেশটি চিত্রে আসে, এটি সেই সমস্ত অসম্পূর্ণ বা বাতিল হওয়া ইয়ম লেনদেন-সমস্ত * এবং লেনদেন-সম্পন্ন * ফাইলগুলিতে খুঁজে পায় যা/এ খুঁজে পাওয়া যায় var/lib/yum ডিরেক্টরি।

অসম্পূর্ণ ইয়াম লেনদেন শেষ করতে yum- সম্পূর্ণ-লেনদেন কমান্ড চালান:

# yum-complete-transaction --cleanup-only

এখন yum কমান্ডগুলি অসম্পূর্ণ লেনদেনের সতর্কতা ছাড়াই চলবে।

# yum update

দ্রষ্টব্য: এই টিপটি এখানে মন্তব্য বিভাগে আমাদের নিয়মিত পাঠক মিঃ টমাস দ্বারা পরামর্শ দেওয়া হয়েছে।

সারসংক্ষেপ

এই নিবন্ধে আমরা yum-utils এর মাধ্যমে প্রদত্ত কয়েকটি সর্বাধিক দরকারী ইউটিলিটিগুলি কভার করেছি। একটি সম্পূর্ণ তালিকার জন্য, আপনি ম্যান পৃষ্ঠাটি পড়তে পারেন ( ম্যান ইয়াম-ইউজগুলি )।

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

আপনি যদি yum-utils এর ম্যান পৃষ্ঠাটি পরীক্ষা করতে এক মিনিট সময় নেন, সম্ভবত আপনি একটি আলাদা সরঞ্জাম পেয়ে যাবেন যা আপনি আমাদের একটি পৃথক নিবন্ধে আরও গভীরতার সাথে কভার করতে চান। যদি তা হয় তবে বা এই নিবন্ধটি সম্পর্কে আপনার যদি প্রশ্ন, মন্তব্য বা পরামর্শ থাকে তবে নিচে মন্তব্য ফর্মটি ব্যবহার করে আমাদের কোনটি নোট ফেলে রেখে নির্দ্বিধায় আমাদের জানান।