Sử dụng các lệnh dpkg trong Debian [15 ví dụ]

Debian GNU/Linux, hệ điều hành mẹ của một số bản phân phối Linux bao gồm KnoppixKaliUbuntuMint, vv. sử dụng các trình quản lý gói khác nhau như dpkgaptaptitudesynaptictaskseldeselectdpkg-deb và dpkg-split.

Các ví dụ lệnh dpkg

Chúng tôi sẽ mô tả mỗi công cụ này một cách ngắn gọn trước khi tập trung vào lệnh ‘dpkg‘.

Lệnh APT

Apt là viết tắt của Advanced Package Tool (Công cụ Gói Tiên tiến). Nó không xử lý các gói ‘deb‘ trực tiếp, nhưng làm việc với các gói ‘deb‘ từ vị trí được chỉ định trong tệp “/etc/apt/sources.list”.

Aptitude

Aptitude là một trình quản lý gói dựa trên văn bản cho Debian thuận tiện là một giao diện trước cho ‘apt‘, giúp người dùng quản lý các gói một cách dễ dàng.

Synaptic

Trình quản lý gói đồ họa giúp việc cài đặtnâng cấp và gỡ bỏ các gói dễ dàng, ngay cả với người mới sử dụng.

Tasksel

Tasksel cho phép người dùng cài đặt tất cả các gói liên quan đến một nhiệm vụ cụ thể, ví dụ, môi trường đồ họa máy tính để bàn.

Deselect

Một công cụ quản lý gói theo menu, ban đầu được sử dụng trong quá trình cài đặt lần đầu và hiện đã được thay thế bằng aptitude.

Dpkg-deb

Tương tác với bộ lưu trữ Debian.

Dpkg-split

Hữu ích trong việc chia nhỏ và hợp nhất các tệp lớn thành các tệp nhỏ hơn để lưu trữ trên phương tiện nhỏ hơn như đĩa mềm.

Lệnh Dpkg

dpkg là chương trình quản lý gói chính trong Debian và hệ thống dựa trên Debian. Nó được sử dụng để cài đặtxây dựnggỡ bỏ, và quản lý các gói. ‘Aptitude’ là giao diện người dùng chính cho dpkg.

Dưới đây là một số lệnh dpkg thông dụng nhất cùng với cách sử dụng:

1. Cài đặt một Gói

Để cài đặt một gói “.deb”, sử dụng lệnh với tùy chọn “-i”. Ví dụ, để cài đặt một gói “.deb” có tên “flashpluginnonfree_2.8.2+squeeze1_i386.deb”, sử dụng lệnh sau:

[root@tecmint~]# dpkg -i flashpluginnonfree_2.8.2+squeeze1_i386.deb
Selecting previously unselected package flashplugin-nonfree.
(Reading database ... 465729 files and directories currently installed.)
Unpacking flashplugin-nonfree (from flashplugin-nonfree_3.2_i386.deb) ...
Setting up flashplugin-nonfree (1:3.2) ...
--2013-10-01 16:23:40--  http://fpdownload.macromedia.com/get/flashplayer/pdc/11.2.202.310/install_flash_player_11_linux.i386.tar.gz
Resolving fpdownload.macromedia.com (fpdownload.macromedia.com)... 23.64.66.70
Connecting to fpdownload.macromedia.com (fpdownload.macromedia.com)|23.64.66.70|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6923724 (6.6M) [application/x-gzip]
Saving to: ‘/tmp/flashplugin-nonfree.FPxQ4l02fL/install_flash_player_11_linux.i386.tar.gz’

2. Liệt kê tất cả các Gói đã cài đặt

Để xem và liệt kê tất cả các gói đã cài đặt, sử dụng tùy chọn “-l” cùng với lệnh.

[root@tecmint~]# dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                   Version                  Architecture    Description
+++-======================================-========================-===============================================================================
ii  accerciser                             3.8.0-0ubuntu1           all             interactive Python accessibility explorer for the GNOME desktop
ii  account-plugin-aim                     3.6.4-0ubuntu4.1         i386            Messaging account plugin for AIM
ii  account-plugin-facebook                0.10bzr13.03.26-0ubuntu1 i386            GNOME Control Center account plugin for single signon - facebook
ii  account-plugin-flickr                  0.10bzr13.03.26-0ubuntu1 i386            GNOME Control Center account plugin for single signon - flickr
ii  account-plugin-generic-oauth           0.10bzr13.03.26-0ubuntu1 i386            GNOME Control Center account plugin for single signon - generic OAuth
ii  account-plugin-google                  0.10bzr13.03.26-0ubuntu1 i386            GNOME Control Center account plugin for single signon
rc  account-plugin-identica                0.10bzr13.03.26-0ubuntu1 i386            GNOME Control Center account plugin for single signon - identica
ii  account-plugin-jabber                  3.6.4-0ubuntu4.1         i386            Messaging account plugin for Jabber/XMPP
....

Để kiểm tra xem một gói cụ thể đã được cài đặt hay chưa, sử dụng tùy chọn “-l” cùng với tên gói. Ví dụ, kiểm tra xem gói apache2 đã được cài đặt hay chưa.

[root@tecmint~]# dpkg -l apache2
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                   Version                  Architecture    Description
+++-======================================-========================-==============================================
ii  apache2                                2.2.22-6ubuntu5.1        i386            Apache HTTP Server metapackage

3. Gỡ bỏ một Gói

Để gỡ bỏ gói “.deb”, chúng ta phải chỉ định tên gói là “flashpluginnonfree“, không phải tên gốc là “flashplugin-nonfree_3.2_i386.deb“. Tùy chọn “-r” được sử dụng để gỡ bỏ/gỡ cài đặt một gói.

[root@tecmint~]# dpkg -r flashpluginnonfree
(Reading database ... 142891 files and directories currently installed.) 
Removing flashpluginnonfree ... 
Processing triggers for man-db ... 
Processing triggers for menu ... 
Processing triggers for desktop-file-utils ... 
Processing triggers for gnome-menus ...

Bạn cũng có thể sử dụng tùy chọn ‘p‘ thay cho ‘r’ để gỡ bỏ gói cùng với tệp cấu hình. Tùy chọn ‘r‘ chỉ gỡ bỏ gói mà không loại bỏ các tệp cấu hình.

[root@tecmint~]# dpkg -p flashpluginnonfree

4. Xem nội dung của một Gói

Để xem nội dung của một gói cụ thể, sử dụng tùy chọn “-c” như sau. Lệnh này sẽ hiển thị nội dung của một gói “.deb” dưới dạng danh sách dài.

[root@tecmint~]# dpkg -c flashplugin-nonfree_3.2_i386.deb
drwxr-xr-x root/root         0 2012-12-14 22:54 ./
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/bin/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/lib/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/lib/mozilla/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/lib/mozilla/plugins/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/lib/flashplugin-nonfree/
-rw-r--r-- root/root      3920 2009-09-09 22:51 ./usr/lib/flashplugin-nonfree/pubkey.asc
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/man/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/man/man8/
-rw-r--r-- root/root       716 2012-12-14 22:54 ./usr/share/man/man8/update-flashplugin-nonfree.8.gz
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/applications/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/icons/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/icons/hicolor/
drwxr-xr-x root/root         0 2012-12-14 22:54 ./usr/share/icons/hicolor/24x24/
....

5. Kiểm tra một Gói đã được cài đặt hay chưa

Sử dụng tùy chọn “-s” với tên gói, sẽ hiển thị liệu một gói “deb” đã được cài đặt hay chưa.

[root@tecmint~]# dpkg -s flashplugin-nonfree
Package: flashplugin-nonfree
Status: install ok installed
Priority: optional
Section: contrib/web
Installed-Size: 177
Maintainer: Bart Martens <bartm@debian.org>
Architecture: i386
Version: 1:3.2
Replaces: flashplugin (<< 6)
Depends: debconf | debconf-2.0, wget, gnupg, libatk1.0-0, libcairo2, libfontconfig1, libfreetype6, libgcc1, libglib2.0-0, libgtk2.0-0 (>= 2.14), libnspr4, libnss3, libpango1.0-0, libstdc++6, libx11-6, libxext6, libxt6, libcurl3-gnutls, binutils
Suggests: iceweasel, konqueror-nsplugins, ttf-mscorefonts-installer, ttf-dejavu, ttf-xfree86-nonfree, flashplugin-nonfree-extrasound, hal
Conflicts: flashplayer-mozilla, flashplugin (<< 6), libflash-mozplugin, xfs (<< 1:1.0.1-5)
Description: Adobe Flash Player - browser plugin
...

6. Kiểm tra vị trí của các Gói đã cài đặt

Để liệt kê vị trí của các tệp sẽ được cài đặt từ tên gói.

[root@tecmint~]# dpkg -L flashplugin-nonfree
/.
/usr
/usr/bin
/usr/lib
/usr/lib/mozilla
/usr/lib/mozilla/plugins
/usr/lib/flashplugin-nonfree
/usr/lib/flashplugin-nonfree/pubkey.asc
/usr/share
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/update-flashplugin-nonfree.8.gz
/usr/share/applications
/usr/share/icons
/usr/share/icons/hicolor
...

7. Cài đặt tất cả các Gói từ Một Thư mục

Đệ quy, cài đặt tất cả các tệp thông thường khớp với mẫu “*.deb” được tìm thấy tại các thư mục được chỉ định và tất cả các thư mục con của nó. Điều này có thể được sử dụng với tùy chọn “-R” và “--install”. Ví dụ, tôi sẽ cài đặt tất cả các gói “.deb” từ thư mục có tên “debpackages“.

[root@tecmint~]# dpkg -R --install debpackages/
(Reading database ... 465836 files and directories currently installed.)
Preparing to replace flashplugin-nonfree 1:3.2 (using .../flashplugin-nonfree_3.2_i386.deb) ...
Unpacking replacement flashplugin-nonfree ...
Setting up flashplugin-nonfree (1:3.2) ...
Processing triggers for man-db ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus ...

8. Giải nén Gói nhưng không Cấu hình

Sử dụng hành động “--unpack” sẽ giải nén gói nhưng không cài đặt hoặc cấu hình nó.

[root@tecmint~]# dpkg --unpack flashplugin-nonfree_3.2_i386.deb
(Reading database ... 465836 files and directories currently installed.)
Preparing to replace flashplugin-nonfree 1:3.2 (using flashplugin-nonfree_3.2_i386.deb) ...
Unpacking replacement flashplugin-nonfree ...
Processing triggers for man-db ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus ...

9. Cấu hình lại Một Gói đã Giải nén

Tùy chọn “--configure” sẽ cấu hình lại một gói đã giải nén trước đó.

[root@tecmint~]# dpkg --configure flashplugin-nonfree
Setting up flashplugin-nonfree (1:3.2) ...

10. Thay thế thông tin Gói có sẵn

Tùy chọn “--update-avail” sẽ thay thế thông tin cũ bằng thông tin hiện có trong tệp Danh sách Gói.

[root@tecmint~]# dpkg –-update-avail package_name

11. Xóa thông tin Gói có sẵn hiện tại

Hành động “--clear-avaial” sẽ xóa thông tin hiện tại về các gói có sẵn.

[root@tecmint~]# dpkg –-clear-avail

12. Làm quên Gói đã Gỡ cài đặt và Không có sẵn

lệnh dpkg với tùy chọn “--forget-old-unavail” sẽ tự động làm quên các gói đã được gỡ cài đặt và không có sẵn nữa.

[root@tecmint~]# dpkg --forget-old-unavail

13. Hiển thị Giấy phép dpkg

[root@tecmint~]# dpkg --licence

14. Hiển thị phiên bản dpkg

Đối số “--version” sẽ hiển thị thông tin phiên bản của dpkg.

[root@tecmint~]# dpkg –version
Debian `dpkg' package management program version 1.16.10 (i386).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.

15. Nhận tất cả Trợ giúp về dpkg

Tùy chọn “--help” sẽ hiển thị danh sách các tùy chọn có sẵn của lệnh dpkg.

[root@tecmint~]# dpkg –help
Usage: dpkg [ ...] 

Commands:
  -i|--install       <.deb file name> ... | -R|--recursive  ...
  --unpack           <.deb file name> ... | -R|--recursive  ...
  -A|--record-avail  <.deb file name> ... | -R|--recursive  ...
  --configure         ... | -a|--pending
  --triggers-only     ... | -a|--pending
  -r|--remove         ... | -a|--pending
  -P|--purge          ... | -a|--pending
  --get-selections [ ...] Get list of selections to stdout.
  --set-selections                 Set package selections from stdin.
  --clear-selections               Deselect every non-essential package.
  --update-avail    Replace available packages info.
  --merge-avail     Merge with info from file.
  --clear-avail                    Erase existing available info.
  --forget-old-unavail             Forget uninstalled unavailable pkgs.
  -s|--status  ...        Display package status details.
...

Đó là tất cả những gì chúng ta có cho bây giờ. Sớm có một bài viết thú vị khác từ tôi. Nếu tôi đã bỏ sót bất kỳ lệnh nào trong danh sách, hãy cho tôi biết qua bình luận. Đến lúc đó, hãy tiếp tục và duy trì kết nối với Tecmint. Hãy like và chia sẻ chúng tôi và giúp chúng tôi lan tỏa. Đừng quên nhắc đến suy nghĩ quý giá của bạn trong bình luận.