25 nyttige grundlæggende kommandoer for APT-GET og APT-CACHE til pakkehåndtering


Denne artikel forklarer, hvor hurtigt du kan lære at installere, fjerne, opdatere og søge softwarepakker ved hjælp af apt-get og apt-cache-kommandoer fra kommandolinjen. Denne artikel indeholder nogle nyttige kommandoer, der hjælper dig med at håndtere pakkehåndtering i Debian/Ubuntu-baserede systemer.

Apt-get-værktøjet er et kraftfuldt og gratis pakkehåndteringskommandoprogram, der bruges til at arbejde med Ubuntus APT (Advanced Packaging Tool) -bibliotek til at udføre installation af nye softwarepakker, fjerne eksisterende softwarepakker, opgradering af eksisterende softwarepakker og endda bruges til at opgradere hele operativsystemet.

Kommandolinjeværktøjet apt-cache bruges til at søge i apt-softwarepakke-cache. Med enkle ord bruges dette værktøj til at søge softwarepakker, samler information om pakker og bruges også til at søge efter, hvilke tilgængelige pakker der er klar til installation på Debian- eller Ubuntu-baserede systemer.

1. Hvordan viser jeg alle tilgængelige pakker?

For at liste alle tilgængelige pakker skal du skrive følgende kommando.

$ 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. Hvordan finder jeg ud af pakkens navn og beskrivelse af softwaren?

For at finde ud af pakkens navn og med beskrivelsen, inden du installerer, skal du bruge 'søg' -flagget. Brug af "søgning" med apt-cache viser en liste over matchede pakker med kort beskrivelse. Lad os sige, at du gerne vil finde ud af beskrivelsen af pakken 'vsftpd', så ville kommandoen være.

$ 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

For at finde og liste ned alle pakker, der starter med 'vsftpd', kan du bruge følgende kommando.

$ apt-cache pkgnames vsftpd
vsttpd

3. Hvordan kontrollerer jeg pakkeoplysninger?

For eksempel, hvis du vil kontrollere oplysninger om pakken sammen med den korte beskrivelse siger (version nummer, kontrolsummer, størrelse, installeret størrelse, kategori osv.). Brug 'vis' underkommando som vist nedenfor.

$ 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. Hvordan kontrollerer jeg afhængigheder for specifikke pakker?

Brug kommandoen "showpkg" til at kontrollere afhængighederne for bestemte softwarepakker. om disse afhængighedspakker er installeret eller ej. Brug for eksempel kommandoen 'showpkg' sammen med pakke-navn.

$ 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. Hvordan kontrollerer jeg statistik over cache?

Underkommandoen ‘statistik’ viser overordnede statistikker om cachen. For eksempel viser følgende kommando Totalpakkenavne er antallet af pakker, der er fundet i cachen.

$ 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. Sådan opdateres systempakker

Kommandoen 'opdatering' bruges til at resynkronisere pakkeindeksfilerne fra deres kilder angivet i /etc/apt/sources.list-filen. Opdateringskommandoen hentede pakkerne fra deres placeringer og opdaterede pakkerne til nyere version.

$ 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. Sådan opgraderes softwarepakker

Kommandoen 'opgrader' bruges til at opgradere alle de aktuelt installerede softwarepakker på systemet. Under alle omstændigheder fjernes aktuelt installerede pakker ikke, eller pakker, som ikke allerede er installeret, hverken hentes og installeres for at tilfredsstille opgraderingsafhængigheder.

$ 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
   ...

Men hvis du ønsker at opgradere, uanset om softwarepakker tilføjes eller fjernes for at opfylde afhængigheder, skal du bruge underkommandoen ‘dist-upgrade’.

$ sudo apt-get dist-upgrade

8. Hvordan installerer eller opgraderer jeg specifikke pakker?

Underkommandoen ‘installer’ spores af en eller flere pakker, der ønsker installation eller opgradering.

$ 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. Hvordan kan jeg installere flere pakker?

Du kan tilføje mere end et pakkenavn sammen med kommandoen for at installere flere pakker på samme tid. For eksempel vil følgende kommando installere pakkerne 'nethogs' og '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. Sådan installeres flere pakker ved hjælp af jokertegn

Ved hjælp af regulært udtryk kan du tilføje flere pakker med en streng. For eksempel bruger vi * jokertegn til at installere flere pakker, der indeholder '* navn *' streng, navn ville være 'pakke-navn'.

$ sudo apt-get install '*name*'

11. Sådan installeres pakker uden opgradering

Brug af kommandoen sub ‘–no-upgrade’ forhindrer allerede installerede pakker i at opgradere.

$ 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. Sådan opgraderes kun specifikke pakker

Kommandoen ‘–only-upgrade’ installerer ikke nye pakker, men den opgraderer kun de allerede installerede pakker og deaktiverer ny installation af pakker.

$ 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. Hvordan installerer jeg specifik pakkeversion?

Lad os sige, at du kun vil installere en specifik version af pakkerne, skal du blot bruge '=' med pakkenavnet og tilføje den ønskede version.

$ 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. Hvordan fjerner jeg pakker uden konfiguration

At afinstallere softwarepakker uden at fjerne deres konfigurationsfiler (til senere genbrug af den samme konfiguration). Brug kommandoen “Fjern” som vist.

$ 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. Hvordan fjerner jeg pakker fuldstændigt

For at fjerne softwarepakker inklusive deres konfigurationsfiler skal du bruge underkommandoen 'rens' som vist nedenfor.

$ 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 ...

Alternativt kan du kombinere begge kommandoer sammen som vist nedenfor.

$ 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. Hvordan jeg kan rydde op på diskplads

Kommandoen ‘ren’ bruges til at frigøre diskplads ved at rense hentede (downloadede) .deb-filer (pakker) fra det lokale lager.

$ sudo apt-get clean

17. Hvordan downloader jeg kun kildekoden til pakken

Hvis du kun vil downloade kildekoden til en bestemt pakke, skal du bruge indstillingen 'kun kilde til download' med 'pakke-navn' som vist.

$ 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. Hvordan kan jeg downloade og pakke en pakke ud

For at downloade og pakke kildekoden til en pakke til et bestemt bibliotek, skal du skrive følgende kommando.

$ 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. Hvordan kan jeg downloade, pakke ud og kompilere en pakke

Du kan også downloade, pakke ud og kompilere kildekoden på samme tid ved hjælp af indstillingen '–kompilere' som vist nedenfor.

$ 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. Hvordan downloader jeg en pakke uden installation?

Ved hjælp af "download" -indstillingen kan du downloade en given pakke uden at installere den. For eksempel vil følgende kommando kun downloade 'nethogs' -pakken til det aktuelle arbejdskatalog.

$ 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. Hvordan kontrollerer jeg ændringslog for pakke?

Flagget 'changelog' downloader en pakkeændringslog og viser den pakkeversion, der er installeret.

$ 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. Hvordan kontrollerer jeg ødelagte afhængigheder?

Kommandoen 'check' er et diagnostisk værktøj. Det plejede at opdatere pakke cache og kontrollere for ødelagte afhængigheder.

$ sudo apt-get check
[sudo] password for tecmint: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done

23. Hvordan søger og bygger jeg afhængigheder?

Denne 'build-dep' kommando søger i de lokale arkiver i systemet og installerer buildafhængighederne til pakken. Hvis pakken ikke findes i det lokale lager, returnerer den en fejlkode.

$ 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. Hvordan kan jeg automatisk rense Apt-Get Cache?

Kommandoen 'autoclean' sletter alle .deb-filer fra/var/cache/apt/arkiver for at frigøre en betydelig mængde diskplads.

$ sudo apt-get autoclean
Reading package lists... Done
Building dependency tree       
Reading state information... Done

25. Hvordan kan jeg automatisk fjerne installerede pakker?

Underkommandoen 'autoremove' bruges til automatisk at fjerne pakker, der bestemt var installeret for at tilfredsstille afhængigheder for andre pakker, men som nu ikke længere var nødvendige. For eksempel vil følgende kommando fjerne en installeret pakke med dens afhængigheder.

$ 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.

Jeg har dækket de fleste af de tilgængelige muligheder med apt-get og apt-cache-kommandoer, men der er stadig flere tilgængelige muligheder, du kan tjekke dem ud ved hjælp af 'man apt-get' eller 'man apt-cache' fra terminalen. Jeg håber du nød at læse denne artikel. Hvis jeg har gået glip af noget, og du vil have mig til at føje til listen. Du er velkommen til at nævne i kommentaren nedenfor.

Læs også: 20 nyttige Linux YUM-kommandoer til pakkehåndtering