「ディスクの空き容量が減ってきた…」と感じたことはありませんか?
Linuxを長く使っていると、気づかないうちにパッケージキャッシュという一時ファイルが溜まっていきます。
数GBから場合によっては10GB以上にもなることがあるんです。
今回は、Linuxのパッケージキャッシュとは何か、どこにあるのか、そして安全に削除して容量を確保する方法を、初心者の方にも分かりやすく解説していきます。
パッケージキャッシュとは何か?

ダウンロードしたパッケージの「控え」
パッケージキャッシュとは、ソフトウェアをインストールする際にダウンロードしたパッケージファイルが保存される場所です。
イメージで理解する:
アプリをインストールするとき、Linuxは以下のステップを踏みます:
- リポジトリからパッケージをダウンロード
- ローカルにキャッシュとして保存(ここが残る)
- パッケージをインストール
- 完了
インストール後も、ダウンロードしたファイルが残り続けるんです。
なぜキャッシュが必要なのか?
メリット:
再インストールが高速:
一度ダウンロードしたパッケージは、キャッシュから取得できるので再ダウンロード不要です。
ダウングレードが可能:
古いバージョンのパッケージがキャッシュに残っていれば、問題が起きた時に戻せます。
オフライン環境での作業:
キャッシュがあれば、インターネット接続なしでも再インストールできることがあります。
デメリット:
ディスク容量の圧迫:
時間が経つと、大量のキャッシュが溜まります。
不要なファイルの蓄積:
古いバージョンや、すでにアンインストールしたパッケージのキャッシュも残ります。
パッケージキャッシュの場所
ディストリビューション別の保存先
Ubuntu/Debian(APT):
/var/cache/apt/archives/
CentOS/RHEL/AlmaLinux(YUM/DNF):
/var/cache/yum/
/var/cache/dnf/
Fedora(DNF):
/var/cache/dnf/
Arch Linux(Pacman):
/var/cache/pacman/pkg/
openSUSE(Zypper):
/var/cache/zypp/packages/
キャッシュサイズの確認
どれだけ溜まっているか調べる
キャッシュを削除する前に、どれだけの容量を使っているか確認しましょう。
Ubuntu/Debian(APT):
sudo du -sh /var/cache/apt/archives/
出力例:
2.3G /var/cache/apt/archives/
CentOS/RHEL/AlmaLinux(YUM):
sudo du -sh /var/cache/yum/
Fedora/CentOS 8+(DNF):
sudo du -sh /var/cache/dnf/
Arch Linux(Pacman):
sudo du -sh /var/cache/pacman/pkg/
全体的なディスク使用状況
システム全体の容量を確認したい場合:
df -h
出力例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 35G 13G 74% /
/(ルート)の使用率が高い場合、パッケージキャッシュのクリーンアップが有効です。
キャッシュのクリーンアップ(Ubuntu/Debian)
APT のキャッシュ削除
すべてのキャッシュを削除:
sudo apt clean
効果:/var/cache/apt/archives/内のすべてのパッケージファイル(.debファイル)が削除されます。
確認:
ls /var/cache/apt/archives/
lockとpartialディレクトリだけが残ります。
古いキャッシュだけ削除
インストール済みパッケージの古いバージョンのみ削除:
sudo apt autoclean
動作:
- 現在インストール可能なパッケージのキャッシュは保持
- 古くなったバージョンや、リポジトリから削除されたパッケージのキャッシュを削除
cleanとautocleanの違い:
| コマンド | 削除対象 | 安全性 |
|---|---|---|
apt clean | すべてのキャッシュ | 安全 |
apt autoclean | 古いキャッシュのみ | より安全 |
不要なパッケージの削除
キャッシュだけでなく、不要なパッケージ本体も削除できます。
依存関係で自動インストールされたが、もう不要なパッケージを削除:
sudo apt autoremove
完全削除(設定ファイルも含む):
sudo apt autoremove --purge
キャッシュクリーンと組み合わせ:
sudo apt autoremove && sudo apt clean
キャッシュのクリーンアップ(CentOS/RHEL/AlmaLinux)
YUM のキャッシュ削除
すべてのキャッシュを削除:
sudo yum clean all
削除される内容:
- ダウンロードしたパッケージ
- メタデータ
- ヘッダー情報
- データベースキャッシュ
特定のキャッシュのみ削除
パッケージキャッシュのみ:
sudo yum clean packages
メタデータのみ:
sudo yum clean metadata
期限切れのキャッシュ:
sudo yum clean expire-cache
DNF のキャッシュ削除(CentOS 8+、Fedora)
すべてのキャッシュを削除:
sudo dnf clean all
パッケージのみ:
sudo dnf clean packages
メタデータのみ:
sudo dnf clean metadata
不要なパッケージの削除
sudo yum autoremove
または:
sudo dnf autoremove
キャッシュのクリーンアップ(Arch Linux)

Pacman のキャッシュ削除
Arch Linuxのキャッシュは、無制限に増え続けるため、定期的なクリーンアップが重要です。
paccacheツールを使用(推奨):
pacman-contribパッケージに含まれています。
インストール:
sudo pacman -S pacman-contrib
最新3バージョンだけ保持して古いものを削除:
sudo paccache -r
最新1バージョンだけ保持:
sudo paccache -rk1
アンインストールしたパッケージのキャッシュをすべて削除:
sudo paccache -ruk0
手動での削除
すべてのキャッシュを削除:
sudo rm -rf /var/cache/pacman/pkg/*
注意:
これを実行すると、すべてのバージョン履歴が失われます。
自動クリーンアップの設定
定期的に自動実行するには、systemdタイマーを使います。
タイマーの有効化:
sudo systemctl enable paccache.timer
sudo systemctl start paccache.timer
これで、毎週自動的にキャッシュがクリーンアップされます。
キャッシュのクリーンアップ(その他のディストリビューション)
openSUSE(Zypper)
すべてのキャッシュを削除:
sudo zypper clean -a
パッケージのみ:
sudo zypper clean
Gentoo(Portage)
distfilesのクリーンアップ:
sudo eclean-dist --deep
Flatpak
Flatpakアプリのキャッシュも溜まります。
未使用のランタイムとキャッシュを削除:
flatpak uninstall --unused
Snap
Snapも古いバージョンを保持します。
古いバージョンを削除:
sudo snap set system refresh.retain=2
これで、最新2バージョンだけが保持されます。
自動クリーンアップの設定
APT の自動クリーンアップ
設定ファイルの作成:
sudo nano /etc/apt/apt.conf.d/20auto-clean
内容:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
意味:
- 毎日パッケージリストを更新
- 7日ごとに
apt autocleanを実行
YUM/DNF の自動クリーンアップ
設定ファイルを編集:
sudo nano /etc/yum.conf
または:
sudo nano /etc/dnf/dnf.conf
追加:
keepcache=0
これで、インストール後に自動的にキャッシュが削除されます。
注意:
再インストール時に毎回ダウンロードが必要になります。
Pacman の自動クリーンアップ(前述)
systemdタイマーを使用します(上記参照)。
キャッシュ削除の影響
削除しても安全なのか?
結論:安全です。
キャッシュはあくまで「控え」なので、削除してもシステムには影響ありません。
削除後も:
- インストール済みのソフトウェアは動作し続ける
- 新たにインストールする際は、再ダウンロードされる
- システムの安定性には影響しない
デメリット
再インストールに時間がかかる:
キャッシュがないと、パッケージを再ダウンロードする必要があります。
ダウングレードが困難:
古いバージョンのキャッシュがないと、問題が起きた時に戻せません。
オフライン作業が不可:
インターネット接続が必須になります。
いつ削除すべきか?
削除を検討すべき状況:
- ディスク容量が不足している
- 長期間システムを更新していない
- キャッシュが数GB以上溜まっている
- パフォーマンスの最適化を図りたい
定期的な実施:
月に1回程度、apt cleanやyum clean allを実行するのがおすすめです。
容量確保のその他の方法
ログファイルのクリーンアップ
パッケージキャッシュ以外にも、ログファイルが容量を圧迫することがあります。
journalのクリーンアップ:
# 7日以前のログを削除
sudo journalctl --vacuum-time=7d
# 500MB以下に制限
sudo journalctl --vacuum-size=500M
古いログの削除:
# 圧縮されたログを削除
sudo find /var/log -name "*.gz" -delete
# 30日以前のログを削除
sudo find /var/log -name "*.log" -mtime +30 -delete
孤立したパッケージの削除
Arch Linuxの場合:
# 孤立したパッケージの一覧
pacman -Qtdq
# 削除
sudo pacman -Rns $(pacman -Qtdq)
Ubuntu/Debianの場合:
# deborphanをインストール
sudo apt install deborphan
# 孤立したパッケージの削除
sudo apt autoremove --purge $(deborphan)
一時ファイルの削除
# /tmpのクリーンアップ(再起動で自動削除されるが)
sudo rm -rf /tmp/*
# サムネイルキャッシュの削除
rm -rf ~/.cache/thumbnails/*
# ブラウザキャッシュの削除(例:Firefox)
rm -rf ~/.cache/mozilla/
Docker イメージのクリーンアップ
Dockerを使っている場合:
# 未使用のイメージ、コンテナ、ボリュームを削除
docker system prune -a
トラブルシューティング

キャッシュ削除後にエラーが出る
症状:
パッケージのインストールやアップデートでエラー。
原因:
メタデータやインデックスも削除された可能性。
対処法:
Ubuntu/Debian:
sudo apt update
CentOS/RHEL:
sudo yum makecache
Arch Linux:
sudo pacman -Sy
ディスク容量がまだ不足
確認:
# どのディレクトリが大きいか確認
sudo du -sh /* | sort -hr | head -10
よくある原因:
- ログファイル(
/var/log) - Dockerイメージ(
/var/lib/docker) - スナップショット(
/var/lib/snapd) - データベースファイル
- ユーザーデータ(
/home)
権限エラー
症状:
Permission denied
対処法:
キャッシュのクリーンアップには管理者権限が必要です。
sudo apt clean
sudoを付け忘れないようにしましょう。
ロックファイルのエラー
症状:
Could not get lock /var/lib/apt/lists/lock
原因:
別のパッケージ管理プロセスが実行中。
対処法:
1. 実行中のプロセスを確認:
ps aux | grep apt
2. 完了を待つか、安全に終了させる
3. どうしても必要なら、ロックファイルを削除:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
4. パッケージデータベースを修復:
sudo dpkg --configure -a
sudo apt update
よくある質問
どのくらいの頻度でクリーンアップすべき?
推奨頻度:
月に1回:
sudo apt clean && sudo apt autoremove
ディスク容量に余裕がある場合:
3ヶ月に1回程度でも問題ありません。
自動化する場合:
週に1回、apt autocleanを実行する設定がおすすめです。
cleanとautocleanの違いは?
apt clean:
- すべてのキャッシュを削除
- より多くの容量を確保
- 再ダウンロードが必要
apt autoclean:
- 古いバージョンのみ削除
- 現在使用可能なパッケージのキャッシュは保持
- より安全
迷ったら:apt cleanで問題ありません。再ダウンロードは自動的に行われます。
削除して後悔することはある?
基本的にありません。
ただし、以下の状況では注意:
インターネット接続が不安定:
再ダウンロードに時間がかかる。
従量制課金のモバイル回線:
データ通信量が増える。
オフライン作業が多い:
キャッシュがあると便利。
これらに該当しなければ:
安心して削除してください。
キャッシュの保持期間を設定できる?
Arch Linux(paccache):
# 最新3バージョンを保持
sudo paccache -rk3
APT:
自動的に保持期間を設定する機能は限定的ですが、autocleanである程度管理できます。
YUM/DNF:
keepcache=0
で、保持しない設定にできます。
サーバー環境でも実行して良い?
はい、問題ありません。
むしろ、サーバーではディスク容量管理が重要です。
注意点:
- メンテナンスウィンドウで実行
- バックアップを取ってから
- ログを確認して異常がないか確認
まとめ:定期的なキャッシュクリーンアップで快適な環境を
パッケージキャッシュは、時間とともに確実に増えていきます。
定期的にクリーンアップすることで、ディスク容量を有効活用できます。
この記事のポイント:
- パッケージキャッシュは再インストール用の控え
- 放置すると数GB以上溜まる
- Ubuntu/Debianは
apt clean - CentOS/RHELは
yum clean all - Arch Linuxは
paccache -r - 削除してもシステムに影響なし
- 定期的な実施が推奨(月1回程度)
- 自動化も可能
- ログファイルも併せて確認
- ディスク容量不足の主要原因の一つ
今すぐ実行:
# Ubuntu/Debian
sudo apt clean && sudo apt autoremove
# CentOS/RHEL
sudo yum clean all && sudo yum autoremove
# Arch Linux
sudo paccache -r
数秒の作業で、数GBの容量を確保できることも珍しくありません。
定期的なメンテナンスで、快適なLinux環境を維持しましょう!


コメント