25 ví dụ lệnh Apt-get và Apt-cache trên Centos / Ubuntu / Debian / Fedora

apt-cache là công cụ dòng lệnh được sử dụng để tìm kiếm trong bộ nhớ cache gói phần mềm apt. Nó được sử dụng để tìm kiếm các gói phần mềm, thu thập thông tin về các gói và cũng được sử dụng để tìm kiếm các gói phần mềm có sẵn để cài đặt trên các hệ thống dựa trên Debian hoặc Ubuntu.

apt-get là một tiện ích quản lý gói mạnh mẽ và miễn phí dòng lệnh, được sử dụng làm việc với thư viện APT (Advanced Packaging Tool) của Ubuntu để thực hiện cài đặt gói phần mềm mới, gỡ bỏ gói phần mềm hiện có, nâng cấp gói phần mềm hiện có và thậm chí cập nhật toàn bộ hệ điều hành.

Liệt kê tất cả các gói phần mềm có sẵn bằng lệnh apt-cache

Để liệt kê tất cả các gói phần mềm có sẵn, gõ lệnh sau:

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

Tìm tên và mô tả gói phần mềm bằng lệnh apt-cache

Để tìm tên gói và mô tả trước khi cài đặt, sử dụng tùy chọn 'search'. Sử dụng "search" với apt-cache sẽ hiển thị danh sách các gói phù hợp với mô tả ngắn. Ví dụ, nếu bạn muốn tìm mô tả gói 'vsftpd', sử dụng lệnh sau:

$ 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

Để tìm và liệt kê tất cả các gói bắt đầu bằng 'vsftpd', bạn có thể sử dụng lệnh sau:

$ apt-cache pkgnames vsftpd
vsttpd

Kiểm tra thông tin về gói phần mềm sử dụng lệnh apt-cache

Ví dụ, nếu bạn muốn kiểm tra thông tin về gói phần mềm cùng với mô tả ngắn (số phiên bản, kiểm tra tổng, kích thước, kích thước đã cài đặt, danh mục, v.v.), sử dụng lệnh 'show' như sau:

$ apt-cache show netcat
Package: netcat
Priority: optional
Section: universe/net
Installed-Size: 30
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Ruben Molina <rmolina@udea.edu.co>
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

Kiểm tra phụ thuộc cho các gói cụ thể bằng lệnh apt-cache

Sử dụng lệnh 'showpkg' để kiểm tra phụ thuộc cho các gói phần mềm cụ thể, xem liệu các gói phụ thuộc đã được cài đặt hay chưa. Ví dụ, sử dụng lệnh 'showpkg' cùng với tên gói:

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

Kiểm tra thống kê của bộ nhớ cache bằng lệnh apt-cache

Lệnh 'stats' sẽ hiển thị thống kê tổng quan về bộ nhớ cache. Ví dụ, lệnh sau sẽ hiển thị số lượng gói phần mềm tổng cộng trong cache:

$ 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

Cập nhật các gói hệ thống bằng apt-get

Lệnh 'update' được sử dụng để đồng bộ lại các tệp chỉ mục gói phần mềm từ các nguồn được chỉ định trong tệp /etc/apt/sources.list. Lệnh update sẽ tải các gói phần mềm từ vị trí của chúng và cập nhật các gói phần mềm lên phiên bản mới hơn.

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

Nâng cấp các gói phần mềm bằng lệnh apt-get

Lệnh 'upgrade' được sử dụng để nâng cấp tất cả các gói phần mềm đang được cài đặt trên hệ thống. Dưới bất kỳ trường hợp nào, các gói đã được cài đặt hiện tại sẽ không bị gỡ bỏ hoặc các gói chưa được cài đặt sẽ không được tải về và cài đặt để đáp ứng các phụ thuộc nâng cấp.

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

Lưu ý: Trong trường hợp cần nâng cấp toàn bộ hệ điều hành, bạn có thể sử dụng lệnh sudo apt-get dist-upgrade.

$ sudo apt-get dist-upgrade

Cài đặt hoặc nâng cấp các gói phần mềm cụ thể

Lệnh 'install' được sử dụng để theo dõi một hoặc nhiều gói phần mềm để cài đặt hoặc nâng cấp.

$ sudo apt-get install netca
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) ...

Cài đặt nhiều gói phần mềm cùng một lúc

Bạn có thể thêm nhiều tên gói vào lệnh để cài đặt nhiều gói phần mềm cùng một lúc. Ví dụ, lệnh sau sẽ cài đặt các gói 'nethogs' và '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.

Cài đặt nhiều gói sử dụng ký tự đại diện

Với sự trợ giúp của biểu thức chính quy, bạn có thể thêm nhiều gói bằng một chuỗi ký tự duy nhất. Ví dụ, chúng ta sử dụng ký tự đại diện '*' để cài đặt nhiều gói chứa chuỗi 'name', trong đó 'name' là tên gói.

$ sudo apt-get install '*name*'

Cài đặt các gói mà không nâng cấp

Sử dụng tham số '--no-upgrade' sẽ ngăn không cho các gói đã cài đặt nâng cấp.

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

Nâng cấp chỉ các gói cụ thể

Tham số '--only-upgrade' chỉ nâng cấp các gói đã được cài đặt mà không cài đặt gói mới.

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

Cài đặt phiên bản cụ thể của gói phần mềm

Giả sử bạn muốn cài đặt chỉ phiên bản cụ thể của gói, chỉ cần sử dụng dấu '=' với tên gói và thêm phiên bản mong muốn.

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

Gỡ bỏ các gói mà không xóa các tệp cấu hình

Để gỡ bỏ các gói phần mềm mà không xóa các tệp cấu hình của chúng (để tái sử dụng cấu hình sau này), sử dụng lệnh 'remove' như sau.

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

Hoàn toàn gỡ bỏ các gói

Để gỡ bỏ các gói phần mềm bao gồm cả tệp cấu hình của chúng, sử dụng lệnh phụ 'purge' như sau:

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

Thay vào đó, bạn có thể kết hợp nhiều lệnh với nhau như dưới đây:

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

Làm sạch không gian đĩa

Lệnh 'clean' được sử dụng để giải phóng không gian đĩa bằng cách làm sạch các tệp .deb (gói) đã được tải về từ kho lưu trữ cục bộ.

$ sudo apt-get clean

Chỉ tải xuống mã nguồn của một gói

Để chỉ tải xuống mã nguồn của một gói cụ thể, sử dụng tùy chọn '--download-only source' kèm với 'tên-gói' như sau:

$ 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

Tải xuống và giải nén một gói

Để tải xuống và giải nén mã nguồn của một gói vào một thư mục cụ thể, gõ lệnh sau đây:

$ 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

Tải xuống, giải nén và biên dịch một gói

Bạn cũng có thể tải xuống, giải nén và biên dịch mã nguồn cùng một lúc, sử dụng tùy chọn '--compile' như sau:

$ 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 <ctaylor@debian.org>
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.)
...

Tải xuống một gói mà không cài đặt

Sử dụng tùy chọn 'download', bạn có thể chỉ tải xuống một gói cụ thể mà không cài đặt nó. Ví dụ, lệnh sau chỉ tải xuống gói 'nethogs' vào thư mục làm việc hiện tại.

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

Kiểm tra lịch sử thay đổi của gói

Tùy chọn 'changelog' sẽ tải xuống lịch sử thay đổi của một gói và hiển thị phiên bản gói đã được cài đặt.

$ 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 <andreserl@ubuntu.com>  Wed, 23 May 2012 16:59:36 -0400
...

Kiểm tra các phụ thuộc hỏng

Lệnh 'check' là một công cụ chẩn đoán. Nó được sử dụng để cập nhật bộ nhớ cache gói và kiểm tra các phụ thuộc hỏng.

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

Tìm kiếm và xây dựng các phụ thuộc

Lệnh 'build-dep' tìm kiếm trong các kho lưu trữ cục bộ trên hệ thống và cài đặt các phụ thuộc cần thiết cho việc xây dựng gói. Nếu gói không tồn tại trong kho lưu trữ cục bộ, nó sẽ trả về một mã lỗi.

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

Tự động làm sạch bộ nhớ cache Apt-Get

Lệnh 'autoclean' xóa tất cả các tệp .deb từ /var/cache/apt/archives để giải phóng một lượng lớn không gian đĩa.

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

Tự động gỡ bỏ các gói đã được cài đặt

Lệnh phụ 'autoremove' được sử dụng để tự động gỡ bỏ các gói đã được cài đặt để đáp ứng các phụ thuộc cho các gói khác nhưng không còn cần thiết nữa. Ví dụ, lệnh sau sẽ gỡ bỏ một gói đã được cài đặt cùng với các phụ thuộc của nó.

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

Chúng ta đã đề cập đến hầu hết các tùy chọn có sẵn với các lệnh apt-get và apt-cache, nhưng vẫn còn nhiều tùy chọn khác, bạn có thể kiểm tra chúng bằng cách sử dụng 'man apt-get' hoặc 'man apt-cache' từ terminal. Hy vọng bạn đã thích đọc bài viết này. Nếu đã bỏ sót điều gì và bạn muốn bổ sung vào danh sách, xin vui lòng đề cập trong phần bình luận dưới đây.

Mọi người cũng tìm kiếm: centos netcat