Jawaban:
Ada dua hal di Ubuntu (dan di Debian, yang menjadi dasar Ubuntu) yang biasa disebut "manajer paket" dpkg
:, dan APT.
dpkg
adalah program yang menginstal dan menghapus paket dan memelihara database dari paket apa yang diinstal, pada versi apa. Ketika menginstal paket, ia melakukannya dari .deb
file arsip. Arsip-arsip ini adalah cara paket didistribusikan.
dpkg
melakukan lebih dari menyalin (atau menghapus) file dan memperbarui databasenya - itu juga akan menjalankan skrip instalasi dan skrip penghapusan. Ini mungkin dianggap cukup canggih. Tapi yang tidak akan dilakukan adalah mencari dan mengunduh paket.
APT menemukan dan mengunduh paket, dan menjalankan dengan dpkg
tepat untuk menginstal, meningkatkan, dan menghapusnya. APT sebenarnya bukan perangkat lunak apa pun, meskipun ada paket yang tepat yang menyediakan bagian-bagian penting.
APT termasuk perpustakaan ( libapt-pkg ) yang menyediakan fungsionalitas inti, diakses oleh berbagai alat. Beberapa alat seperti itu, seperti apt-get
, juga disediakan oleh paket apt . Alat-alat lain dipasang secara terpisah. APT juga menyediakan berbagai file konfigurasi yang mengontrol cara kerja pustaka intinya, dan program yang menggunakannya.
Lebih dari itu, APT adalah sistem untuk menyimpan dan mengambil data tentang sumber perangkat lunak apa yang menyediakan paket apa dalam versi apa, dan untuk bertindak atas data tersebut untuk secara otomatis melakukan tugas manajemen paket seperti menginstal dan meningkatkan paket. Ini termasuk melacak paket apa yang dibutuhkan agar paket lain berfungsi, dan secara otomatis memilih dan menginstal paket yang sesuai untuk memenuhi dependensi ini.
Misalnya, ketika saya memberi tahu apt-get
utilitas untuk menginstal paket cokelat-malapetaka , ia mencari tahu paket apa yang harus diinstal agar bisa berfungsi, dan akan secara otomatis mengambil dan menginstalnya juga:
$ 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.
Alat grafis seperti Pusat Perangkat Lunak, Pembaruan Perangkat Lunak / Manajer Pembaruan, dan Synaptic melakukan fungsi yang mirip dengan apt-get
. Mereka juga menggunakan sistem APT - melalui kombinasi mengamati aturannya dan memanfaatkan fungsionalitas yang disediakan oleh pustaka inti - untuk mengubah paket apa yang diinstal, untuk memberikan kepada pengguna apa yang ia (biasanya) inginkan, sedemikian rupa sehingga hal-hal (biasanya) terus bekerja.
/var/cache/apt/archives
Folder DigunakanKetika apt-get
, aptitude
, Software Center , Synaptic , Software Updater / Manajer Perbarui , atau download manajemen paket utilitas paket lain (dan paket-paket lain yang mereka bergantung pada) dari dikonfigurasi sumber perangkat lunak dan menginstal mereka, paket download (yaitu, file .deb arsip dari mana mereka diinstal) disimpan di /var/cache/apt/archives
.
Jika Anda memiliki file deb pada disk dan Anda menginstalnya dpkg
, itu tidak menyebabkan salinannya dibuat /var/cache/apt/archives
. Tetapi ketika sebuah program yang menggunakan atau mengimplementasikan sistem APT dari resolusi dependensi otomatis dan paket pengambilan paket unduhan, di situlah ia menyimpannya.
Sementara file deb untuk paket yang diunduh secara otomatis disimpan dan diinstal /var/cache/apt/archives
, mereka sebenarnya tidak diunduh langsung ke lokasi itu. Alih-alih, tidak lengkap (mis. Sedang berlangsung) unduhan file .deb ada di /var/cache/apt/archives/partial
dan kemudian dipindahkan ke /var/cache/apt/archives
saat selesai.
File paket .deb tetap di-cache /var/cache/apt/archives
bahkan setelah instalasi berhasil jika mereka diperlukan untuk digunakan di masa depan. Tetapi Anda dapat dengan aman menghapus file deb yang cukup lama mereka tidak diperlukan lagi sudo apt-get autoclean
, atau menghapus .deb
file cache sepenuhnya sudo apt-get clean
. Lihat man apt-get
untuk informasi lebih lanjut.
Untuk mengilustrasikan fungsi sudo apt-get autoclean
dan perintah yang serupa, serta untuk menentukan apakah Anda ingin menjalankannya, Anda dapat mensimulasikan tindakan mereka dengan menjalankan lalu dengan -s
flag. Hal terbaik untuk melewati bendera ini sebelum yang autoclean
(atau apa pun lainnya) tindakan verba. Biasanya tidak diperlukan untuk menjalankan utilitas sebagai root sudo
ketika menggunakan -s
, karena tidak ada perubahan aktual yang dibuat.
Misalnya, di sistem saya:
$ 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]
....
Paket yang terdaftar tidak akan dihapus instalasinya ; sebagai gantinya, file .deb yang di-cache akan dihapus. (Sebenarnya tidak ada yang terjadi ketika saya menjalankan perintah itu, karena itu hanya simulasi.)
Perangkat lunak yang diinstal melalui dpkg
(melalui APT atau lainnya) sebenarnya tidak dijalankan dari file .deb yang menyediakannya. Seperti dicatat di bagian Informasi Latar Belakang , file deb. Diekstraksi. Inilah sebabnya mengapa mereka dapat dihapus dan paket yang diinstal terus berfungsi.
File di seluruh sistem yang diinstal dari paket deb tidak diunduh ke lokasi mereka saat ini - melainkan, mereka diekstraksi dari file deb yang menyediakannya (atau mungkin dibuat secara khusus selama instalasi atau sesudahnya, seperti halnya untuk beberapa file konfigurasi).
Tapi file deb bukan satu-satunya file yang diunduh oleh utilitas manajemen paket. Seringkali file lain diunduh yang memberikan informasi tentang di mana paket ada.
Misalnya, ketika saya menjalankan sudo apt-get update
, output menyertakan baris seperti:
Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]
Ini berarti file seperti http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 telah diunduh dan diperiksa untuk membantu memperbarui basis data APT dengan informasi tentang paket apa yang tersedia ( dan dalam versi apa) dari sumber perangkat lunak tertentu. Anda dapat menemukan file Paket, dan file lainnya, di /var/lib/apt/list
direktori. Salinan yang disimpan di sana diberi nama yang berbeda seperti us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages
, karena mungkin ada banyak file seperti itu.
Anda bertanya tentang apt-cache
secara spesifik. Ia menanyakan basis data paket, tetapi tidak membuat perubahan apa pun pada sistem atau mengunduh file apa pun.
Ketika Pusat Perangkat Lunak Ubuntu mengunduh data untuk penggunaannya sendiri, khusus untuknya dan tidak berkaitan dengan dpkg
fungsionalitas APT (atau ) umum, ia menyimpannya di /var/cache/software-center
.
Misalnya, di sistem saya (dan di sebagian besar sistem), folder itu berisi xapian
subfolder:
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
Pusat Perangkat Lunak menggunakan Xapian untuk mengindeks informasi untuk pencarian cepat.
Beberapa utilitas tambahan yang berfungsi dengan sistem APT mengunduh dan menyimpan file sebagai bagian dari operasinya. apt-file
tidak diinstal secara default di Ubuntu, tetapi dapat diinstal dari paket apt-file .
apt-file
menyimpan informasi tentang file apa yang disediakan oleh paket apa (bahkan untuk paket yang tidak diinstal secara lokal). Ia memperoleh informasi ini tentang isi paket dengan mengunduh Contents
file terkompresi :
$ 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
Ketika apt-file update
dijalankan sebagai root (seperti di atas), file-file ini diunduh ke /var/cache/apt/apt-file
direktori. Untuk menemukan ini, saya berlari:
$ 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
Perhatikan bahwa informasi yang diberikan dalam posting ini memberikan sejumlah contoh file data yang dowload dan disimpan oleh utilitas manajemen paket di Ubuntu, tetapi tidak boleh dianggap sebagai daftar lengkap dari contoh di mana file tersebut digunakan dan disimpan.
apt-cache
atau / danapt-file
juga mengunduh banyak hal? Jika ya, di mana mereka?