/ var / cache / apt / archives /にdebファイルがあるのはなぜですか?


回答:


21

背景情報

Ubuntu(およびUbuntuのベースとなっているDebian)には、一般に「パッケージマネージャー」と呼ばれる2つのことがあります:dpkg、およびAPT。

dpkgは、パッケージをインストールおよび削除し、インストールされているパッケージ、インストールされているバージョンのデータベースを保持するプログラムです。パッケージをインストールするときは、.debアーカイブファイルからインストールします。これらのアーカイブは、パッケージの配布方法です。

dpkgファイルをコピー(または削除)してデータベースを更新するだけではありません。インストールスクリプトと削除スクリプトも実行します。それはかなり洗練されたとみなされるかもしれません。しかし、パッケージを見つけてダウンロードすることはできません

APTはパッケージを見つけてダウンロードし、dpkg適切に実行してインストール、アップグレード、削除します。APTは実際には単一のソフトウェアではありませんが、その重要な部分を提供するaptaptをインストールするパッケージがあります。

APTには、さまざまなツールからアクセスされるコア機能を提供するライブラリ(libapt-pkg)が含まれています。などのツールの一部apt-getは、aptaptをインストールするパッケージでも提供されます。他のツールは個別にインストールされます。APTは、コアライブラリとそれを使用するプログラムの動作を制御するさまざまな構成ファイルも提供します。

それ以上に、APTはされてシステム何のバージョンでは、と自動的にパッケージのインストールとアップグレードのようなパッケージ管理タスクを実行するために、これらのデータに作用するためにどのようなパッケージをどのようなソフトウェアのソースについてのデータを格納および取得のために提供しています。これには、他のパッケージが機能するために必要なパッケージを追跡し、これらの依存関係を満たすために適切なパッケージを自動的に選択してインストールすることが含まれます。

たとえばapt-getchocolate-doomchocolate-doomをインストールするパッケージをインストールするようユーティリティに指示すると、機能するために他のパッケージをインストールする必要があることがわかり、それらも自動的に取得およびインストールされます。

$ sudo apt-get install chocolate-doom
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2 libsdl1.2debian
Recommended packages:
  doom-engine
The following NEW packages will be installed:
  chocolate-doom doom-wad-shareware libmikmod3 libsdl-mixer1.2 libsdl-net1.2
  libsdl1.2debian
0 upgraded, 6 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/2,846 kB of archives.
After this operation, 8,626 kB of additional disk space will be used.

Software Center、Software Updater / Update Manager、Synapticなどのグラフィカルツールは、と同様の機能を実行しますapt-get。彼らはまた、APTシステムを使用します- そのルール観察し、コアライブラリによって提供される機能利用することの組み合わせにより、インストールされるパッケージを変更し、ユーザーに(通常)欲しいものを与えるために、 (通常)引き続き動作します。

/var/cache/apt/archivesフォルダーの使用方法と時期

apt-getaptitudeソフトウェアセンターシナプスソフトウェアアップデータ/アップデートマネージャ、またはその他のパッケージ管理ユーティリティのダウンロードパッケージ(および他のパッケージそれが依存)が設定からソフトウェアソースとは、それらをインストールし、ダウンロードしたパッケージ(すなわち、の.debアーカイブファイルインストール元)はに保存され/var/cache/apt/archivesます。

ディスクに.debファイルがあり、それをインストールする場合dpkg、そのコピーはに作成されません/var/cache/apt/archives。ただし、自動依存関係解決およびパッケージ取得のAPTシステムを使用または実装するプログラムがパッケージをダウンロードすると、そこにパッケージが保存されます。

自動的にダウンロードされたパッケージの.debファイルはに保存され、そこからインストールされますが/var/cache/apt/archives、実際にはその場所に直接ダウンロードされるわけではありません。代わりに、不完全な(進行中の).debファイルのダウンロードが存在し/var/cache/apt/archives/partial/var/cache/apt/archives終了時に移動されます。

.debパッケージファイルは/var/cache/apt/archives、将来の使用に必要な場合に備えて、インストールが成功した後でもキャッシュされたままになります。ただし、.debファイルを使用して安全に削除することはできますが、それらは再び必要になる可能性が低いためsudo apt-get autoclean、でキャッシュ.debファイルを完全に消去できますsudo apt-get clean。詳細についてはman apt-get、を参照してください。

sudo apt-get autocleanコマンドと同様のコマンドの機能を説明し、それらを実行するかどうかを決定するために、フラグを使用してthenを実行することにより、アクションをシミュレートできます-s。これは、このフラグを渡すのがベストです前にautocleanアクション動詞(またはその他何でも)。それはでrootとしてユーティリティを実行するために通常必要はありませんsudo使用している場合-s実際の変更は行われていないされているため、。

たとえば、私のシステムでは:

$ apt-get -s autoclean
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Del libubsan0 4.9.1-15ubuntu1 [83.7 kB]
Del cups-server-common 1.7.5-3 [519 kB]
Del python2.7 2.7.8-9 [205 kB]
Del g++-4.9 4.9.1-15ubuntu1 [17.4 MB]
Del libstdc++-4.9-dev 4.9.1-15ubuntu1 [1,121 kB]
    ....

リストされたパッケージはアンインストールされません。代わりに、キャッシュされた.debファイルのみが削除されます。(実際、そのコマンドを実行したときは、単なるシミュレーションであったため、どちらも起こりませんでした。)

その他のダウンロードされたファイル

dpkg(APTなどを介して)インストールされたソフトウェアは、実際にそれを提供する.debファイルから実行されません。「背景情報」セクションで説明したように、.debファイルが抽出されます。これらが削除され、インストールされたパッケージが引き続き機能する理由です。

.debパッケージからインストールされるシステム全体のファイルは、現在の場所にはダウンロードされません。むしろ、それらを提供する.debファイルから抽出されます(または、場合によってはインストール中またはその後特別に作成されます)一部の構成ファイルの場合)。

ただし、パッケージ管理ユーティリティによってダウンロードされるファイルは.debファイルだけではありません。多くの場合、パッケージが存在する場所に関する情報を提供する他のファイルがダウンロードされます。

たとえば、実行するsudo apt-get updateと、出力には次のような行が含まれます。

Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]

これは、http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2のようなファイルがダウンロードされ、利用可能なパッケージに関する情報でAPTデータベースを更新するのに役立つことを意味します(および特定のソフトウェアソースからのバージョン)。パッケージファイルやその他のそのようなファイルは、/var/lib/apt/listディレクトリにあります。そこに保存されているコピーにはus.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages、そのようなファイルが多数存在する可能性があるため、などの識別名が付けられます。

あなたはapt-cache具体的に尋ねました。パッケージデータベースを照会しますが、システムに変更を加えたり、ファイルをダウンロードしたりすることはありません。

ソフトウェアセンター固有のダウンロードファイル

Ubuntu Software Centerは、一般的なAPT(またはdpkg)機能に関係なく、それ専用のデータを独自に使用するためにダウンロードするときに、に保存します/var/cache/software-center

たとえば、私のシステム(およびほとんどのシステム)では、そのフォルダーにはxapianサブフォルダーが含まれています。

ek@Ilex:/var/cache/software-center/xapian$ ls
flintlock       postlist.baseB  record.baseB    spelling.baseB  termlist.baseB
iamchert        postlist.DB     record.DB       spelling.DB     termlist.DB
postlist.baseA  record.baseA    spelling.baseA  termlist.baseA

Software Centerは、Xapianを使用して情報をインデックス化し、迅速な検索を実現します。

その他の関連ユーティリティのダウンロードファイル

APTシステムで動作するいくつかの追加ユーティリティは、操作の一部としてファイルをダウンロードして保存します。apt-fileUbuntuにはデフォルトではインストールされませんが、apt-fileaptファイルをインストールするパッケージからインストールできます。

apt-file(ローカルにインストールされていないパッケージであっても)どのパッケージによってどのファイルが提供されるかに関する情報を保存します。圧縮Contentsファイルをダウンロードすることにより、パッケージの内容に関する次の情報を取得します。

$ sudo apt-file update
Downloading complete file http://us.archive.ubuntu.com/ubuntu/dists/utopic/Contents-amd64.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 29.6M  100 29.6M    0     0   856k      0  0:00:35  0:00:35 --:--:--  832k

場合にはapt-file update(上記のように)rootで実行され、これらのファイルはにダウンロードされ/var/cache/apt/apt-fileたディレクトリ。これを発見するために、私は走りました:

$ sudo updatedb
$ locate Contents-amd64
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic-proposed_Contents-amd64.gz
/var/cache/apt/apt-file/us.archive.ubuntu.com_ubuntu_dists_utopic_Contents-amd64.gz

この投稿で提供される情報は、Ubuntuのパッケージ管理ユーティリティによってダウンロードおよび保存されるデータファイルの例を示していますが、そのようなファイルが使用および保存されているインスタンスの網羅的なリストと見なすべきではありません。


ありがとう。やるapt-cache か/とapt-fileも多くのものをダウンロードしてください はいの場合、どこにありますか?
ティム14年

「しかし、自動依存関係解決およびパッケージ取得のAPTシステムを使用または実装するプログラムがパッケージをダウンロードするとき、それはそれらを格納する場所です。」平均?
ティム14年

@Timこれらの質問(およびその他)に適切に回答できるように、回答を大幅に拡大しました。いつものように、特に不明な点がある場合は、フィードバックをお寄せください。
エリアケイガン14年

「apt-cacheはパッケージデータベースを照会します」のおかげで、データベースはオンラインですか、それともローカルコンピューターですか?apt-cacheはインターネットにアクセスする必要がありますか?
ティム14年

1
@Orian(この回答が助けてくれてうれしいです!)質問の星をクリックできます。質問のスコアと投票の矢印のすぐ下です。次に、質問がプロファイルのお気に入りタブに表示されます。お気に入りにできるのは質問だけです。この回答の場合、現在は質問の唯一の回答です。他にも投稿される場合がありますが、新しい回答にはトピックの新しい開発に関する情報が含まれている場合があるため、おそらくそれらもご覧ください。ブラウザのブックマークを使用できます。ブックマークは回答に対しても機能します。回答の下の共有リンクを使用して、特定の回答でページを開きます。
エリアケイガン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.