Linuxのパッケージキャッシュとは?容量削減のための完全ガイド

Linux

「ディスクの空き容量が減ってきた…」と感じたことはありませんか?

Linuxを長く使っていると、気づかないうちにパッケージキャッシュという一時ファイルが溜まっていきます。

数GBから場合によっては10GB以上にもなることがあるんです。

今回は、Linuxのパッケージキャッシュとは何か、どこにあるのか、そして安全に削除して容量を確保する方法を、初心者の方にも分かりやすく解説していきます。


スポンサーリンク
  1. パッケージキャッシュとは何か?
    1. ダウンロードしたパッケージの「控え」
    2. なぜキャッシュが必要なのか?
  2. パッケージキャッシュの場所
    1. ディストリビューション別の保存先
  3. キャッシュサイズの確認
    1. どれだけ溜まっているか調べる
    2. 全体的なディスク使用状況
  4. キャッシュのクリーンアップ(Ubuntu/Debian)
    1. APT のキャッシュ削除
    2. 古いキャッシュだけ削除
    3. 不要なパッケージの削除
  5. キャッシュのクリーンアップ(CentOS/RHEL/AlmaLinux)
    1. YUM のキャッシュ削除
    2. 特定のキャッシュのみ削除
    3. DNF のキャッシュ削除(CentOS 8+、Fedora)
    4. 不要なパッケージの削除
  6. キャッシュのクリーンアップ(Arch Linux)
    1. Pacman のキャッシュ削除
    2. 手動での削除
    3. 自動クリーンアップの設定
  7. キャッシュのクリーンアップ(その他のディストリビューション)
    1. openSUSE(Zypper)
    2. Gentoo(Portage)
    3. Flatpak
    4. Snap
  8. 自動クリーンアップの設定
    1. APT の自動クリーンアップ
    2. YUM/DNF の自動クリーンアップ
    3. Pacman の自動クリーンアップ(前述)
  9. キャッシュ削除の影響
    1. 削除しても安全なのか?
    2. デメリット
    3. いつ削除すべきか?
  10. 容量確保のその他の方法
    1. ログファイルのクリーンアップ
    2. 孤立したパッケージの削除
    3. 一時ファイルの削除
    4. Docker イメージのクリーンアップ
  11. トラブルシューティング
    1. キャッシュ削除後にエラーが出る
    2. ディスク容量がまだ不足
    3. 権限エラー
    4. ロックファイルのエラー
  12. よくある質問
    1. どのくらいの頻度でクリーンアップすべき?
    2. cleanとautocleanの違いは?
    3. 削除して後悔することはある?
    4. キャッシュの保持期間を設定できる?
    5. サーバー環境でも実行して良い?
  13. まとめ:定期的なキャッシュクリーンアップで快適な環境を

パッケージキャッシュとは何か?

ダウンロードしたパッケージの「控え」

パッケージキャッシュとは、ソフトウェアをインストールする際にダウンロードしたパッケージファイルが保存される場所です。

イメージで理解する:

アプリをインストールするとき、Linuxは以下のステップを踏みます:

  1. リポジトリからパッケージをダウンロード
  2. ローカルにキャッシュとして保存(ここが残る)
  3. パッケージをインストール
  4. 完了

インストール後も、ダウンロードしたファイルが残り続けるんです。

なぜキャッシュが必要なのか?

メリット:

再インストールが高速:
一度ダウンロードしたパッケージは、キャッシュから取得できるので再ダウンロード不要です。

ダウングレードが可能:
古いバージョンのパッケージがキャッシュに残っていれば、問題が起きた時に戻せます。

オフライン環境での作業:
キャッシュがあれば、インターネット接続なしでも再インストールできることがあります。

デメリット:

ディスク容量の圧迫:
時間が経つと、大量のキャッシュが溜まります。

不要なファイルの蓄積:
古いバージョンや、すでにアンインストールしたパッケージのキャッシュも残ります。


パッケージキャッシュの場所

ディストリビューション別の保存先

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/

lockpartialディレクトリだけが残ります。

古いキャッシュだけ削除

インストール済みパッケージの古いバージョンのみ削除:

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 cleanyum 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環境を維持しましょう!

コメント

タイトルとURLをコピーしました