কোন ইউম সংগ্রহস্থল থেকে একটি প্যাকেজ ইনস্টল করা হয়েছে তা কীভাবে জানবেন?


152

আমি ইয়াম দ্বারা একাধিক প্যাকেজ ইনস্টল করার পরে (একাধিক সংগ্রহস্থল কনফিগার করা আছে), কীভাবে এটি সংগ্রহস্থলটি ইনস্টল করা হয়েছে তা আবিষ্কার করব?

যদি আমি চালিত yum info package-name(বা yum list package-name), আমি কেবল দেখতে প্যাকেজটি "ইনস্টলড" আছে "


1
দুর্দান্ত প্রশ্ন! আমি ইয়াম-ইউসগুলি ইনস্টল করেছি এবং এর ইউটিউপগুলির একটি হিসাবে চেষ্টা করেছি যার নাম রেপোকোয়ারি, তবে ভাগ্য নেই।
শান স্ট্যাটস


@ বার্নগুলি আপনার লিঙ্কটি কার্যকর নয় কারণ আপনার লিঙ্কটি "কি রেপো সংরক্ষণ করা একটি আরপিএম" এই প্রশ্নটি সম্পর্কে প্রশ্ন কিন্তু এই প্রশ্নটি "কি রেপো একটি ইনস্টলড আরপিএম থেকে ইনস্টল করা" asks বিভিন্ন প্রশ্ন।
ট্রেভর বয়েড স্মিথ

যদি আপনি করছেন করতে ব্যবহার করা হয় rpm -qa|grep NAMEতারপর আপনি করতে পারেন না yum list installed|grep NAMEকি রেপো RPM থেকে এটি
ট্রেভর বয়ড স্মিথ

@ ট্রেভরবয়েডস্মিথ - 7 বছর আগে, এটি কাছে ছিল। আজ, এটি এখনও একই রকম। কখনও বলিনি এটি একই ছিল । এটি যে সম্পর্কিত ছিল।
ওয়ারেন

উত্তর:


81

ইয়াম-ইউসগুলি ইনস্টল করার পরে, পুনরুদ্ধারগুলি আপনার সন্ধানের তথ্য সরবরাহ করবে (এখানে 'এপেল' হ'ল সংগ্রহস্থল)।

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.

2
সংগ্রহশালা সঠিকভাবে কাজ করে না বলে মনে হয় না, আমি তখন বিভিন্ন প্যাকেজ সংস্করণ পাই yum info package_name, এটি yum হিসাবে একই ক্রমে সংগ্রহস্থলগুলি জিজ্ঞাসা করবে বলে মনে হয় না।
মাইক মিলার

কয়েকটি সার্ভারেও এখানে। yum info package_nameআপাতদৃষ্টিতে রেপ্লোয়ারির চেয়ে বেশি ফলাফল দেয়। এজন্য স্ট্যাক এক্সচেঞ্জের ভোটগুলিতে লক করা উচিত নয়।
প্রতিচ্ছবি

8
আমি পেয়েছি চিওনিং চিয়ামিভের উত্তরটি সঠিক নয়। repoquery -i $pkgযেটি থেকে একটি $pkgউপলব্ধ তা রেপো দেয় , যে রেপো $pkgইনস্টল করা হয়েছিল তা নয়। আমি সেই আদেশটি করেছি এবং rpm -qi $pkgবিভিন্ন সংস্করণ নম্বর পেয়েছি। rpmএর চেয়ে আগের সংস্করণ সংখ্যার ফলস্বরূপ repoquery

এটা সম্ভব আপনার স্থানীয় অনুলিপি আউট-অফ-তারিখ, অথবা এটি অতিরিক্ত কমান্ড সহ ইনস্টল করা ছিল ইয়াম (যেমন --use-mirror)। আমি মনে করি না যে সর্বদা সঠিক উত্তর পাওয়া সম্ভব ।
জিওনগ চিয়ামিভ

ব্যবহারকারী 158844 ঠিক আছে। এটি আপনাকে বলবে যে রেপো কোনও প্রদত্ত প্যাকেজ সরবরাহ করে তবে কোনও নির্দিষ্ট প্যাকেজটি রেপো থেকে আসে না। আপনি যদি একটি নির্দিষ্ট রেপো থেকে একটি প্যাকেজ ইনস্টল করে থাকেন, মুছে যে রেপো, তারপর অন্য রেপো যে একই নামের একটি প্যাকেজ, প্রদান করে, ভালো চলমান 'repoquery -i তোমরা প্যাকেজ ইনস্টল করা নতুন রেপো তালিকা ফিরে আসবে ইনস্টল না যে এক আপনি আসলে প্যাকেজটি ইনস্টল করেছেন। প্রশ্নকারী ইনস্টলড সফ্টওয়্যারটি আসলে কী প্যাকেজ থেকে এসেছে তা জানতে চায়। একই নামের প্যাকেজগুলির সাথে বর্তমান রেপোগুলির কী ঘটে না।
টড ওয়ালটন

43

ইয়াম এর কোন সংস্করণ?

বর্তমান সংস্করণে যদি ইনস্টল করা প্যাকেজটি সাম্প্রতিকতম উপলব্ধ হিসাবে একই সংস্করণ হয় তবে এটি থেকে ইনস্টল করা রেপো প্রদর্শিত হবে।

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

যদি কোনও নতুন প্যাকেজ উপলভ্য থাকে, তবে এটি আলাদাভাবে প্রদর্শিত হবে, নতুন সংস্করণটি এটি থেকে পাওয়া রেপো প্রদর্শন করবে।


আমি CentOs 5.3 এ ইয়ম 3.2.19 ব্যবহার করছি এবং "ফ্রি রেপো" সারিটি বিদ্যমান নেই।
এলজি।

হ্যাঁ ... আমি এটি ২.২.২১-এ পরীক্ষা করে দেখছিলাম, যেখানে কোথাও সেই তথ্য নেই। আমি যখন আমার বাক্সে এটি করেছি যখন 3.2.23 রয়েছে, এটি কার্যকর হয়েছিল।
অ্যালেক্স

এখন এটি সেরা সমাধান, তবে আরএইচইএল / সেন্টোস 5.3 এর জন্য প্রযোজ্য নয়। আমি এই সমাধানটি গ্রহণ করি, তবে আরএইচইএল / সেন্টোস 5.3 এর জন্যও যদি প্রযোজ্য হয় তবে আমি অন্য উত্তরটি বেছে নিতে প্রস্তুত।
এলজি।

2
এটি সেন্টোস 5.5-এ কোনও অগ্রগতি নয়।
মাইক মিলার

"রিপ্রেস থেকে" সেন্টোস 5..৮-তেও পাওয়া যায় না
সেপ্টেম্বর

22

দেরীতে আসার পথে তবে (কমপক্ষে ফেডোরার 15 এ) অনুরূপ প্রশ্নের জন্য yumdb ব্যবহার করতে পারেন:

yumdb info 'python*'

এবং প্রদত্ত রেপো (গুলি) থেকে প্যাকেজগুলি তালিকাভুক্ত করার জন্য আমার আসলে যা দরকার ছিল:

yumdb search from_repo 'my-*-repo'

এটি ফেডোরা 14
এলজিতেও কাজ করে।


8

যদি সমস্ত কিছু ব্যর্থ হয় তবে আপনি yumdb ম্যানুয়ালি পরিদর্শন করতে পারেন। /var/lib/yum/yumdbএটিতে অবস্থিত এবং প্রতিটি ইনস্টল করা প্যাকেজ সম্পর্কিত বিশদ তথ্য রয়েছে। আপনি বিশেষভাবে আগ্রহী হবে from_repo। উদাহরণস্বরূপ, bind-utilsপ্যাকেজের জন্য:

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6

আপনি চান কেবল তথ্য পেতে:

# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates

পরবর্তী সংস্করণগুলি আরও বেশি ডেটা সরবরাহ করবে; উদাহরণস্বরূপ EL 7-তে সঠিক মিরর এবং ইউআরএল যা থেকে প্যাকেজটি ডাউনলোড হয়েছিল তা এখানে সংরক্ষণ করা হয়েছে।


+1 টি। তবে এর মতো কিছু করা আরও ভাল: for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; doneএটি উপরের উদাহরণে প্রত্যাবর্তন করে: updates- আরও পাঠযোগ্য!
গ্রেগ ডুবিকি 21 '10

1
@ গ্রেগডুবিকি কমান্ডের মূল বিষয়টি হ'ল কী চলছে এবং কীভাবে জিনিসগুলি সংরক্ষণ করা হয় সে সম্পর্কে আরও বেশি প্রসঙ্গ দেখানো হয়েছিল। এটি দৃশ্যত এটি করতে ব্যর্থ হয়েছিল: এখানে কোনও grepকিছুর দরকার নেই এবং আপনি লুপটিও ফেলে দিতে পারেন। আপনার খুব cat /var/lib/yum/yumdb/b/*bind-utils*/from_repoপ্রয়োজন একটি খুব সাধারণ ।
মাইকেল হ্যাম্পটন

6
rpm -qi packagename

আপনাকে বিক্রেতা এবং প্যাকেজারটি বলবে


5

রেপো এপেল থেকে কী ইনস্টল করা হয়েছে তা দেখতে: (সেন্টোস 5.5 এর অধীনে কাজ করা উচিত) দ্রষ্টব্য, আপনার কাছে এপেল নামের কোনও রেপো না থাকলে এটি ইনস্টল হওয়া প্রতিটি জিনিসই ছুঁড়ে ফেলবে।

repoquery --repoid = এপেল -এ | xargs ইয়ম তালিকা ইনস্টল করা হয়েছে


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

4

প্যাকেজটি সম্প্রতি ইনস্টল করা থাকলে আপনি / var / cache / yum এ দেখতে পারেন।

এই ডিরেক্টরিতে, প্রতিটি রেপোর জন্য একটি ডিরেক্টরি রয়েছে এবং এটিতে প্যাকেজ ডিরেক্টরি রয়েছে। সুতরাং, আপনি যেমন কিছু করতে হবে:

find /var/cache/yum -name [package-name]*

তবে আপনার /etc/yum.conf ফাইলে ক্যাশে সক্ষম করতে হবে:

cachedir=/var/cache/yum
keepcache=1

নোট করুন যে একটি yum clean [packages|all]ক্যাশে ডিরেক্টরিটি সাফ করবে।

ক্যাশে ডিরেক্টরিটি ফাঁকা থাকলে বিকল্প উপায় আছে। দ্বারা পঠিত yum info [package]তথ্যগুলি আসে /var/cache/yum/selrepo +primary.xml.gz থেকে

আপনি প্রবেশ করে ফাইলটি দেখতে পারেন:

gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'

যাইহোক, মেশিনগুলিতে যেখানে yum info [package]"থিওরিগ্রিপ" দ্বারা নির্দেশিত হিসাবে "রিপো থেকে:" প্রদর্শন করা হয় না, কারণ এটি ফাইল প্রাথমিক.এক্সএমএলটিতে নেই, সুতরাং সেই তথ্য পুনরুদ্ধারের কোনও উপায় থাকবে না। সুতরাং, যদি প্যাকেজটি দুটি বা ততোধিক প্রাথমিক.এক্সএমএল ফাইলগুলিতে থাকে তবে আপনাকে আপনার সিস্টেমে রেপো অগ্রাধিকারটি নির্ধারণ করতে হবে।


এই সমাধান হতে পারে একটি বিকল্প (আমি এটি ভোট দিয়ে), তবে আমি একটি সুনির্দিষ্ট উত্তর খুঁজছি।
এলজি।

4

সোডোগানের
অন ​​রেডহ্যাট এবং সেন্টোস-এর ভিত্তিতে এবং উত্তরটির ভিত্তিতে কেউ এটি করতে পারে

sudo grep -ir PACKAGE_NAME /var/cache/yum/

ফলাফলগুলি দেখতে কিছুটা দেখতে হবে

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

কোথায় repository_name সংগ্রহস্থলের যেখানে আপনার প্যাকেজ পাওয়া যাবে, এবং এটা সম্ভবত (ইস repolist দেখুন) একটি তালিকাতে প্রথম এক থেকে ইনস্টল করা ছিল


1

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


এই সমাধানটি সম্ভবত একটি বিকল্প (আমি এটি ভোট দিয়েছি), তবে কেবলমাত্র ইনস্টল করা প্যাকেজের জন্য, কারণ আমি সংগ্রহস্থল এবং তাদের অগ্রাধিকার পরিবর্তন করতে পারি change
এলজি।

1

দুর্দান্ত সমাধান নয়, তবে আমি খুঁজে পেয়েছি যে উপলব্ধ ইয়াম তালিকা আপনাকে দেখাবে যে প্রতিটি প্যাকেজের সর্বাধিক আপ টু ডেট সংস্করণ পাওয়া যায়, যেমন:

yum তালিকা উপলব্ধ | grep gstreamer

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

bluez-gstreamer.i386 4.30-2.fc10 আপডেট
gstreamer.i386 0.10.21-2.fc10 ফেডোরা
gstreamer-devel.i386 0.10.21-2.fc10 ফেডোরা
gstreamer-devel.x86_64 0.10.21-2.fc10 ফেডোরা
gstreamer- প্লাগইনস-ব্যাড-ডেভেল.আই 386 0.10.9-1.fc10 আরপিএমফিউশন-ফ্রি জিস্ট্রেমার
-প্লাগইনস-ব্যাড-ডেভেল.এক্স 86_64 0.10.9-1.fc10 আরপিএমফিউশন-মুক্ত

সুতরাং আপনি আপনার প্যাকেজে উপলব্ধ একটি yum তালিকা করতে পারেন, তারপরে ইনস্টল করা yum তালিকা ব্যবহার করে আপনার ইনস্টল করা সংস্করণটি তুলনা করতে পারেন এবং সংস্করণগুলি মিলে যায় তবে এটি কোন রেপো থেকে এসেছে তা সম্পর্কে ভাল ধারণা থাকতে পারে।


এটি কেবল সত্য তবেই প্যাকেজটি ইনস্টল করা হয়নি।
এলজি।

যদিও এটি ওপিএস প্রশ্নের ঠিক উত্তর দেয় না, এটি আমার পক্ষে খুব সহায়ক ছিল কারণ এটি কেবল ইয়াম এবং অন্য কোনও ব্যবহারের সাথে সেন্টোস ৫.৫ এ কাজ করে এবং আপনি এটি করতে পারেন: ১. প্যাকেজটি আনইনস্টল করুন তারপরে কোথায় রেপো পুনরায় ইনস্টল করবেন তা জিজ্ঞাসা করুন , অথবা ২. প্যাকেজ ইনস্টল না করে ভিন্ন মেশিনে অনুসন্ধান করুন।
মুক্তিদাতা

1

আপনি "yum তথ্য" তে ভার্বোজ পতাকাটি যুক্ত করতে পারেন:

yum info -v <package_name>

ইনস্টলেশন সংগ্রহস্থলটি "ফ্রি রেপো" আউটপুটের আওতায় থাকবে।


এটি একমাত্র সমাধান বলে মনে হচ্ছে যার জন্য yum-utils ইনস্টল করার প্রয়োজন নেই।
মার্ক এডিংটন

এটি কেবলমাত্র আমার জন্য "ইনস্টলড" তালিকাবদ্ধ করে।
ফ্রগস্টায়ার 78

1

সুতরাং আমি জানি এটি কিছুটা পুরানো প্রশ্ন - তবে এটি আমি যা খুঁজছিলাম তার জন্য গুগল অনুসন্ধানে উঠে আসে।

রেপো ব্যবহারের একটি অনন্য তালিকা পাওয়ার জন্য একটি পদ্ধতি রয়েছে:

# repoquery -ai | grep 'Repository  : ' | sort | uniq

এটি প্যাকেজ ইনস্টল করা হয়েছে এমন সংগ্রহস্থলের তালিকা তৈরি করবে।


1

অতিরিক্ত সরঞ্জামগুলি ইনস্টল না করে, গ্রেপিং বা বহির্মুখী তথ্য আউটপুট না করে সহজ এবং সর্বাধিক সরল পদ্ধতি সহজভাবে:

yum list installed [package name]

তৃতীয় কলামটি প্যাকেজটি ইনস্টল করা হয়েছিল সেই সংগ্রহস্থলের আইডি সরবরাহ করবে।

এটি গ্রেপ ব্যবহার করে মূল প্রশ্নের একটি মন্তব্যে উল্লেখ করা হয়েছিল, তবে এটি প্রয়োজনীয় নয়। আপনি কেবলমাত্র প্যাকেজটির নাম yumফিল্টার করতে সরাসরি পাস করতে পারেন ।



-1

সবচেয়ে সহজ উপায় হ'ল:

rpm -qa --qf '%{NAME} %{VENDOR}\n'

আরও টিপস এবং কৌশল এখানে উপলব্ধ: http://wiki.centos.org/TipsAndT কৌশল/ YumAndRPM


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

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