Yanıtlar:
Ubuntu'da (ve Ubuntu'nun dayandığı Debian'da) genellikle "paket yöneticisi" olarak adlandırılan iki şey vardır: dpkg
ve APT.
dpkg
paketleri yükleyen ve kaldıran ve hangi paketlerin hangi sürümlerde kurulu olduğunu gösteren bir veritabanıdır. Paketleri yüklediğinde, bunu .deb
arşiv dosyalarından yapar. Bu arşivler paketlerin dağıtılma şeklidir.
dpkg
dosyaları kopyalamaktan (veya silmekten) ve veritabanını güncellemekten daha fazlasını yapar; yükleme komut dosyalarını ve kaldırma komut dosyalarını da çalıştırır. Oldukça sofistike kabul edilebilir. Ama yapmayacağı şey paketleri bulmak ve indirmek.
APT paketleri bulur ve indirir ve dpkg
bunları yüklemek, yükseltmek ve kaldırmak için uygun şekilde çalışır . APT gerçekten tek bir yazılım parçası değildir, ancak temel parçalarını sağlayan bir apt paketi vardır.
APT, çeşitli araçlar tarafından erişilen temel işlevsellik sağlayan bir kütüphane ( libapt-pkg ) içerir. Bu gibi araçlar apt-get
da apt paketi tarafından sağlanır . Diğer araçlar ayrı olarak monte edilir. APT ayrıca çekirdek kütüphanesinin ve onu kullanan programların nasıl çalıştığını kontrol eden çeşitli yapılandırma dosyaları sağlar.
Dahası, APT hangi yazılım kaynaklarının hangi sürümlerde hangi paketleri sağladığına ilişkin verileri depolamak ve almak ve paketleri kurmak ve yükseltmek gibi paket yönetimi görevlerini otomatik olarak gerçekleştirmek için bu veriler üzerinde hareket etmek için kullanılan bir sistemdir . Bu, diğer paketlerin çalışması için hangi paketlerin gerekli olduğunu takip etmeyi ve bu bağımlılıkları karşılamak için uygun paketleri otomatik olarak seçip kurmayı içerir.
Örneğin apt-get
, çikolata-doom paketini kurması için yardımcı programa çalıştığımda, çalışması için başka hangi paketlerin yüklenmesi gerektiğini anlar ve bunları otomatik olarak alır ve kurar:
$ 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.
Yazılım Merkezi, Yazılım Güncelleyici / Güncelleme Yöneticisi ve Synaptic gibi grafik araçları benzer işlevleri yerine getirir apt-get
. Ayrıca, APT sistemini - kurallara uymak ve çekirdek kütüphaneler tarafından sağlanan işlevselliği kullanmakla birlikte - hangi paketlerin kurulu olduğunu değiştirmek için, kullanıcıya (genellikle) ne istediğini vermek için, (genellikle) çalışmaya devam eder.
/var/cache/apt/archives
Klasör Nasıl ve Ne Zaman Kullanılırapt-get
, aptitude
, Yazılım Merkezi , Synaptic , Software Updater / Güncelleme Yöneticisi , ya da başka paket yönetim yarar indirme paketleri (ve diğer paketler onlar bağlıdır) yapılandırılmış gelen yazılım kaynaklarının ve varsa yükler, indirilen paketler (yani .deb arşiv dosyaları yüklendikleri) /var/cache/apt/archives
.
Diskte bir .deb dosyanız varsa ve ile birlikte yüklerseniz dpkg
, bunun bir kopyası alınmaz /var/cache/apt/archives
. Ancak APT otomatik bağımlılık çözümlemesi ve paket alma paketlerini kullanan veya uygulayan bir program paketleri indirdiğinde, bunları burada saklar.
Otomatik olarak indirilen paketler için .deb dosyaları depolanırken ve buradan yüklenirken /var/cache/apt/archives
, bunlar doğrudan o konuma indirilmez. Bunun yerine, tamamlanmamış (yani, devam ediyor) .deb dosyası indirmeleri var olur /var/cache/apt/archives/partial
ve /var/cache/apt/archives
tamamlandığında buraya taşınır .
.deb paket dosyaları /var/cache/apt/archives
, gelecekteki kullanımlar için gerekli olmaları durumunda başarılı kurulumdan sonra bile önbelleğe alınmış durumda kalır . Ancak sudo apt-get autoclean
, tekrar ihtiyaç duyulmayacak kadar eski olan .deb dosyalarını güvenle kaldırabilir veya önbelleğe alınmış .deb
dosyaları tamamen temizleyebilirsiniz sudo apt-get clean
. Daha man apt-get
fazla bilgi için bakınız .
sudo apt-get autoclean
Komutların işlevini ve benzerlerini göstermek ve bunları çalıştırmak isteyip istemediğinizi belirlemek için, eylemleri daha sonra bayrakla çalıştırarak simüle edebilirsiniz -s
. Bu bayrak geçmek en iyisi önceautoclean
(ya da her türlü diğer) eylem fiil. Herhangi bir gerçek değişiklik yapılmadığından, bir yardımcı programı sudo
kullanırken kök olarak çalıştırmak genellikle gerekli değildir -s
.
Örneğin, sistemimde:
$ 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]
....
Listelenen paketler kaldırılmaz ; bunun yerine, yalnızca önbelleğe alınmış .deb dosyaları silinir. (Aslında ben sadece bir simülasyon olduğu için bu komutu çalıştırdığımda da olmadı.)
dpkg
(APT aracılığıyla veya başka bir yöntemle) aracılığıyla yüklenen yazılım , bunu sağlayan .deb dosyasından çalıştırılmaz. Arka Plan Bilgileri bölümünde belirtildiği gibi , .deb dosyaları ayıklanır. Bu yüzden kaldırılabilirler ve kurulu paket çalışmaya devam eder.
Sistem genelinde .deb paketlerinden yüklenen dosyalar geçerli konumlarına indirilmez - bunun yerine, bunları sağlayan .deb dosyalarından kendilerine çıkarılır (veya yükleme sırasında veya sonrasında, özellikle duruma göre özel olarak oluşturulur) bazı yapılandırma dosyaları için).
Ancak .deb dosyaları, paket yönetimi yardımcı programları tarafından indirilen tek dosyalar değildir. Genellikle paketlerin bulunduğu yerler hakkında bilgi sağlayan diğer dosyalar indirilir.
Örneğin, çalıştırdığımda sudo apt-get update
, çıktı aşağıdaki gibi satırlar içerir:
Get:13 http://us.archive.ubuntu.com utopic/main i386 Packages [1,341 kB]
Bu, http://us.archive.ubuntu.com/ubuntu/dists/utopic/main/binary-amd64/Packages.bz2 gibi bir dosyanın indirildiğini ve APT veritabanının hangi paketlerin mevcut olduğuna ilişkin bilgilerle güncellenmesine yardımcı olmak için indirildiğini ve incelendiğini gösterir ( ve hangi sürümlerde) Paketler dosyalarını ve diğer benzeri dosyaları /var/lib/apt/list
dizinde bulabilirsiniz. Burada saklanan kopyalara us.archive.ubuntu.com_ubuntu_dists_utopic_main_binary-amd64_Packages
, bu tür birçok dosya olabileceği gibi ayırt edici adlar verilir .
apt-cache
Özellikle sordun . Paket veritabanını sorgular, ancak sistemde herhangi bir değişiklik yapmaz veya herhangi bir dosya indirmez.
Ubuntu Yazılım Merkezi, genel APT (veya dpkg
) işlevselliği ile ilgili olmayan, kendi kullanımı için verileri indirdiğinde , bunları saklar /var/cache/software-center
.
Örneğin, sistemimde (ve çoğu sistemde), bu klasör bir xapian
alt klasör içerir :
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
Yazılım Merkezi, hızlı arama için bilgileri endekslemek için Xapian kullanır .
APT sistemiyle çalışan bazı ek yardımcı programlar dosyaları işlemlerinin bir parçası olarak indirir ve depolar. apt-file
Ubuntu'da varsayılan olarak yüklenmez, ancak apt dosya paketinden yüklenebilir .
apt-file
hangi dosyaların hangi paketler tarafından sağlandığı hakkında bilgi depolar (yerel olarak kurulu olmayan paketler için bile). Sıkıştırılmış Contents
dosyaları indirerek paketlerin içeriği hakkında bu bilgiyi alır :
$ 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
Ne zaman apt-file update
(yukarıdaki gibi) root olarak çalıştırılır, bu dosyalar indirilir /var/cache/apt/apt-file
dizine. Bunu keşfetmek için koştum:
$ 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
Bu yayında sağlanan bilgilerin, Ubuntu'daki paket yönetimi yardımcı programları tarafından yüklenen ve depolanan bir dizi veri dosyası örneği verdiğini, ancak bu tür dosyaların kullanıldığı ve saklandığı örneklerin kapsamlı bir listesi olarak düşünülmemesi gerektiğini unutmayın.
apt-cache
ve / veyaapt-file
ayrıca birçok şeyi indirmek? Evet ise, neredeler?