আর্চ লিনাক্সে প্যাকম্যান সহ alচ্ছিক নির্ভরতাগুলি তালিকাবদ্ধ করুন


23

আমি আর্চ লিনাক্স ব্যবহার করছি।

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


1
আমি আর্চ ব্যবহার করি নি, তবে "নির্ভরতা" alচ্ছিক শোনাচ্ছে না (এটি অন্যান্য ডিস্ট্রোজে নেই)।
jordanm

আফাইক, আমি মনে করি না আপনি সরাসরি প্যাকম্যান দিয়ে এটি করতে পারবেন। তবে এটি করার জন্য একটি ছোট স্ক্রিপ্ট লেখা খুব সম্ভব। ইনস্টল করা প্যাকেজগুলির তালিকার জন্য প্যাকম্যান জিজ্ঞাসা করুন। ইয়াওর্ট তাদের পিকেজিবিআইএলডিগুলি আনতে এবং অপ্টেটেপগুলির তালিকাটি পড়ুন। প্যাকম্যান-গিটের সর্বশেষতম সংস্করণে একটি প্রতিশ্রুতি রয়েছে যা জানিয়েছে যে ইতিমধ্যে অপটেডপগুলি ইনস্টল করা আছে কিনা।
darnir

@ জর্ডানম: যেমন নির্ভরতা ও alচ্ছিক নির্ভরতা বাড়ায়। Optdeps শুধুমাত্র একটি প্যাকেজের নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য প্রয়োজন। সুতরাং, আপনি যদি এই বৈশিষ্ট্যটি ব্যবহার না করেন তবে আপনার সত্যিকারের নির্ভরতার বোঝা দিয়ে আপনার সিস্টেমটি ফুটিয়ে তোলার দরকার নেই।
darnir

আমি ব্যবহার করেছিpacman -Qi | grep "Optional Deps" | grep -v None | grep -v installed
স্টিওস্কয়ার্ড

উত্তর:


5

আপনি ডাটাবেস জিজ্ঞাসা করতে এক্সপ্যাক ব্যবহার করতে পারেন pacman

কিছুটা এইরকম:

awk 'NF>=2' <(expac "%n %O") > optdeps

আপনার মেশিনে ইনস্টল করা সমস্ত প্যাকেজগুলির একটি তালিকা এবং optdependsপ্রতিটি ফাইলের জন্য ( %O) 1 ফাইল মুদ্রণ করবে optdeps। তারপরে আপনি এটি ইনস্টলড অপডেপেন্ডেজ প্যাকেজগুলির তালিকার তুলনায় বাছাই করতে পারেন।

man expacবিকল্পগুলির সম্পূর্ণ তালিকার জন্য দেখুন ।


1. এটি একটি উচ্চতর কেস, শূন্য নয়। কারণ আমাদের কোনও ফন্ট থাকতে পারে না যা দুজনের মধ্যে পার্থক্য করা ...


[poke] আমাদের এখন যেমন একটি ফন্ট আছে। :)
muru

4

এওআর-রেপোজিটরিতে (অর / প্যাকডেপ) একটি দুর্দান্ত ইউটিলিটি রয়েছে।

প্যাকডিপ-এর অনেকগুলি বিকল্প রয়েছে - কেবল একটি উদাহরণ - "থুনার-আর্কাইভ-প্লাগইন" এর জন্য optionচ্ছিক প্যাকেজগুলি সন্ধান করুন:

> pacdep -oppp thunar-archive-plugin
[...]
Optional dependencies:    6.16 MiB
  extra/file-roller     3.89 MiB
  extra/kdeutils-ark    1.12 MiB
  community/xarchiver   1.16 MiB
[...]

উপরের আউটপুটটির অর্থ noneচ্ছিক প্যাকেজগুলির মধ্যে কোনও ইনস্টল করা নেই। "Xarchiver" ইনস্টল করার পরে আউটপুট মত দেখাচ্ছে

[...]
Optional dependencies:    6.16 MiB
 local:    1.16 MiB
  xarchiver            1.16 MiB
 sync:     5.01 MiB
  extra/file-roller    3.89 MiB
  extra/kdeutils-ark   1.12 MiB
[...]

আমি এই উত্তরটি খুঁজে পেয়েছি (এর প্রথম অংশ)
http://mywaytoarch.tumblr.com/post/34979742718/easily-list-package-d dependency


3

এটি হ'ল দক্ষ নয়, তবে আপনি যা চান তা পাবেন (রঙে!):

pacman -Q > /tmp/paccache
for pkg in $(awk '{print $1}' /tmp/paccache) ; do 
   echo -n "$pkg => "; 
   for dep in $(pacman -Qi $pkg | awk -F: '/Optional Deps/{gsub(/[\<\>=].*/,"");print $NF;}' ) ; do 
       grep -q "$dep" /tmp/paccache && COLOR=32 ; echo -en "\e[1;${COLOR:-31}m${dep}\e[0;m " ; unset COLOR ; 
   done 
   echo
done 

আমি পুরোপুরি নিশ্চিত নই, কিন্তু না যে হওয়া উচিত ||পরিবর্তে &&পর grep, এবং তারপর লাইন বাকি প্রায় প্রথম বন্ধনী?
রাডার

এবং আরও গুরুত্বপূর্ণ, সম্ভবত এটি প্যাকম্যান আউটপুটটির "ডিপেন্ড করে চালু" বিভাগের পরিবর্তে "ptionচ্ছিক ডিপস" বিভাগটি ব্যবহার করা উচিত।
রুর্ড

উদাহরণস্বরূপ xmms2 এর সাথে :pacman -Qi xmms2 | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1 | cut -c19- | cut -d: -f1
i336_

2

যদিও আমি লক্ষ করেছি যে @ ডার্কহার্টের সমাধানটি আসলে কাজ করে না, এটি আমাকে একটি কাজ করার জন্য অনুপ্রাণিত করেছিল। (যদিও কোনও রঙ নেই)

আমি প্যাকেজ-ক্যোয়ারী ব্যবহার করছি , এক্সপ্যাকের পরিবর্তে অনুরূপ একটি সরঞ্জাম যা @ জেসনওয়ারিয়ান দ্বারা প্রস্তাবিত হয়েছিল, কারণ আমি এটি ইতিমধ্যে ইনস্টল করে রেখেছি (এটি ইয়োরোর্টের নির্ভরতা)। পরিবর্তে এক্সপ্যাক ব্যবহার করতে এটি পরিবর্তন করা তুচ্ছ হওয়া উচিত।

সমস্ত alচ্ছিক নির্ভরতাগুলির তালিকা বেশিরভাগ প্যাকেজ-ক্যোয়ারিতে কল করেই করা হয়। প্রথম লুপটি ব্যাখ্যাগুলি সরিয়ে দেয়, তাই কেবলমাত্র dependচ্ছিক নির্ভরতার জন্য প্যাকেজের নামগুলি থাকে; দ্বিতীয়টির জন্য লুপ দ্বিতীয়টিতে ফলাফল মুদ্রণের আগে তার প্রথম লাইনে ইতিমধ্যে ইনস্টল করা নির্ভরতাগুলি সরিয়ে দেয়।

#!/usr/bin/perl
use strict;
use warnings;

my %deps;
for (`package-query -Q -f'%n %O'`) {
    $deps{ (/^(\S+)/)[0] } = [/(\S+):/g];
}
my @pkgs = keys %deps;
for my $pkg (@pkgs) {
    my @missing_deps = grep { !($_ ~~ @pkgs) } @{ $deps{$pkg} };
    print "$pkg => @missing_deps\n" if @missing_deps;
}

2

এই কৌতুক করতে হবে:

comm -23 <(expac -l"\n" "%o" | sort -u) <(expac -l"\n" "%n\n%S" | sort -u)

commসমস্ত alচ্ছিক নির্ভরতা, দ্বিতীয় ইনপুট সমস্ত ইনস্টল করা প্যাকেজ এবং তাদের 'সরবরাহ' বৈশিষ্ট্যগুলি তালিকাভুক্ত করার জন্য প্রথম ইনপুট । উভয় তালিকাগুলি বাছাই করা হয় এবং শুধুমাত্র প্রতিটি কারণে প্রতিটি উপাদান ধারণ করে sort -u। তারপরে শুধুমাত্র লাইনগুলি প্রদর্শিত হবে যা প্রথমটিতে রয়েছে তবে দ্বিতীয় তালিকায় নেই।

(@ আরচেমার এর পরামর্শ অন্তর্ভুক্ত করতে সম্পাদিত)


0

কখনও কখনও আপনাকে পিছনের দিকে কাজ করতে হবে ... প্রথমে সমস্ত অ-alচ্ছিক নির্ভর করে, তারপরে সম্পূর্ণ তালিকার সাথে ক্রস-রেফারেন্স খুঁজে বার করুন, তারপরে ইউনিট ব্যবহার করুন। এটি ইনস্টল করা alচ্ছিক নির্ভরতার তালিকা তৈরি করে।

সমস্ত ইনস্টলড খুঁজুন

pacman -Q

সমস্ত অ-alচ্ছিক খুঁজুন:

pacman -Qent

স্বতন্ত্র এন্ট্রিগুলি অবশ্যই alচ্ছিক হতে হবে:

(pacman -Q; pacman -Qent) | sort | uniq -u 

Missingচ্ছিক অনুপস্থিত তালিকা তৈরির বিবরণ বর্ণনার সাথে নির্ভর করে, সুন্দর নয়, তবে এটি কার্যকর হয়।

pacman -Q > /tmp/paccache; for pkg in $(awk '{print $1}' /tmp/paccache); do pacman -Qi $pkg | grep "^Optional Deps" | grep -v None >/dev/null && echo $pkg >> /tmp/hasdeps; done

for pkg in $(awk '{print $1}' /tmp/hasdeps); do echo -ne "Package: $pkg ___ "; (pacman -Qi $pkg | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1) | grep -v installed; echo ___; done | grep -v "___ ___" | sed -e 's/Optional Deps/ /' -e 's/___//' | sed -e 's/ \+/ /g'

0

আমি কেবল জিএনইউ সেডে চেষ্টা করেছি কিন্তু

yay -Qi | sed -n '/Optional Deps/{:l s/.* \([a-zA-Z0-9.\-]\+\):.*/\1/p; n; /Required By/!bl}'

এটি কাজ করেছে (আপনার পছন্দ অনুসারে বাছাই / ইউনিক ব্যবহার করুন)।

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