Sistemime birçok PPA'dan birçok paket yükledim. Depoları değil, fırlatıcı PPA'lardan yüklenen tüm paketleri listelemek istiyorum.
Bu komut satırı üzerinden mümkün mü?
Sistemime birçok PPA'dan birçok paket yükledim. Depoları değil, fırlatıcı PPA'lardan yüklenen tüm paketleri listelemek istiyorum.
Bu komut satırı üzerinden mümkün mü?
Yanıtlar:
Aşağıdaki komut paket adını ve ppa'sını döndürür (eğer bir ppa'dan yüklenmişse):
apt-cache policy $(dpkg --get-selections | grep -v deinstall$ | awk '{ print $1 }') | perl -e '@a = <>; $a=join("", @a); $a =~ s/\n(\S)/\n\n$1/g; @packages = split("\n\n", $a); foreach $p (@packages) {print "$1: $2\n" if $p =~ /^(.*?):.*?500 http:\/\/ppa\.launchpad\.net\/(.*?)\s/s}'
Detaylar:
dpkg --get-selections
sadece kurulu olan paketleri verir. grep -v deinstall$
awk '{ print $1 }'
sadece paket ismini döndürürperl -e '@a = <>; $a=join("", @a)'
tarafından döndürülen tüm satırları birleştirir apt-cache policy
$a =~ s/\n(\S)/\n\n$1/g;
Her paket bölümü arasına yeni bir satır ekler@packages = split("\n\n", $a);
öğe başına bir paket olmak üzere tüm paketleri içeren bir perl dizisidir.foreach $p (@packages) {print "$1: $2\n" if $p =~ /^(.*?):.*?500 http:\/\/ppa\.launchpad\.net\/(.*?)\s/s}
poliçede prio 500 bulunan bir ppa bulunursa paketin ve ppa'nın yazdırıldığı bir döngüdür.aptitude
Aşağıdaki komut, içinde aktif PPA'lar için kurulu paketlerin listesini gösterir sources.list
.
aptitude search '?narrow(?installed, ~Oppa)'
Reference: yetenek - Arama terimi referansı
aptitude
+
Uyarınca bu cevap ve bu yazı , aşağıdaki bash kodu kullanarak sisteminizde yüklü tüm PPA'lar tüm paketlerin listesini alabilirsiniz:
for APT in $(find /etc/apt/ -name \*.list); do
grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
USER=$(echo $ENTRY | cut -d/ -f4)
PPA=$(echo $ENTRY | cut -d/ -f5)
awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*$USER*$PPA*Packages
done
done
Ve uyarınca bu cevap , kullanmakta sisteminizde yüklü paketlerin listesini alabilirsiniz:
dpkg --get-selections | grep -v deinstall | cut -f1
Şimdi, PPA'lardan yüklenen tüm paketlerin bir listesini almak için bu iki fikri birleştirelim:
(for APT in $(find /etc/apt/ -name \*.list); do
grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
USER=$(echo $ENTRY | cut -d/ -f4)
PPA=$(echo $ENTRY | cut -d/ -f5)
awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*$USER*$PPA*Packages
done
done; dpkg --get-selections | grep -v deinstall | cut -f1) | sort | awk 'dup[$0]++ == 1'
Yüklenmiş bir paketin kaynağı, apt-cache
örneğin
$ apt-cache policy oracle-java7-installer
oracle-java7-installer:
Installed: 7u51-0~webupd8~7
Candidate: 7u51-0~webupd8~7
Version table:
*** 7u51-0~webupd8~7 0
500 http://ppa.launchpad.net/webupd8team/java/ubuntu/ precise/main i386 Packages
100 /var/lib/dpkg/status
Çıktısı apt-cache policy <package_name>
kaynağı içerir.
Biri PPA'lardan yüklenen paketlerin listesini almak için aşağıdaki betiği kullanabilir.
#!/bin/bash
echo "List of packages which are not installed from Ubuntu repository"
for i in `dpkg -l | grep "^ii" | awk '{print $2}'`
do
j=`apt-cache policy "$i" | grep "ppa.launchpad.net"`
if [ $? -eq 0 ]; then
echo "$i"
#echo "$i $j"
fi
done
gir1.2-syncmenu-0.1 500 http://ubuntu.univ-nantes.fr/ubuntu/ saucy/main amd64 Packages
google-chrome-stable
bir PPA'dan kurulmaz; sadece ayrı bir havuza sahip.
Synaptic'i yükleyin . Daha sonra "orijinli" veya diğer herhangi bir özel filtreye göre paketlere göz atabilirsiniz.