一般的な質問:
コマンドapt-get update
について説明してもらえますか? いつ、本当に使用する必要がありますか?
備考
詳細な回答を入力してください 。バージョンが本当に詳細でない限り、manページのコピーだけではありません(以下にmanページから1つの定義を入れます)。
apt-get update :ソースからパッケージインデックスファイルを再同期するために使用されます。使用可能なパッケージのインデックスは、/ etc / apt / sources.list(5)で指定された場所からフェッチされます。更新は、アップグレードまたはdist-upgradeの前に必ず実行する必要があります。
サブ質問:
- パッケージインデックスはどこに保存されますか?データベース上?ファイルに?
-
apt-get install
を実行するとどうなりますか キャッシュを更新せずに?リモートパッケージが存在しなくなり、リンクが切断される可能性はありますか? - デブリポジトリについて合意された政治はありますか?たとえば、リポジトリにはパッケージの最後のバージョンのみを含める必要がありますか、それとも逆に、特定のディストリビューションリリースで利用可能なすべてのバージョンを含める必要がありますか?
コンテキスト
Dockerフレームワークを研究しているので、質問します。その機能の1つは、 Dockerfileです。 、このファイルからいくつかの命令を実行することにより、一種のOSイメージをビルドできます。
このイメージの1つのプロパティは、コンテキスト(ビルドの時間など)に関係なく、常に同じである必要があることです。
apt-get update
を起動すると心配です 異なる時間にコマンドを実行すると、結果が異なるため、私の画像も異なります。
承認された回答:
apt-get update
利用可能なパッケージのリストをダウンロードします。
パッケージのリストは時間の経過とともに変更される可能性があります。新しいパッケージが追加され、古いパッケージが削除されます。したがって、本当に古いキャッシュがあり、apt-get install
を実行しようとした場合 、存在しなくなったパッケージをダウンロードしようとする場合があります。
古いパッケージがリポジトリに保持される期間は、リポジトリのメンテナ(ディストリビューション)次第です。そのため、キャッシュが非常に古くなっている可能性があるdockerのようなものを使用している場合は、常にapt-get update
を実行する必要があります。 パッケージをインストールする前に。
パッケージを削除および追加する理由は、主にバグ修正とセキュリティ更新です。ただし、PPAなどのサードパーティのリポジトリを使用している場合は、何でもかまいません。
関連:「jobs:notfound」というエラーメッセージが表示されるのはいつですか。企業環境でコンテナー化にdockerのようなものを使用する場合は、コンテナーを1回ビルドしてから、そのコンテナーをさまざまなリリース環境(開発、ステージング、本番)に移動し、毎回コンテナーを再構築しないようにする必要があります。これにより、テストされていない別のコンテナを取得しないようになります。
キャッシュファイルがどこにあるかという質問に答えるには、/var/lib/apt/lists
。