25 uporabnih osnovnih ukazov APT-GET in APT-CACHE za upravljanje paketov
V tem članku je razloženo, kako hitro se lahko z ukazi apt-get in apt-cache iz ukazne vrstice naučite nameščati, odstranjevati, posodabljati in iskati programske pakete. Ta članek vsebuje nekaj uporabnih ukazov, ki vam bodo pomagali pri upravljanju paketov v sistemih, ki temeljijo na Debian/Ubuntu.
Pripomoček apt-get je zmogljiv in brezplačen program ukazne vrstice za upravljanje paketov, ki se uporablja za delo z Ubuntujevo knjižnico APT (Advanced Packaging Tool) za namestitev novih programskih paketov, odstranjevanje obstoječih paketov, nadgradnjo obstoječih paketov in celo uporablja za nadgradnjo celotnega operacijskega sistema.
Orodje ukazne vrstice apt-cache se uporablja za iskanje predpomnilnika programskega paketa apt. Z enostavnimi besedami se to orodje uporablja za iskanje programskih paketov, zbiranje informacij o paketih in tudi za iskanje razpoložljivih paketov, ki so pripravljeni za namestitev v sisteme, ki temeljijo na Debianu ali Ubuntuju.
1. Kako naštejem vse razpoložljive pakete?
Če želite seznam vseh razpoložljivih paketov, vnesite naslednji ukaz.
$ apt-cache pkgnames
esseract-ocr-epo pipenightdreams mumudvb tbb-examples libsvm-java libmrpt-hmtslam0.9 libboost-timer1.50-dev kcm-touchpad g++-4.5-multilib ...
2. Kako najdem ime paketa in opis programske opreme?
Če želite izvedeti ime paketa in z njim opis pred namestitvijo, uporabite zastavico 'search'. Če uporabite »iskanje« z apt-cache, se prikaže seznam ustreznih paketov s kratkim opisom. Recimo, da bi radi izvedeli opis paketa 'vsftpd', potem bi bil ukaz.
$ apt-cache search vsftpd
vsftpd - lightweight, efficient FTP server written for security ccze - A robust, modular log coloriser ftpd - File Transfer Protocol (FTP) server yasat - simple stupid audit tool
Če želite poiskati in našteti vse pakete, ki se začnejo z 'vsftpd', lahko uporabite naslednji ukaz.
$ apt-cache pkgnames vsftpd
vsttpd
3. Kako preverim podatke o paketu?
Na primer, če želite preveriti informacije o paketu, skupaj s kratkim opisom, recimo (številka različice, preverite vsote, velikost, nameščeno velikost, kategorijo itd.). Uporabite podkaz »show«, kot je prikazano spodaj.
$ apt-cache show netcat
Package: netcat Priority: optional Section: universe/net Installed-Size: 30 Maintainer: Ubuntu Developers <[email > Original-Maintainer: Ruben Molina <[email > Architecture: all Version: 1.10-40 Depends: netcat-traditional (>= 1.10-39) Filename: pool/universe/n/netcat/netcat_1.10-40_all.deb Size: 3340 MD5sum: 37c303f02b260481fa4fc9fb8b2c1004 SHA1: 0371a3950d6967480985aa014fbb6fb898bcea3a SHA256: eeecb4c93f03f455d2c3f57b0a1e83b54dbeced0918ae563784e86a37bcc16c9 Description-en: TCP/IP swiss army knife -- transitional package This is a "dummy" package that depends on lenny's default version of netcat, to ease upgrades. It may be safely removed. Description-md5: 1353f8c1d079348417c2180319bdde09 Bugs: https://bugs.launchpad.net/ubuntu/+filebug Origin: Ubuntu
4. Kako preverim odvisnosti določenih paketov?
Z ukazom »showpkg« preverite odvisnosti določenih programskih paketov. ali so ti paketi odvisnosti nameščeni ali ne. Na primer, uporabite ukaz 'showpkg' skupaj z imenom paketa.
$ apt-cache showpkg vsftpd
Package: vsftpd Versions: 2.3.5-3ubuntu1 (/var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_quantal_main_binary-i386_Packages) Description Language: File: /var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_quantal_main_binary-i386_Packages MD5: 81386f72ac91a5ea48f8db0b023f3f9b Description Language: en File: /var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_quantal_main_i18n_Translation-en MD5: 81386f72ac91a5ea48f8db0b023f3f9b Reverse Depends: ubumirror,vsftpd harden-servers,vsftpd Dependencies: 2.3.5-3ubuntu1 - debconf (18 0.5) debconf-2.0 (0 (null)) upstart-job (0 (null)) libc6 (2 2.15) libcap2 (2 2.10) libpam0g (2 0.99.7.1) libssl1.0.0 (2 1.0.0) libwrap0 (2 7.6-4~) adduser (0 (null)) libpam-modules (0 (null)) netbase (0 (null)) logrotate (0 (null)) ftp-server (0 (null)) ftp-server (0 (null)) Provides: 2.3.5-3ubuntu1 - ftp-server Reverse Provides:
5. Kako preverim statistiko predpomnilnika
Podukaz 'stats' bo prikazal splošno statistiko o predpomnilniku. Naslednji ukaz bo na primer prikazal Skupna imena paketov je število paketov, najdenih v predpomnilniku.
$ apt-cache stats
Total package names: 51868 (1,037 k) Total package structures: 51868 (2,490 k) Normal packages: 39505 Pure virtual packages: 602 Single virtual packages: 3819 Mixed virtual packages: 1052 Missing: 6890 Total distinct versions: 43015 (2,753 k) Total distinct descriptions: 81048 (1,945 k) Total dependencies: 252299 (7,064 k) Total ver/file relations: 45567 (729 k) Total Desc/File relations: 81048 (1,297 k) Total Provides mappings: 8228 (165 k) Total globbed strings: 286 (3,518 ) Total dependency version space: 1,145 k Total slack space: 62.6 k Total space accounted for: 13.3 M
6. Kako posodobiti sistemske pakete
Ukaz ‘update’ se uporablja za vnovično sinhronizacijo datotek indeksa paketov iz njihovih virov, določenih v datoteki /etc/apt/sources.list. Ukaz za posodobitev je pakete prevzel z njihovih lokacij in jih posodobil na novejšo različico.
$ sudo apt-get update
[sudo] password for tecmint: Ign http://security.ubuntu.com quantal-security InRelease Get:1 http://security.ubuntu.com quantal-security Release.gpg [933 B] Get:2 http://security.ubuntu.com quantal-security Release [49.6 kB] Ign http://in.archive.ubuntu.com quantal InRelease Ign http://in.archive.ubuntu.com quantal-updates InRelease Get:3 http://repo.varnish-cache.org precise InRelease [13.7 kB] Ign http://in.archive.ubuntu.com quantal-backports InRelease Hit http://in.archive.ubuntu.com quantal Release.gpg Get:4 http://security.ubuntu.com quantal-security/main Sources [34.8 kB] Get:5 http://in.archive.ubuntu.com quantal-updates Release.gpg [933 B] ...
7. Kako nadgraditi programske pakete
Ukaz ‘upgrade’ se uporablja za nadgradnjo vseh trenutno nameščenih programskih paketov v sistemu. Trenutno nameščeni paketi se v nobenem primeru ne odstranijo ali paketi, ki še niso nameščeni, niti niso pridobljeni in nameščeni, da bi zadovoljili odvisnosti od nadgradnje.
$ sudo apt-get upgrade
Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: linux-headers-generic linux-image-generic wine1.5 wine1.5-i386 The following packages will be upgraded: activity-log-manager-common activity-log-manager-control-center adium-theme-ubuntu alacarte alsa-base app-install-data-partner appmenu-gtk appmenu-gtk3 apport apport-gtk apt apt-transport-https apt-utils aptdaemon aptdaemon-data at-spi2-core bamfdaemon base-files bind9-host ...
Če pa želite nadgraditi, vas ne skrbi, ali bodo programski paketi dodani ali odstranjeni za izpolnjevanje odvisnosti, uporabite podukaz »dist-upgrade«.
$ sudo apt-get dist-upgrade
8. Kako namestim ali nadgradim določene pakete?
Podukazu »install« sledi en ali več paketov, ki si želijo namestitve ali nadgradnje.
$ sudo apt-get install netcat
Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: netcat-traditional The following NEW packages will be installed: netcat netcat-traditional 0 upgraded, 2 newly installed, 0 to remove and 328 not upgraded. Need to get 67.1 kB of archives. After this operation, 186 kB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe netcat-traditional i386 1.10-40 [63.8 kB] Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/universe netcat all 1.10-40 [3,340 B] Fetched 67.1 kB in 1s (37.5 kB/s) Selecting previously unselected package netcat-traditional. (Reading database ... 216118 files and directories currently installed.) Unpacking netcat-traditional (from .../netcat-traditional_1.10-40_i386.deb) ... Selecting previously unselected package netcat. Unpacking netcat (from .../netcat_1.10-40_all.deb) ... Processing triggers for man-db ... Setting up netcat-traditional (1.10-40) ... Setting up netcat (1.10-40) ...
9. Kako lahko namestim več paketov?
Skupaj z ukazom lahko dodate več imen paketov, da lahko hkrati namestite več paketov. Naslednji ukaz bo na primer namestil pakete "goaccess".
$ sudo apt-get install nethogs goaccess
Reading package lists... Done Building dependency tree Reading state information... Done goaccess is already the newest version. nethogs is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
10. Kako namestiti več paketov z nadomestnimi znaki
S pomočjo regularnega izraza lahko dodate več paketov z enim nizom. Na primer, z nadomestnim znakom * namestimo več paketov, ki vsebujejo niz ‘* ime *’, ime bi bilo ‘ime-paketa’.
$ sudo apt-get install '*name*'
11. Kako namestiti pakete brez nadgradnje
Uporaba ukaza pod ‘–no-upgrade’ bo preprečila nadgradnjo že nameščenih paketov.
$ sudo apt-get install packageName --no-upgrade
Reading package lists... Done Building dependency tree Reading state information... Done Skipping vsftpd, it is already installed and upgrade is not set. 0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
12. Kako nadgraditi samo določene pakete
Ukaz ‘–only-upgrade’ ne namesti novih paketov, temveč le nadgradi že nameščene pakete in onemogoči novo namestitev paketov.
$ sudo apt-get install packageName --only-upgrade
Reading package lists... Done Building dependency tree Reading state information... Done vsftpd is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
13. Kako namestim določeno različico paketa?
Recimo, da želite namestiti samo določeno različico paketov, preprosto uporabite '=' z imenom paketa in dodajte želeno različico.
$ sudo apt-get install vsftpd=2.3.5-3ubuntu1
Reading package lists... Done Building dependency tree Reading state information... Done vsftpd is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
14. Kako odstranim pakete brez konfiguracije
Odstranitev programskih paketov brez odstranjevanja njihovih konfiguracijskih datotek (za kasnejšo ponovno uporabo iste konfiguracije). Uporabite ukaz "odstrani", kot je prikazano.
$ sudo apt-get remove vsftpd
[sudo] password for tecmint: Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: vsftpd 0 upgraded, 0 newly installed, 1 to remove and 328 not upgraded. After this operation, 364 kB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 216156 files and directories currently installed.) Removing vsftpd ... vsftpd stop/waiting Processing triggers for ureadahead ... Processing triggers for man-db ...
15. Kako v celoti odstranim pakete
Če želite odstraniti programske pakete, vključno z njihovimi konfiguracijskimi datotekami, uporabite spodnji ukaz »čiščenje«, kot je prikazano spodaj.
$ sudo apt-get purge vsftpd
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: vsftpd* 0 upgraded, 0 newly installed, 1 to remove and 328 not upgraded. After this operation, 0 B of additional disk space will be used. Do you want to continue [Y/n]? y (Reading database ... 216107 files and directories currently installed.) Removing vsftpd ... Purging configuration files for vsftpd ... Processing triggers for ureadahead ...
Lahko pa kombinirate oba ukaza skupaj, kot je prikazano spodaj.
$ sudo apt-get remove --purge vsftpd
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: vsftpd* 0 upgraded, 0 newly installed, 1 to remove and 328 not upgraded. After this operation, 364 kB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 216156 files and directories currently installed.) Removing vsftpd ... vsftpd stop/waiting Purging configuration files for vsftpd ... Processing triggers for ureadahead ... Processing triggers for man-db ...
16. Kako lahko očistim prostor na disku
Ukaz ‘clean’ se uporablja za sprostitev prostora na disku s čiščenjem pridobljenih (prenesenih) datotek .deb (paketov) iz lokalnega repozitorija.
$ sudo apt-get clean
17. Kako prenesem samo izvorno kodo paketa
Če želite prenesti samo izvorno kodo določenega paketa, uporabite možnost ‘–naloži samo vir‘ z ‘ime-paketa’, kot je prikazano.
$ sudo apt-get --download-only source vsftpd
Reading package lists... Done Building dependency tree Reading state information... Done Need to get 220 kB of source archives. Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (dsc) [1,883 B] Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (tar) [188 kB] Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (diff) [30.5 kB] Fetched 220 kB in 4s (49.1 kB/s) Download complete and in download only mode
18. Kako lahko prenesem in razpakiram paket
Če želite naložiti in razpakirati izvorno kodo paketa v določen imenik, vnesite naslednji ukaz.
$ sudo apt-get source vsftpd
Reading package lists... Done Building dependency tree Reading state information... Done Need to get 220 kB of source archives. Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (dsc) [1,883 B] Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (tar) [188 kB] Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/main vsftpd 2.3.5-3ubuntu1 (diff) [30.5 kB] Fetched 220 kB in 1s (112 kB/s) gpgv: Signature made Thursday 24 May 2012 02:35:09 AM IST using RSA key ID 2C48EE4E gpgv: Can't check signature: public key not found dpkg-source: warning: failed to verify signature on ./vsftpd_2.3.5-3ubuntu1.dsc dpkg-source: info: extracting vsftpd in vsftpd-2.3.5 dpkg-source: info: unpacking vsftpd_2.3.5.orig.tar.gz dpkg-source: info: unpacking vsftpd_2.3.5-3ubuntu1.debian.tar.gz dpkg-source: info: applying 01-builddefs.patch dpkg-source: info: applying 02-config.patch dpkg-source: info: applying 03-db-doc.patch dpkg-source: info: applying 04-link-local.patch dpkg-source: info: applying 05-whitespaces.patch dpkg-source: info: applying 06-greedy.patch dpkg-source: info: applying 07-utf8.patch dpkg-source: info: applying 08-manpage.patch dpkg-source: info: applying 09-s390.patch dpkg-source: info: applying 10-remote-dos.patch dpkg-source: info: applying 11-alpha.patch dpkg-source: info: applying 09-disable-anonymous.patch dpkg-source: info: applying 12-ubuntu-use-snakeoil-ssl.patch
19. Kako lahko prenesem, razpakiram in sestavim paket
Izvorno kodo lahko hkrati prenesete, razpakirate in prevedete z uporabo možnosti „–sestavi“, kot je prikazano spodaj.
$ sudo apt-get --compile source goaccess
[sudo] password for tecmint: Reading package lists... Done Building dependency tree Reading state information... Done Need to get 130 kB of source archives. Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/universe goaccess 1:0.5-1 (dsc) [1,120 B] Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/universe goaccess 1:0.5-1 (tar) [127 kB] Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/universe goaccess 1:0.5-1 (diff) [2,075 B] Fetched 130 kB in 1s (68.0 kB/s) gpgv: Signature made Tuesday 26 June 2012 09:38:24 AM IST using DSA key ID A9FD4821 gpgv: Can't check signature: public key not found dpkg-source: warning: failed to verify signature on ./goaccess_0.5-1.dsc dpkg-source: info: extracting goaccess in goaccess-0.5 dpkg-source: info: unpacking goaccess_0.5.orig.tar.gz dpkg-source: info: unpacking goaccess_0.5-1.debian.tar.gz dpkg-buildpackage: source package goaccess dpkg-buildpackage: source version 1:0.5-1 dpkg-buildpackage: source changed by Chris Taylor <[email > dpkg-buildpackage: host architecture i386 dpkg-source --before-build goaccess-0.5 dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 9) autotools-dev libncurses5-dev libglib2.0-dev libgeoip-dev autoconf dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting dpkg-buildpackage: warning: (Use -d flag to override.) ...
20. Kako prenesem paket brez namestitve
Z možnostjo »naloži« lahko prenesete kateri koli paket, ne da bi ga namestili. Na primer, naslednji ukaz bo v trenutni delovni imenik prenesel samo paket 'nethogs'.
$ sudo apt-get download nethogs
Get:1 Downloading nethogs 0.8.0-1 [27.1 kB] Fetched 27.1 kB in 3s (7,506 B/s)
21. Kako preverim dnevnik sprememb paketov?
Oznaka 'changelog' prenese dnevnik sprememb sprememb in prikaže različico paketa, ki je nameščena.
$ sudo apt-get changelog vsftpd
vsftpd (2.3.5-3ubuntu1) quantal; urgency=low * Merge from Debian testing (LP: #1003644). Remaining changes: + debian/vsftpd.upstart: migrate vsftpd to upstart. + Add apport hook (LP: #513978): - debian/vsftpd.apport: Added. - debian/control: Build-depends on dh-apport. - debian/rules: Add --with apport. + Add debian/watch file. + debian/patches/09-disable-anonymous.patch: Disable anonymous login by default. (LP: #528860) * debian/patches/12-ubuntu-us-snakeoil-ssl.patch: Use snakeoil SSL certificates and key. -- Andres Rodriguez <[email > Wed, 23 May 2012 16:59:36 -0400 ...
22. Kako preverim prekinjene odvisnosti?
Ukaz ‘check’ je diagnostično orodje. Včasih je posodabljal predpomnilnik paketov in preverjal poškodovane odvisnosti.
$ sudo apt-get check
[sudo] password for tecmint: Reading package lists... Done Building dependency tree Reading state information... Done
23. Kako iščem in gradim odvisnosti?
Ta ukaz "build-dep" išče lokalne repozitorije v sistemu in namesti odvisnosti gradnje za paket. Če paket ne obstaja v lokalnem repozitoriju, bo vrnil kodo napake.
$ sudo apt-get build-dep netcat
The following NEW packages will be installed: debhelper dh-apparmor html2text po-debconf quilt 0 upgraded, 5 newly installed, 0 to remove and 328 not upgraded. Need to get 1,219 kB of archives. After this operation, 2,592 kB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://in.archive.ubuntu.com/ubuntu/ quantal/main html2text i386 1.3.2a-15build1 [91.4 kB] Get:2 http://in.archive.ubuntu.com/ubuntu/ quantal/main po-debconf all 1.0.16+nmu2ubuntu1 [210 kB] Get:3 http://in.archive.ubuntu.com/ubuntu/ quantal/main dh-apparmor all 2.8.0-0ubuntu5 [9,846 B] Get:4 http://in.archive.ubuntu.com/ubuntu/ quantal/main debhelper all 9.20120608ubuntu1 [623 kB] Get:5 http://in.archive.ubuntu.com/ubuntu/ quantal/main quilt all 0.60-2 [285 kB] Fetched 1,219 kB in 4s (285 kB/s) ...
24. Kako lahko samodejno očistim predpomnilnik Apt-Get?
Ukaz »autoclean« izbriše vse datoteke .deb iz/var/cache/apt/archives, da sprostijo velik prostor na disku.
$ sudo apt-get autoclean
Reading package lists... Done Building dependency tree Reading state information... Done
25. Kako lahko samodejno odstranim nameščene pakete?
Podukaz »samodejno odstrani« se uporablja za samodejno odstranjevanje paketov, ki so bili zagotovo nameščeni za zadovoljevanje odvisnosti drugih paketov, vendar zdaj niso več potrebni. Naslednji ukaz bo na primer odstranil nameščen paket z njegovimi odvisnostmi.
$ sudo apt-get autoremove vsftpd
Reading package lists... Done Building dependency tree Reading state information... Done Package 'vsftpd' is not installed, so not removed 0 upgraded, 0 newly installed, 0 to remove and 328 not upgraded.
Večino razpoložljivih možnosti sem zajel z ukazoma apt-get in apt-cache, vendar še vedno obstaja več možnosti, ki jih lahko preverite s pomočjo terminala "man apt-get" ali "man apt-cache". Upam, da ste uživali v branju tega članka, če sem kaj zamudil in bi radi, da ga dodam na seznam. V spodnjem komentarju vas prosimo, da to omenite.
Preberite tudi: 20 uporabnih ukazov Linux YUM za upravljanje paketov