আমি কোনও নির্দিষ্ট সংগ্রহস্থল থেকে ইনস্টল করা সমস্ত প্যাকেজকে কীভাবে তালিকাবদ্ধ করতে পারি?


51

আমি কোনও নির্দিষ্ট সংগ্রহস্থল থেকে ইনস্টল করা সমস্ত প্যাকেজকে কীভাবে তালিকাবদ্ধ করতে পারি?

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


যেহেতু এটির জন্য কোনও বিদ্যমান কমান্ড-লাইন সরঞ্জাম বলে মনে হচ্ছে না (দুঃখের সাথে), আমি জিইউআইয়ের একটি উত্তর গ্রহণ করব।
মারিউস গেডমিনাস

উত্তর:


24

উবুন্টু সফটওয়্যার সেন্টারে "ইনস্টল করা সফ্টওয়্যার" আইটেমটি প্রসারিত করুন। আপনি সক্ষম করেছেন এমন সমস্ত বিভাজনগুলির একটি তালিকা আপনি দেখতে পাবেন। রেপোতে ক্লিক করা আপনাকে প্রতিটি থেকে ইনস্টল করা প্যাকেজগুলি প্রদর্শন করবে।

বিকল্প পাঠ


আমি আশঙ্কা করছি যে বিকল্পটি কেবল উবুন্টু ১০.১০ এ উপলব্ধ বা আমি কিছু অনুপস্থিত? আমার সফ্টওয়্যার সেন্টার সেই মেনুটির নীচে উত্সগুলি প্রদর্শন করে না।
प्याলিংলিঙ্ক

2
আমার সংস্করণে আমার উপরে একটি "ইনস্টলড" ড্রপডাউন রয়েছে have যখন আমি এই বিকল্পটি নির্বাচন করি, আমি বিভিন্ন উত্স (কোর, পূর্বের জন্য, পিপিএ ...) চয়ন করতে পারি
অ্যালেক্সিস উইলক

উবুন্টু 16.04 এ, এই পৃষ্ঠাটি আর উপলব্ধ নেই। তবে সিনাপটিকের একই বৈশিষ্ট্য রয়েছে - নীচে-বামে "উত্স" ক্লিক করুন click
জোশ

26

ইনস্টল করা প্যাকেজটির উত্সের কোনও রেকর্ড নেই বলে মনে হয় ।

আপনি যদি ঠিক একই অবস্থানের প্যাকেজটি যেখান থেকে ডাউনলোড করবেন সেখান থেকে অবস্থানটি পেয়ে থাকেন তবে এটি উপলব্ধ apt-cache policy। নিম্নলিখিত (বরং কুরুচিপূর্ণ) স্ক্রিপ্টটি আমার পক্ষে কৌতুক করে:

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
  | fgrep ':install ok installed' \
  | cut -d: -f1 \
  | (while read pkg; do 
       inst_version=$(apt-cache policy $pkg \
                                | fgrep Installed: \
                                | awk '{ print $2 }'); 
       origin=$(apt-cache policy "$pkg" \
                          | fgrep " *** ${inst_version}" -C1 \
                          | tail -n 1 \
                          | cut -c12-); 
       echo $pkg $origin; 
     done)

মনে রাখবেন যে এটি বেশ নাজুক, কারণ এটি আউটপুট সম্পর্কে অনুমান করে apt-cache policy, যা সংস্করণগুলিতে পরিবর্তন হতে পারে ...


হ্যাঁ, এর অর্থ হ'ল স্ক্র্যাচ থেকে কোনও সরঞ্জাম লেখা। এবং আমি মনে করি পার্ল বা পাইথনের সাথে তালিকাভুক্ত / var / lib / apt / তালিকাগুলি দ্রুত এবং আরও শক্তিশালী হবে।
মারিউস গেডমিনাস

2018 এ এখানে সাধারণত কাজ করে :) আপনাকে ধন্যবাদ!
N0rbert

আমি উবুন্টু এবং ডেবিয়ান পরীক্ষিত অনুরূপ সমাধান বিকাশ করেছি ।
ফজহাহ

23

সিনাপটিক প্যাকেজ ম্যানেজারটি খুলুন এবং বাম পাশেরবারের নীচে "অরিজিন" বোতামটি ক্লিক করুন। এটি আপনার উত্স তালিকাবদ্ধ করবে। উপলব্ধ / ইনস্টলড প্যাকেজগুলি দেখতে কোনও উত্স নির্বাচন করুন।


4

এই স্ক্রিপ্টটি প্যাকেজগুলি তালিকাবদ্ধ করে যা ইনস্টল করা এবং পিপিএতে উপলব্ধ:

#!/bin/sh
# Give PPA name as an argument, e.g. ppa:oibaf/graphics-drivers

name1="$(echo "$1"|cut -d: -f2|cut -d/ -f1)"
name2="$(echo "$1"|cut -d/ -f2)"

awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' \
/var/lib/apt/lists/*"$name1"*"$name2"*Packages |
xargs dpkg-query -W -f='${Status} ${Package}\n' 2>/dev/null  | awk '/^[^ ]+ ok installed/{print $4}'

আমি আবেদন এই

বিটিডাব্লু পিপিএ ব্যবহার থেকে অপসারণ করার জন্য, পিপিএ-পার্জ প্রোগ্রামটি ব্যবহার করুন; আমি তা একটি উন্নত সংস্করণ তৈরি করেছেন এখানে


3

কোয়ান্টাল (12.10) এর অধীনে, মূল পংক্তির স্থানটি অপসারণ করা দরকার।

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
 | fgrep ':install ok installed' \
 | cut -d: -f1 \
 | (while read pkg; do 
   inst_version=$(apt-cache policy $pkg \
                            | fgrep Installed: \
                            | cut -d: -f2-); 
   origin=$(apt-cache policy "$pkg" \
                      | fgrep " ***${inst_version}" -C1 \
                      | tail -n 1 \
                      | cut -c12-); 
   echo $pkg $origin; 
 done)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.