web-dev-qa-db-ja.com

apt-getリストをクリアする

Debianベースの組み込みLinuxのイメージを構築しています。そのイメージのベースとして使用するデバイスで以前にapt-get updateを使用したため、/var/lib/apt/listsの下のリストは非常に大きくなります(サイズがほぼ100 MB)。

apt-get機能を維持したいので(適切なリポジトリを削除したくありません)、これらのリストで使用されていたスペースを解放したいと思います(リストはイメージのサイズのほぼ2倍です)。

誰かがそれを行う方法を知っていますか? /var/lib/apt/listsの下のファイルを削除できますか?

37
Dakkaron

あなたはただ使うことができます:

rm /var/lib/apt/lists/*

これにより、パッケージリストが削除されます。リポジトリは削除されず、/etc/apt/sources.listの構成ファイルで構成されます。起こり得ることは、パッケージリストを更新しない限り、apt-cacheなどのツールがパッケージ情報を取得できないことです。また、パッケージに関する情報がないため、apt-get installE: Unable to locate package <package>で失敗します。

次に、単に実行します:

apt-get update

これらのリストを書き換えると、コマンドは再び機能します。

とにかく、何かをインストールする前にapt-get updateを実行することをお勧めします。

52
chaos

リストは何が利用できるかについての知識であるため、リストを削除すると、何もインストールできなくなります。これは、ソースリストからリポジトリを削除することとまったく同じです(これは、実行したくないと言います)。

1つのオプションは、リストを圧縮し、次のupdateの前にそれらを解凍することを忘れないことです。

私がよく行うこと(特に、追加のソースを試したい場合)は、ディレクトリ/etc/apt/sources.availableを作成し、配布用のエントリを追加することです。次に、/etc/apt/sources.list.dからシンボリックリンクを作成してサブセットを簡単に有効にし、それらのシンボリックリンクを削除して無効にすることができます。

空のソースリストを使用すると、apt-get updateを実行できます。これにより、/var/lib/apt/listsがクリアされます。次に、適切なソースを/etc/apt/sources.list.dにリンクし直しますが、実際にそれらを使用する予定があるときまでは、updateを使用しないでください。

6
Toby Speight