উত্তর:
আপনি যে আরপিএম বিকল্পটি চান তা হ'ল:
rpm -q --whatrequires sqlite
সম্পাদিত: যুক্ত - অন্যান্য উত্তর / মন্তব্যে আলোচনার ভিত্তিতে ইনস্টল করা
সম্পাদিত: সরানো - ইনস্টল করা কারণ এটি আরপিএমের জন্য একটি অবৈধ বিকল্প
--installed
এর জন্য একটি বিকল্প repoquery
তবে এটি অবৈধ rpm
।
repoquery -q --installed --whatrequires sqlite
rpm -q --whatrequires sqlite
কেবল প্যাকেজ নামের উপর নির্ভরতা রিপোর্ট করে।
বিপরীতে, repoquery
অনুসরণ হিসাবে কাজ করে (মানচিত্র থেকে):
--alldeps
When used with --whatrequires, look for non-explicit dependencies in addition to explicit ones (e.g. files and Provides in addition to package names).
This is the default.
প্যাকেজ নেওয়া যাক libdb
।
# rpm -q --whatrequires libdb
no package requires libdb
কোনও প্যাকেজ নির্ভর করে না libdb
, তাই আমাদের এটিকে মসৃণভাবে মুছে ফেলতে সক্ষম হওয়া উচিত। যাহোক...
# yum remove -y libdb
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package libdb.x86_64 0:5.3.21-19.el7 will be erased
--> Processing Dependency: libdb(x86-64) = 5.3.21-19.el7 for package: libdb-utils-5.3.21-19.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: pam-1.1.8-12.el7_1.1.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: libdb-utils-5.3.21-19.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: cyrus-sasl-lib-2.1.26-20.el7_2.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-python-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: python-libs-2.7.5-39.el7_2.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-devel-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: rpm-build-libs-4.11.3-17.el7.x86_64
--> Processing Dependency: libdb-5.3.so()(64bit) for package: iproute-3.10.0-54.el7_2.1.x86_64
--> Running transaction check
. . .
. . .
. . .
Error: Trying to remove "systemd", which is protected
Error: Trying to remove "yum", which is protected
আপনি দেখতে পাচ্ছেন যে কিছু অন্যান্য প্যাকেজ সরাসরি প্যাকেজের উপর নির্ভর করে না, তবে libdb-5.3.so()(64bit)
এটির দ্বারা সরবরাহ করা ফাইলের উপর নির্ভর করে।
অবশেষে, প্যাকেজগুলির আসল তালিকা এখানে নির্ভর করে libdb
:
# repoquery -q --installed --whatrequires libdb
cyrus-sasl-lib-0:2.1.26-20.el7_2.x86_64
iproute-0:3.10.0-54.el7_2.1.x86_64
libdb-utils-0:5.3.21-19.el7.x86_64
pam-0:1.1.8-12.el7_1.1.x86_64
postfix-2:2.10.1-6.el7.x86_64
python-libs-0:2.7.5-39.el7_2.x86_64
rpm-0:4.11.3-17.el7.x86_64
rpm-build-libs-0:4.11.3-17.el7.x86_64
rpm-devel-0:4.11.3-17.el7.x86_64
rpm-libs-0:4.11.3-17.el7.x86_64
rpm-python-0:4.11.3-17.el7.x86_64
ডিএনএফ (ইয়ামের নতুন সংস্করণ) এর জন্য আপনি রেপোক্রি র্যাপার কমান্ড দিয়ে চেষ্টা করতে পারেন:
dnf repoquery --whatrequires sqlite
এটি উপলভ্য না হলে আপনি এটি কমান্ড দিয়ে ইনস্টল করতে পারেন:
dnf -y install dnf-plugins-core
--installed --recursive
আপনার শেষে দরকার তাই এটি কেবল যা ইনস্টল করা আছে কেবল তা ফেরত দেয় এবং সংগ্রহস্থলগুলি থেকে টান না
আপনি এই আদেশটিও চেষ্টা করে দেখতে পারেন।
repoquery --whatrequires sqlite
আমি সার্ভারফল্ট এবং ফেডোরা ফোরামগুলি থেকে এই কমান্ডটি পেয়েছি ।
আমি মনে করি আপনি যা জানতে চান তা হ'ল "স্কেলাইট -৩.৩..6 প্রয়োজন এমন প্যাকেজগুলি কী, তবে স্ক্লাইট -৩.৪.জেজে খুশি হবে না" ... এবং এটি খুঁজে পাওয়ার একমাত্র ভাল উপায় হ'ল এটি চেষ্টা করুন। ভালো লেগেছে:
echo | yum upgrade sqlite
ওয়েস হার্ডকার যেমন বলেছিলেন , একটি ভাল অন্তর্নির্মিত পদ্ধতি হ'ল ব্যবহার করা rpm -q --whatrequires <package>
। বিষয়টি হ'ল নির্ভরতা রেজোলিউশনের জন্য ক্ষমতাগুলিrpm
পরিচালনা করে , কেবল প্যাকেজগুলিতেই নয়, যেমন লিনাক্স বিতরণের ডিবিয়ান / উবুন্টু পরিবারে। অন্যরা যেমন উল্লেখ করেছে, কেবল পুরো কাজটি বলে না, তাই কেন কেউ কেউ ব্যবহার করার পরামর্শ দিয়েছিল । তবে, আরএইচইএল / সেন্টোজ 7 ন্যূনতম (সম্ভবত ডেস্কটপটিও?) এ ডিফল্টরূপে ইনস্টল করা নেই, তাই এটি সবার জন্য নাও পাওয়া যেতে পারে।dpkg
rpm -q --whatrequires sqlite
repoquery
repoquery
rpm -q --provides <pkgname>
প্যাকেজ সরবরাহ করে এমন সমস্ত ক্ষমতা দেখতে একজন ব্যবহারকারী করতে পারেন , তারপরে rpm -q --whatrequires <capability>
ইনস্টলড প্যাকেজগুলির কী কী সক্ষমতার প্রয়োজন তা দেখতে ব্যবহার করুন । এই তথ্যটি একটি বেস বেস ও লাইনার (দৈর্ঘ্যের জন্য এখানে দুটি লাইনে বিভক্ত) ব্যবহার করে সংক্ষিপ্তভাবে অনুসন্ধান করা যেতে পারে:
capabilities=($(rpm -q --provides sqlite | awk -F= '{print $1}'));
for c in "${capabilities[@]}"; do rpm -q --whatrequires "$c"; done
এটি কেবল rpm
নিজের মধ্যে অন্তর্নির্মিত বিকল্পগুলি ব্যবহার করে এবং সুতরাং এটির জন্য কোনও অতিরিক্ত প্যাকেজ ইনস্টল করার প্রয়োজন হয় না (উদাঃ yum-utils
CentOS 7 এ, যা প্যাকেজ ধারণ করে repoquery
)।
repoquery
একটি বিশেষ প্যাকেজের প্রয়োজন এমন সমস্ত প্যাকেজের কাঠামোর মতো একটি দুর্দান্ত গাছ উত্পন্ন করতে ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ:repoquery --pkgnarrow=installed --tree-whatrequires sqlite