রেপো "এক্স" থেকে ইনস্টল করা সমস্ত আরপিএম প্যাকেজ তালিকাভুক্ত করুন


44

একটি বিশেষ রেপো (যেমন, "এপেল") থেকে আমার সিস্টেমে ইনস্টল করা সমস্ত RPM প্যাকেজগুলির একটি তালিকা কীভাবে পেতে পারি?

উত্তর:


45

সেন্টোস / আরএইচইএল / ফেডোরা 22 বা তার আগে

yum list installed | grep @epel

ফেডোরা 23 বা তার পরে

dnf list installed | grep @epel

8
এটি কাজ করবে না। ইয়াম পাইপের সাথে লাইনগুলি আউটপুট দেবে যা তারা খুব বেশি দীর্ঘ হলে ভেঙে যাবে। সুতরাং গ্রেপের ইনপুট বেশিরভাগ প্যাকেজ প্রতি এক লাইন, তবে এটি দুটি লাইন হতে পারে। ইয়াম "whizbanger.x86_64 ___ 3.8.4-2.el6 _______________ @ পেপ" পাস করতে পারত। (আন্ডারস্কোরগুলি শূন্যস্থান হিসাবে কল্পনা করুন)) "@ পেপেল" গ্রেপ দেখতে পাওয়া ইনপুটটির পরবর্তী লাইনে রয়েছে। সুতরাং গ্রেপ সেই লাইনটিকে "@ পেপেল" ছাড়া কিছু না করে প্যাকেজটির নামের সাথে পূর্ববর্তী লাইনে আউটপুট দিতে চলেছে।
টড ওয়ালটন

Bugzilla.redhat.com/show_bug.cgi?id=1525645 স্থির না হওয়া পর্যন্ত আপনাকে এই কমান্ডগুলি রুট হিসাবে চালাতে হবে ।
প্রসিকি

yos কমান্ডটি মনে হচ্ছে না যদি কোনও রেপোতে সমস্যা হয়। আমি সমস্যাগুলির সাথে রেপো অক্ষম করতে চাইছি কিনা তা দেখার জন্য আমার এই তালিকাটি প্রয়োজন।
জয়েন

@ টড ওয়াটসন আমি জানি, এটি হ্যাক, তবে "রফতানি কলমস = 999 ইয়াম ..."
ম্যাসিমো

এটি কি কাজ করে, @ মাসিমো? এটি একটি দুর্দান্ত কাজ হবে। আমি এই ইউনিক্স স্ট্যাকএক্সচেঞ্জ প্রশ্নটিও পেয়েছি: unix.stackexchange.com/questions/308731/…
টড ওয়ালটন

17

এই স্ট্যাকওভারফ্লো উত্তরে প্রস্তাবিত হিসাবে RHEL6 হিসাবে , এটি করার আরও একটি সম্পূর্ণ পদ্ধতি রয়েছে yumdb:

yumdb search from_repo REPOID*

রিফয়েড ওয়াইল্ড কার্ড নেয়।

সুন্দর-প্রিন্ট

যদি আমরা আউটপুটটি প্রতারণা এবং পাইপ করতে যাচ্ছি তবে আমরা পাশাপাশি প্রিন্ট-প্রিন্ট প্রভাবও অর্জন করতে পারি। এখানে একটি ব্যবহারawk

yumdb search from_repo REPOID* |awk -F"\n" '{ RS=""; print $1 }'

ব্যবহার egrepবাgrep -e

yumdb search from_repo REPOID* |egrep -v '(from_repo|^$)'

list_ALL_AVAILABLE_from_repo

নির্দিষ্ট সংগ্রহস্থলে সমস্ত উপলব্ধ প্যাকেজ তালিকাভুক্ত করতে , করুন:

repoquery -a --repoid=REPONAME

কেবলমাত্র একটি পার্শ্ব-নোট: নির্দিষ্ট রেপো থেকে সমস্ত প্যাকেজ repoquery -qa --repoid=REPONAME
তালিকাবদ্ধ

2
এটিও দুর্দান্ত উত্তর। আউটপুটটি গৃহীত উত্তরের চেয়ে দীর্ঘ, তবে এটি দুর্দান্ত উপায়ে ফর্ম্যাট করা হয়েছে।
রুথিনেটর

সরলীকৃত করা যেতে পারে repoquery -a --repoid=REPONAMEকারণ ম্যান পৃষ্ঠা অনুসারে -qবিকল্পটি rpmquery সামঞ্জস্যের জন্য, কিছুই করেনা।
রকাল্লাইট

@ রোকালাইট ঠিক আছে; ডিএনএফের জন্য, -qaআসলে ব্যর্থ হয়। পূর্ববর্তী উক্তিটি মুছে ফেলার কারণে আমি মন্তব্যটিকে আপত্তি জানাতে পারি না :( আমি তার প্রতিফলনের জন্য উত্তরটি আপডেট করছি
ILMostro_7

11
dnf repo-pkgs <repoid> list installed

নোট

উপরের কমান্ডটি ডিএনএফ ব্যবহার করে প্যাকেজগুলি থেকে ইনস্টল হওয়া প্যাকেজগুলি তালিকাভুক্ত করে <repoid>। দ্রষ্টব্য repo-pkgsকেবলমাত্র একটি উপনাম repository-packages

manপৃষ্ঠাগুলি থেকে :

man dnf | grep "repository-packages.*list.*installed" -A 1

আরও পড়া:

man dnf

3

গ্রেপিং ইয়ামের আউটপুটটি সবচেয়ে সুস্পষ্ট উপায়:

yum list installed | grep @epel

তবে আপনি অতিরিক্ত প্যাকেজ বৈশিষ্ট্য প্রদর্শন করতে পারবেন না এবং কোনও স্ক্রিপ্টের সাহায্যে পার্স করা কঠিন difficult repoqueryপ্যাকেজ থেকে প্রাপ্ত সরঞ্জামটি yum-utilsডিভাইস, তবে এটি ডিফল্টরূপে ইনস্টল হয় না।

repoquery -a --installed --qf "%{ui_from_repo} %{name}" | grep '^@epel'

এবং আরও জটিল উদাহরণ:

repoquery -a --installed --qf "%-20{ui_from_repo} %-30{name} %-7{arch} %{epoch}:%-12{version} %-4{release}" | grep '^@epel'

2

RHEL সার্ভার 7.5 (মাইপো)

yum repo-pkgs <repoid> list installedহিসাবে একই তথ্য পুনরুদ্ধার করতে ব্যবহৃত হতে পারে yumdb search from_repo <repoid>, তবে ভিন্ন ফর্ম্যাটে।

# yum help repo-pkgs
repo-pkgs <repoid> <list|info|install|remove|upgrade|reinstall*|remove-or-*> [pkg(s)]

Treat a repo. as a group of packages, so we can install/remove all of them

aliases: repo-packages, repository-pkgs, repository-packages

নমুনা epelআউটপুট:

# yumdb search from_repo epel
htop-2.2.0-1.el7.x86_64
    from_repo = epel

supervisor-3.1.4-1.el7.noarch
    from_repo = epel


# yum repo-pkgs epel list installed
Installed Packages
htop.x86_64            2.2.0-1.el7          @epel
supervisor.noarch      3.1.4-1.el7          @epel

1

আপনি Vendorইনস্টল করা আরপিএমের শিরোনামটি পরীক্ষা করতে পারেন ।

এই উদাহরণে ভিডিওএলএএন সংগ্রহস্থল থেকে সমস্ত প্যাকেজ তালিকাবদ্ধ করা হয়েছে :

 rpm -q -a --qf "%{Name}:%{Vendor}\n" \
     | grep -F ":VideoLAN Project (http://www.videolan.org)"

স্পষ্টতই, আপনাকে নির্ধারণ করতে হবে যে Vendorআপনার সংগ্রহস্থলের শিরোনামটি বিভিন্ন সংগ্রহস্থলের মধ্যে স্বতন্ত্র কিনা if


3
বিক্রেতা এবং রেপোসের মধ্যে ওয়ান-টু-ও ম্যাপিং নেই এবং কিছু ক্ষেত্রে, বিক্রেতার স্ট্রিং ফাঁকা k
লরিন হচস্টিন

1

যে লোকেরা কেবল নিখোঁজ সংগ্রহস্থলগুলি সন্ধান করতে চায় তাদের জন্য:

yum list installed | awk '{print $3}' | sort | uniq

আপনার প্যাকেজগুলি ইনস্টল করা আছে সেগুলি থেকে এটি পুনরায় সংগ্রহ করা উচিত।

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