আমি কীভাবে অপ্রচলিত প্যাকেজগুলির একটি তালিকা পেতে পারি?


19

আমি যে প্যাকেজগুলি সক্ষম করেছি তার তালিকা পাওয়ার উপায় খুঁজে বের করার চেষ্টা করছি I এই ওয়ার্কস্টেশনটি উবুন্টুর বেশ কয়েকটি সংস্করণের মধ্য দিয়ে চলেছে এবং অনেকগুলি তৃতীয় পক্ষের সংগ্রহস্থল যুক্ত এবং সরানো হয়েছে। আমি এই মুছে ফেলা সংগ্রহস্থলগুলি থেকে আমার কাছে থাকা সফ্টওয়্যারটির একটি তালিকা পেতে চাই, তাই আমি এটি পরিষ্কার করে বা উপযুক্ত সংগ্রহস্থলগুলি আবার যুক্ত করতে পারি।

উত্তর:


23
aptitude search '~o'

প্রবণতা কিছু খুব শক্তিশালী অনুসন্ধান উপলব্ধ। দুর্ভাগ্যক্রমে সিনট্যাক্সটি কিছুটা অপ্রয়োজনীয় এবং ডকুমেন্টেশন সন্ধান করতে আপনাকে ম্যানপেজটি পেরিয়ে যেতে হবে, তবে এটির মূল্য রয়েছে।

অ্যাপ-শো-সংস্করণগুলিও সহায়ক হতে পারে:

apt-show-versions | grep 'No available version'

1
অপ্রচলিত প্যাকেজগুলি সম্পর্কে এখানে একটি চমৎকার নিবন্ধটি দেখুন: raphaelhertzog.com/2011/02/07/…
Lluís

আর একটি দরকারী তালিকা তৈরি করা হয়েছেapt-show-versions | grep "newer than version in archive"
শান

আমি মনে করি অ্যাপটি-শো-সংস্করণগুলি সর্বোত্তম কারণ কেবল অ্যাপটিটিউড লাইনটি মনে রাখা অত্যন্ত পাল্টা-স্বজ্ঞাত। প্রতিবার যখনই আমার প্রয়োজন হয় আমাকে এটি গুগল করতে হবে / এটি সন্ধান করতে / এটি সংরক্ষণ করতে / স্ক্রিপ্ট তৈরি করতে হবে) ইত্যাদি।
j রিভ

6

নিবন্ধিত সংগ্রহস্থল বা পিপিএ-তে নেই এমন অ্যাপ্লিকেশনগুলির তালিকা পেতে এটি করুন:

sudo apt-get install apt-show-versions
apt-show-versions | grep 'No available version'

এটির মতো পাঠ্য আউটপুট করা উচিত:

app1 1.0.0.14 installed: No available version in archive
app23 0.3.6 installed: No available version in archive
app332 7.0.9377 installed: No available version in archive

আমার জন্য এটি কাজ করেছে এবং আমি তিনটি অ্যাপ্লিকেশন দেখিয়েছি আমি ডিইবি প্যাকেজ ব্যবহার করে ইনস্টল করেছি এবং রেপো বা পিপিএতে উপলব্ধ ছিল না।

মনে রাখবেন যে সমস্ত প্রোগ্রামের জন্য পরীক্ষা করা অসম্ভব, কেবল যেগুলি পেরেছে dpkg। উদাহরণস্বরূপ, কিছু অ্যাপ্লিকেশনগুলি কেবলমাত্র সঠিক ফোল্ডারে এগুলি বের করে ইনস্টল করা হয়, বা অন্যরা স্ট্যান্ডেলোন ইনস্টলার বিন বা স্ক্রিপ্ট ব্যবহার করে। তাই সেরা উপায় হ'ল এপিটি ব্যতীত অন্য কোনও পদ্ধতির মাধ্যমে আপনি যে অ্যাপ্লিকেশন ইনস্টল করেছেন সেগুলির একটি তালিকা নিজের কাছে রাখুন।


আমার সমস্ত স্থানীয় dpkgইনস্টলড প্যাকেজগুলির জন্য কাজ করে। এক ব্যতিক্রম। এটি তালিকাবদ্ধ করে skype-bin, যেখানে apt-cache policy skype-binস্পষ্টভাবে ক্যানোনিকাল অংশীদার রেপো দেখায়। আমি নিশ্চিত না কি চলছে। মাল্টিআরচ ইস্যু? এখনও +1 এর জন্য apt-show-versions!
জার্মটভিডিজক

প্রবণতা এই 'অপ্রচলিত' প্যাকেজ কল। উপরে ক্রোনাইটিস মন্তব্য দেখুন।
হেন্ক পোলি

5

আপনার যদি প্রবণতা ইনস্টলড ব্যবহার থাকে,

aptitude search '?obsolete'

বা তার সংক্ষিপ্ত রূপ

aptitude search '~o'

এখানে এটি একটি নমুনা আউটপুট

i A gcc-4.7-base - GCC, the GNU Compiler Collection (base package)
id  libdb4.7     - Berkeley v4.7 Database Libraries [runtime]
i   libudev0     - libudev shared library

প্রতিটি লাইনের প্রথম অক্ষর প্যাকেজের বর্তমান অবস্থা নির্দেশ করে। সর্বাধিক সাধারণ রাজ্যগুলি হল:

  • পি, এর অর্থ এই যে প্যাকেজের কোনও চিহ্ন সিস্টেমে বিদ্যমান নেই,
  • সি, এর অর্থ হল প্যাকেজটি মুছে ফেলা হয়েছে তবে এর কনফিগারেশন ফাইলগুলি সিস্টেমে থেকে যায়,
  • i, অর্থ প্যাকেজ ইনস্টল করা হয়েছে এবং
  • v, অর্থ প্যাকেজটি ভার্চুয়াল।

দ্বিতীয় অক্ষরটি প্যাকেজে সঞ্চালিত সঞ্চিত ক্রিয়াকে নির্দেশ করে, যদি থাকে তবে অন্যথায় ফাঁকা স্থান প্রদর্শিত হয়। সর্বাধিক সাধারণ ক্রিয়াগুলি হল:

  • আমি, অর্থ প্যাকেজ ইনস্টল করা হবে,
  • ডি, অর্থ প্যাকেজ মুছে ফেলা হবে, এবং
  • পি, অর্থ প্যাকেজ এবং এর কনফিগারেশন ফাইলগুলি সরানো হবে।

যদি তৃতীয় অক্ষর A হয় তবে প্যাকেজটি স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে গেছে।

সম্ভাব্য রাষ্ট্র এবং ক্রিয়া পতঙ্গের সম্পূর্ণ তালিকার জন্য, প্রবণতা রেফারেন্স গাইডে প্যাকেজ তথ্য অ্যাক্সেস করা বিভাগটি দেখুন ।


1
aptitude search ?obsoleteব্যাশে কাজ করতে পারে, তবে আপনার ব্যবহার করা উচিতaptitude search '?obsolete'
এবি

আপনি আউটপুট পার্সিং সম্পর্কে কিছু বিশদ যুক্ত করতে পারেন?
বয়স্ক গীক

'? অপ্রচলিত' '~ o' থেকে আলাদা?
শান

@ সান না, তারা আলাদা নয়। so o হ'ল সংক্ষিপ্ত রূপটি indeed সত্যই অচল।
ডেমিস পালমা ツ

উদ্ধৃতি শেল দ্বারা পার্স আউট হয়। আমি মনে করি এবি এর অর্থ হ'ল কমান্ড লাইনে আপনার অদ্ভুত চরিত্রটি অবিচ্ছিন্ন করা উচিত নয় কারণ আপনি জানেন না যে আপনার শেলটি তাদের সাথে কী করবে।
শান

2

উবুন্টু 19.10 দিয়ে শুরু করে এটি চালানোও সম্ভব

apt list ?obsolete

অপ্রচলিত প্যাকেজগুলির তালিকা পেতে।

যে কোনও রিলিজের জন্য আপনি নিম্নলিখিত বাশ ওয়ান-লাইনার ব্যবহার করতে পারেন:

comm -23 <(dpkg-query -W -f '${db:Status-Abbrev}\t${Package}\n' | grep '^.[^nc]' | cut -f2 | sort) <(apt-cache dumpavail | sed -rn 's/^Package: (.*)/\1/p' | sort -u)

এর জন্য অতিরিক্ত প্যাকেজ ইনস্টল করার দরকার নেই, এটি তুলনামূলকভাবে দ্রুত। এটি আংশিকভাবে ইনস্টল করা প্যাকেজগুলিও খুঁজে পাবেন (তবে কেবলমাত্র কনফিগারেশন ফাইল থাকা বাকীগুলি খুঁজে পাবেন না; যদিও এটি সহজেই পরিবর্তন করা যেতে পারে)। দ্রষ্টব্য: প্যাকেজগুলি কোন আর্কিটেকচারের বিষয়টি যত্নশীল নয়।

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

আধুনিক অ্যাপ্লিকেশন ব্যবহার করুন:

 apt list --installed | awk -F/ '/\[installed,local\]/{print $1}'

তবুও অন্য বিকল্প চালানো হয়

ubuntu-support-status --show-unsupported

এবং "আর ডাউনলোডযোগ্য নয়:" বিভাগের অধীনে প্যাকেজের নামগুলি পড়ুন।


'অ্যাপটি তালিকা - ম্যানুয়াল-ইনস্টল | grep -v মহাজাগতিক 'মিথ্যা ধনাত্মকতা দেখায়। এই উত্তর আরও ভাল!
তমুসজেরোয়েস

1
@ টিমাসজেআরয়েস, হ্যাঁ, আমি এখন সম্পাদনার পরে মনে করি।
জার্নো

1

তদন্ত আরও তথ্য।

উবুন্টু-সমর্থন-স্থিতিটি 
প্রতিধ্বনি "$ (sudo apt-show showmanual | wc -l) প্যাকেজগুলি 'ম্যানুয়ালি ইনস্টল করা' হিসাবে চিহ্নিত করা হয়েছে।"

... উবুন্টু-সাপোর্ট-স্ট্যাটাস এবং অ্যাপট-চিহ্নের জন্য ইনস্টলেশন প্রয়োজন হতে পারে।


sudoসাথে ব্যবহার করার দরকার নেই apt-mark showmanual
জার্নো

ubuntu-support-statusঅপ্রচলিত প্যাকেজগুলির সংখ্যা তালিকাবদ্ধ করে, তবে প্যাকেজের নাম নয়।
জার্নো

1
এর আউটপুটটি পড়ুনubuntu-support-status --help
হান্নু

ওহ, ইঙ্গিতটির জন্য ধন্যবাদ
জার্নো

0

একটি পরিষ্কার উপায় থাকতে পারে, কিন্তু আমার মাথা উপরে আপনি করতে পারেন

dpkg -l | cut -f 3 -d ' ' > installed
xargs -n 1 --replace=X apt-cache search ^X$ < installed | cut -f 1 -d ' ' > available
diff installed available

installedফাইলটির প্রথম কয়েকটি লাইন পরিষ্কার করুন: এতে শিরোনাম থাকবে।

বোনাস যদি কেউ আমার সিনট্যাক্স হাইলাইটিং ঠিক করতে পারে ...


2
যদি আপনি dpkg -lইনস্টল করা প্যাকেজগুলির তালিকা পেতে আউটপুটটি ব্যবহার করতে চলেছেন তবে আপনার ফলাফলটি দ্বিতীয় কলামের 'i' এর সাথে রেখাগুলিতে সীমাবদ্ধ করা উচিত, কারণ ডিপি কেজি ইনস্টলড না হওয়া প্যাকেজগুলি তালিকাভুক্ত করবে (সম্ভবত মুছে ফেলা হয়েছে তবে শুদ্ধ নয়) । উদাহরণস্বরূপ, আপনার প্রথম কমান্ডটি পরিবর্তিত করা dpkg -l | grep '^.[^i]' | cut -f 3 -d ' ' এটি প্যাকেজগুলির একটি তালিকা ফিরিয়ে আনবে যা ইনস্টল করা নেই। (তবে একবারে ছিলেন)
স্টু স্টু

1
এছাড়াও, apt-cache search someinstalledpackageপ্যাকেজটি কোনও রেপো থেকে পাওয়া না গেলেও কিছু ফেরত দেবে, তাই আমি বিশ্বাস করি না এটি আদৌ কার্যকর হবে।
স্টু

1
@ ধীরে ধীরে আমি এটিকে এখানে রেখে যাব যে কেউ কোনও সিদ্ধান্তে পৌঁছে কিনা তা দেখতে, তবে আপনার উত্তর অবশ্যই আরও ভাল far আপনাকে +1
জেফ ফেরল্যান্ড

@ স্টিও dpkg -l | grep '^.[^i]' | cut -f 3 -d ' 'কিছু শিরোনাম লাইন প্রিন্ট করে।
জার্নো

এমনকি যদি এই উত্তরটি কাজ করে তবে এটি খুব ধীর হবে কারণ এটি apt-cache searchপ্রতিটি প্যাকেজের জন্য আলাদাভাবে চলবে ।
জার্নো

0

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

for i in `dpkg -l | grep '^i' | awk '{ print $2 }'`; do apt-cache show $i > /dev/null || echo $i; done

এবং কেনgrep '^i'
এবি

@ এএব ভাল পয়েন্ট; এটি জানায় না, প্যাকেজটি ইনস্টল করা আছে কি না, তবে প্যাকেজের পছন্দসই পদক্ষেপটি ইনস্টল করা হবে। দেখুন man dpkg-queryআরও তথ্যের জন্য।
জার্নো

এটি খুব ধীর
জর্নো

apt-cache showপ্যাকেজটি অ্যাভেলবে কিনা তা যাচাইয়ের জন্য ভাল নয়। যদি আপনি সংশ্লিষ্ট সংগ্রহস্থলটি অক্ষম করেন এবং অন্য কোনও সক্ষম ভাণ্ডার এটি না করে থাকে তবে এটি প্যাকেজটি দেখায়।
জার্নো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.