回答:
Ubuntu(およびUbuntuのベースとなっているDebian)には、一般に「パッケージマネージャー」と呼ばれる2つのことがあります:dpkg
、およびAPT。
dpkg
は、パッケージをインストールおよび削除し、インストールされているパッケージ、インストールされているバージョンのデータベースを保持するプログラムです。パッケージをインストールするときは、.deb
アーカイブファイルからインストールします。これらのアーカイブは、パッケージの配布方法です。
dpkg
ファイルをコピー(または削除)してデータベースを更新するだけではありません。インストールスクリプトと削除スクリプトも実行します。それはかなり洗練されたとみなされるかもしれません。しかし、パッケージを見つけてダウンロードすることはできません。
APTはパッケージを見つけてダウンロードし、dpkg
適切に実行してインストール、アップグレード、削除します。APTは実際には単一のソフトウェアではありませんが、その重要な部分を提供するaptパッケージがあります。
APTには、さまざまなツールからアクセスされるコア機能を提供するライブラリ(libapt-pkg)が含まれています。などのツールの一部apt-get
は、aptパッケージでも提供されます。他のツールは個別にインストールされます。APTは、コアライブラリとそれを使用するプログラムの動作を制御するさまざまな構成ファイルも提供します。
それ以上に、APTはされてシステム何のバージョンでは、と自動的にパッケージのインストールとアップグレードのようなパッケージ管理タスクを実行するために、これらのデータに作用するためにどのようなパッケージをどのようなソフトウェアのソースについてのデータを格納および取得のために提供しています。これには、他のパッケージが機能するために必要なパッケージを追跡し、これらの依存関係を満たすために適切なパッケージを自動的に選択してインストールすることが含まれます。
たとえばapt-get
、chocolate-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-get
、aptitude
、ソフトウェアセンター、シナプス、ソフトウェアアップデータ/アップデートマネージャ、またはその他のパッケージ管理ユーティリティのダウンロードパッケージ(および他のパッケージそれが依存)が設定からソフトウェアソースとは、それらをインストールし、ダウンロードしたパッケージ(すなわち、の.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-file
Ubuntuにはデフォルトではインストールされませんが、apt-fileパッケージからインストールできます。
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
も多くのものをダウンロードしてください はいの場合、どこにありますか?