1つのDebianソースからすべてのパッケージをアンインストールするにはどうすればよいですか?


8

以前にいくつかの外部ソースを追加しました/etc/apt/sources.list.dが、そのうちの1つを削除したいと思います。私もしたい:

  • そのソースからのみすべてのパッケージを削除する
  • すべてのパッケージを元のソースのバージョンに戻す
  • または、このソースからすべてのパッケージのリストを作成して、この手順を手動で実行できるようにします

これどうやってするの?

回答:


11

削除するリポジトリの設定によっては、apt list --installedアンインストールまたはダウングレードする必要があるパッケージを特定するのに十分な情報が提供される場合があります。別のオプションは、リポジトリが一意の「起源」を定義する場合、使用することですaptitude search '~i ~Oorigin'origin必要に応じて置き換えます)。

(これは一般的な回答です。質問編集して、削除するソースを正確に指定する場合は、特定の回答を追加できます。)


これは有望に見えますが、どういうわけか起源のリストを入手できますか?
david.libremone 2017年

2
はい、apt-cache policy設定されたすべてのリポジトリのオリジンが表示さo=れます(出力で探します)。
Stephen Kitt 2017年

3

またはdpkgで:

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i yourkeyword

例えば

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i multimedia

戻り値:

audacious                                1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins                        1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins-data                   1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main    
snipp

これは、deb-multimedia.orgのパッケージを示しています。同じ結果dpkg-query -W -f='${Section}\t\t${Package}\n' | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | egrep -i multimedia

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.