数ギガバイトのパケットがキャッシュに蓄積される状況は、多くの人に知られていると思います。 標準ソリューション-アンインストールされたパッケージの削除
$ apt-get clean
このコマンドは、ディレクトリ「/ var / cache / apt / archives /」をクリアし、すべてを削除します。
$ apt-get autoclean
ローカルキャッシュパッケージの古いバージョンだけでなく、ダウンロードできないものもすべて削除されます。
ただし、多くの場合、他のすべてに触れることなく、古いパッケージのみを削除する必要があります。
ArchLinuxでこの問題に遭遇したとき、私はすぐにbashに小さなスクリプトを書きました。
#!/bin/bash ## CACHE_DIR="/var/cache/apt/archives" ## apt-get #CACHE_DIR="/var/cache/pacman/pkg" ## pacman' ## EXT="deb" #EXT="pkg.tar.gz" ## ArchLinux' ## , FILTER="sed s/_[0-9].*_//" #FILTER="sed s/-[0-9].*//" ## ArchLinux' function remove { echo -e "$1\t\t\t[removed]"; rm -f $1; } cd "$CACHE_DIR"; ## echo "Changed working dir on `pwd`"; pkgs=(`ls | grep $EXT`); ## hashs=(`ls | grep $EXT | $FILTER`); ## pkgsNum=${#pkgs[@]} ## echo "$pkgsNum files in cache now"; for (( i=0; i<$pkgsNum-1; i++ )); do #echo "cheking package ${pkgs[$i]}..."; for (( j=$i+1; j<${pkgsNum}; j++ )); ## hashes do if [ ${hashs[$i]} = ${hashs[$j]} ]; then ## if [ ${pkgs[$i]} -ot ${pkgs[$j]} ]; then ## remove ${pkgs[$i]}; break; else remove ${pkgs[$j]}; fi fi done done
このスクリプトは重複するパッケージを検索し、作成日が遅いものを除くすべてを削除します-パッケージのバージョンを比較するよりもはるかに簡単です。
pacmanの場合、説明されている問題は
repo-cleanユーティリティを使用して解決されますが、プログラムはC ++ではありますが、ArchLinux専用に作成されました。 したがって、
$ yaourt -S repo-clean
コンソールであなたに! =)