ফেডোরা ২ 26 থেকে, ডিএনএফ সাবকম্যান্ড repoquery
সমর্থিত সমস্ত ব্যবহারকারীর দ্বারা ইনস্টল করা প্যাকেজ তালিকাভুক্ত করার জন্য একটি নতুন বিকল্প রয়েছে:
$ dnf repoquery --qf '%{name}' --userinstalled \
| grep -v -- '-debuginfo$' \
| grep -v '^\(kernel-modules\|kernel\|kernel-core\|kernel-devel\)$' > pkgs_a.lst
অন্যান্য পদ্ধতির বিপরীতে, এটি সমস্ত ডিবাগিনফো প্যাকেজ তালিকাভুক্ত করে। উপরের উদাহরণে অতিরিক্ত গ্রেপ তাদের ফিল্টার আউট করে।
হোস্ট বি তে তালিকাটি ইনস্টল করতে:
$ < pkgs_a.lst xargs dnf -y install
Dnf API
সাম্প্রতিক ডিএনএফ সংস্করণগুলি (যেমন ফেডোরা> = 23) এর সাহায্যে প্যাকেজ ডাটাবেসটি ডিএনএফ পাইথন এপিআইয়ের মাধ্যমে ব্যবহারকারী ইনস্টল হওয়া প্যাকেজ নামগুলির জন্য অনুসন্ধান করা যেতে পারে:
$ python3 -c 'import dnf; b = dnf.Base(); b.fill_sack(); \
l = sorted(set(x.name for x in b.iter_userinstalled() \
if not x.name.endswith("-debuginfo") \
and x.name not in \
["kernel-modules", "kernel", "kernel-core", "kernel-devel"] )); \
print("\n".join(l)) ' > pkgs_a.lst
# dnf install $(cat pkgs_a.lst) # on host_b
ডিফল্টরূপে, dnf install
যদি এক বা একাধিক প্যাকেজ আর উপলভ্য না হয় তবে এ্যাবੋਰਟস। বিকল্পভাবে, dnf বাকী সমস্ত ইনস্টল করতে বাধ্য করা যেতে পারে :
# dnf install --setopt=strict=0 $(cat pkgs_a.lst) # on host_b
PS: উপরের কোড এবং আরও কিছু এতে রাখুন যা user-installed.py
অন্যান্য বিতরণকে সমর্থন করে।
ইতিহাস ব্যবহারকারী ইনস্টল
ফেডোরা 23 এবং তারপরে, ডিএনএফ সরবরাহ করে
# dnf history userinstalled
কমান্ড যা ব্যবহারকারীর দ্বারা ইনস্টল করা সমস্ত প্যাকেজ তালিকাভুক্ত করে। ২০১-11-১১-এর হিসাবে এর কার্যকারিতা সীমাবদ্ধ কারণ এর আউটপুট নিয়ন্ত্রণের কোনও উপায় নেই এবং এটি পুরোপুরি যোগ্য প্যাকেজগুলি (যেমন সংস্করণ তথ্য সহ) মুদ্রণ করে।
ব্যবহারকারী ইনস্টল সীমাবদ্ধতা
নোট করুন যে ব্যবহারকারী-ইনস্টল হিসাবে প্যাকেজগুলির চিহ্নিতকরণের কয়েকটি ফেডোরা সংস্করণে কিছু সীমাবদ্ধতা রয়েছে, ফেডোরা ২৩-ইশ যুগের সিস্টেমে (২০১৫-১১-এর কাছাকাছি থেকে) নিম্নলিখিত বিষয়গুলি প্রাসঙ্গিক):
Repoquery
পুরোনো ফেডোরা সিস্টেম, যেখানে Dnf, Dnf এপিআই এবং উপর dnf history userinstalled
পাওয়া যায় না, ব্যবহার করতে পারেন repoquery পরিবর্তে, যেমন:
$ repoquery --installed \
--qf '%{n} | %{yumdb_info.reason} | %{yumdb_info.installed_by}' --all \
| awk -F'|' ' $2 ~ /user/ && ($3 != 4294967295) { print $1 }' \
| sort -u > pkgs_a.lst
ইনস্টলারের দ্বারা ইনস্টল করা প্যাকেজগুলি বাদ দেওয়ার জন্য দ্বিতীয় দ্বিতীয় শর্তটি ব্যবহৃত হয়। ইনস্টলারটির ব্যবহারকারী-আইডি স্পষ্টতই 4294967295 হিসাবে সংরক্ষণ করা হয়েছিল - বিকল্পভাবে আপনি এর মতো কিছু লিখতে পারেন ($3 == 0 || $3 == your-user-id)
।
নোট করুন যে এই কমান্ডটি ফেডোরার উপর 21 প্রকাশের জন্য কাজ করে - তবে উদাহরণ 23 রিলিজে নয়, কারণ কমান্ডটি repoquery
প্রতিস্থাপন করা হয়েছিল dnf repoquery
। এবং ট্যাগ dnf repoquery
বুঝতে পারে না %{yumdb_info.reason}
।
repoquery ...
"অবৈধ yumdb querytag 'কারণ' ইনস্টল pkg জন্য: handbrake-CLI-0.9.5-1.fc14.x86_64"