/ var / cache / aptコンテンツを手動で削除しても安全ですか?


21

ディスクスペースが非常に限られている組み込みシステムでは、フォルダ/var/cache/aptに約700MBといくつかsrcpkgcache.bin.*の大きな*.binファイルがいっぱいです。

実行sudo apt-get cleanしても目に見える違いはありませんでした。

これらの*.bin*ファイルを手動で削除しても安全ですか?


6
Ubuntu 14.04の時点では*.bin、上記のフォルダー内のファイルを完全に削除できます-現在apt関連のプロセスが実行されていないことを前提としています。次apt-get update*.binファイルを再生成します。この質問は明らかにされていない内のファイルについては/var/cache/apt/archives、しかし、ファイル/var/cache/apt/*.bin。大きな違い。apt-get clean前者はを発行することでクリーニングできますが、後者は手動で削除する必要があります。明らかに、質問を終了する投票者は質問を適切に読んでいない。残念ながら、賞金で私の担当者の一部を授与した後、再開するには投票できません。
0xC0000022L

3
これは重複ではありません。リンクされた回答は、archives内のサブディレクトリに関するもので/var/cache/apt/、これは*.bin*ファイルに関するものです。
オラフディーチェ16

回答:


11

あんまり。これらのファイルは、システムが利用可能なものとそうでないものを判断するのに役立ちます。そのディレクトリを空にすると、apt-getシステムが破損します。ここにいくつかのヒントがあります。

まず、自動クリーニング

を追加

DPkg::Post-Invoke { "apt-get clean"; };

の終わりまで/etc/apt/apt.conf。これにより、aptおよびdpkgプロセスに時間がかかりますが、キャッシュディレクトリが常にクリーンになるようになります。

次に、アーカイブを削除します

(使用していない)すべてのソースアーカイブを削除して無効にすることから始めます。組み込みシステムでは、おそらくそれらは必要ありません。次に、使用されていないすべてのアーカイブを削除します。apt-cache policyよくわからない場合は、実行してパッケージのリポジトリを確認できます。

アーカイブの追加削除

一部のPPAでは、必要なパッケージが1つまたは2つだけの場合に膨大な数のパッケージを使用することを恐れています。これらのPPAを無効にして、debファイルを手動でインストールしてみてください。これらの場合はスペースを節約できますが、自動更新は失われます。dpkgは依存関係を処理するため、thing-with-tons-of-deps.debをインストールapt-get -f installしてから依存関係を取得するために実行できることに注意してください。

完全に極端な回答1

組み込みシステムについて話していたので、メインのレポジトリの90%は役に立たないでしょう。これを処理するには、独自のapt-getリポジトリサーバー実行します(このリンクを参照)。簡単ではありません。1台のマシンのPIAです。しかし、これらのマシンがいくつかある場合、それは完全に価値があります。(aptリポジトリサーバーは、実際に使用するパッケージのサブセットのみをホストできます。すべてをミラーリングする必要はありません)

完全に極端な回答2

スペースが本当に大きな問題である場合は、aptをすべて無効にして、dpkgを使用した手動インストールに戻すことができます。いくつかの組み込みシステムでこれをしなければなりませんでした。動作しますが、管理者にとっては悪夢です。


これは素晴らしい回答です(特に極端な回答)が、Ubuntu 14.04には/etc/apt/apt.confは存在しません。現在のベストプラクティスは何ですか?
ザチャイサン

1
JUstは、ファイルが存在しない場合は作成します。まだ読み込まれます。
coteyr

5
なぜ、*.binファイルを削除するのは安全ではないと書いているのですか?を実行すると、apt-get updateこれらのファイルが最初から再生成されます(テスト済み)。たとえば、私のユースケースは、LXCコンテナテンプレートを作成し、可能な限りアーカイブを削除することです。安全でない理由はわかりません。そして、あなたの答えは理由を示すものではなく、単に安全でないと述べているだけです。Ubuntu 14.04で完全に安全であることをテストしました。
0xC0000022L

1
apt-cache cleandpkg呼び出しに含めるとキャッシュがapt-cache cleanきれいになると言っていますが、ユーザーは何もきれいにしていないと言います。また、あなたの答えは完全に間違って dpkgのは、使用しないので/var/cache/apt/*、パッケージ統計のための通知を取得するコンテンツを。
アンワル

1
apt-getのmanページには、明確の機能を説明clean取得したパッケージのローカルリポジトリうち*クリーンクリアとして。/ var / cache / apt / archives /および/var/cache/apt/archives/partial/.*からロックファイルを除くすべてを削除します。*危険な場合、そのような機能はありません。
アンワル

3

あなたはもちろん、削除することができますpkgcache.binsrcpkgcache.bin、何も起こりません。apt-get updateそれらを再作成するために実行します。


...そして、これは.debファイルの削除とは無関係に本当ですか?
アインポクルム-モニカを

1

キープpkgcache.binsrcpkgcache.bin、あなたは安全に他の人を削除することができます。ディレクトリに触れないでください!


はい、ありがとう。*bin.*ファイルを一時的にバックアップフォルダーに移動しました。しかし、apt-getがキャッシュのキャッシュを管理するのはなぜですか?キャッシュディレクトリは、本来一時ストレージである必要があります。
ysap

この問題はすでにバグ報告されています。:) ここを
-Frantique

もちろん、pkgcache.binとsrcpkgcache.binを削除しても何も起こりません。apt-get updateはそれらを再作成します。
トマスM

0

もちろん、このためにNFS共有(ネットワークファイルシステム)を作成できます。これらのファイルをサーバーに残し、パッケージを更新/インストールする場合にのみ共有をマウントします。組み込み環境では、通常、インストールは比較的静的です。

sshfsはもう1つの優れたオプションで、セットアップがはるかに簡単です(基本的には標準のSSHのみが必要です)が、オーバーヘッドが大きくなります(遅い)。


aptの実行を完全に制御できない場合を除き、これは技術的に機能するはずです。このようなものを使用する場合は、apt-get updateを実行するcronジョブなどの「自動化された」タスクを無効にする必要があります。
coteyr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.