以前にいくつかの外部ソースを追加しました/etc/apt/sources.list.d
が、そのうちの1つを削除したいと思います。私もしたい:
- そのソースからのみすべてのパッケージを削除する
- すべてのパッケージを元のソースのバージョンに戻す
- または、このソースからすべてのパッケージのリストを作成して、この手順を手動で実行できるようにします
これどうやってするの?
以前にいくつかの外部ソースを追加しました/etc/apt/sources.list.d
が、そのうちの1つを削除したいと思います。私もしたい:
これどうやってするの?
回答:
削除するリポジトリの設定によっては、apt list --installed
アンインストールまたはダウングレードする必要があるパッケージを特定するのに十分な情報が提供される場合があります。別のオプションは、リポジトリが一意の「起源」を定義する場合、使用することですaptitude search '~i ~Oorigin'
(origin
必要に応じて置き換えます)。
apt-cache policy
設定されたすべてのリポジトリのオリジンが表示さo=
れます(出力で探します)。
または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