15 ví dụ về lệnh dpkg Linux trên CentOS / Ubuntu / Debian / Fedora

Debian GNU/Linux - hệ điều hành gốc của một số bản phân phối Linux bao gồm Knoppix, Kali, Ubuntu, Mint, v.v. sử dụng các trình quản lý gói khác nhau như dpkg, apt, aptitude, synaptic, tasksel, deselect, dpkg-deb và dpkg-split. Trong bài viết này bạn sẽ tìm hiểu được 15 cách sử dụng lệnh dpkg Linux thông qua các ví dụ thực tế.

Các trình quản lý của Debian GNU/Linux

Lệnh APT

Apt viết tắt của Advanced Package Tool. Nó không xử lý trực tiếp các gói 'deb' mà làm việc với các bản ghi '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, là giao diện trước (front-end) cho 'apt', cho phép người dùng quản lý các gói dễ dàng.

Synaptic

Synaptic là một trình quản lý gói đồ họa giúp người dùng dễ dàng cài đặt, nâng cấp và gỡ bỏ các gói, ngay cả với những người mới bắt đầu.

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ụ như môi trường máy tính để bàn (Desktop Environment).

Deselect

Deselect là một công cụ quản lý gói dựa trên 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

dpkg-deb là một công cụ tương tác với Debian archive.

Dpkg-split

dpkg-split là một công cụ hữu ích để chia nhỏ và hợp nhất các tệp lớn thành các phần nhỏ hơn để lưu trữ trên các phương tiện có kích thước 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à các hệ thống dựa trên Debian. Nó được sử dụng để cài đặt, xây dựng, gỡ bỏ và quản lý các gói. Aptitude là giao diện chính cho dpkg Linux.

15 ví dụ thực tế về lệnh dpkg Linux

Cài đặ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 gói ".deb" có tên là "flashpluginnonfree_2.8.2+squeeze1_i386.deb", sử dụng lệnh sau đây.

[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’

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, hãy 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
....

Để xem một gói cụ thể đã được cài đặt hay chưa, sử dụng tùy chọn "-l" kèm theo tên gói. Ví dụ, để kiểm tra xem gói apache2 đã được cài đặt hay chưa, sử dụng lệnh sau đây.

[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

Hủy bỏ một gói

Để gỡ bỏ một gói ".deb", chúng ta phải chỉ định tên gói "flashpluginnonfree", không phải tên gốc "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 vì 'r', điều này sẽ gỡ bỏ gói cùng với các tệp cấu hình. Tùy chọn 'r' chỉ gỡ bỏ gói mà không xóa các tệp cấu hình.

[root@tecmint~]# dpkg -p flashpluginnonfree

Xem nội dung của gói

Để xem nội dung của một gói cụ thể, sử dụng tùy chọn "-c" như dưới đây. 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 chi tiết.

[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/
....

Kiểm tra gói đã được cài đặt hay chưa

Sử dụng tùy chọn "-s" kèm theo tên gói trong lệnh dpkg Linux, bạn có thể hiển thị thông tin về việc cài đặt gói deb.

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

Kiểm tra vị trí của các gói được cài đặt

Để liệt kê vị trí của các tệp được cài đặt vào hệ thống từ một gói cụ thể.

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

Cài đặt tất cả các gói từ một thư mục

Để cài đặt đệ quy tất cả các tệp tin thường phù hợp với mẫu "*.deb" từ các thư mục đã chỉ định và tất cả các thư mục con của chúng, bạn có thể sử dụng tùy chọn "-R" và "--install" kèm theo. Ví dụ, để cài đặt tất cả các gói ".deb" từ thư mục có tên là "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 ...

Giải nén gói nhưng không cấu hình

Sử dụng hành động "--unpack" của lệnh dpkg Linux sẽ giải nén gói tin, 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 ...

Cấu hình lại gói đã giải nén

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

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

Thay thế thông tin gói có sẵn

Tùy chọn "--update-avail" thay thế thông tin cũ bằng thông tin có sẵn trong tệp Packages.

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

Xóa thông tin hiện có của gói

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

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

Quên các gói đã gỡ cài đặt và không khả dụng

Tùy chọn "--forget-old-unavail" trong lệnh dpkg Linux sẽ tự động quên các gói tin không được cài đặt và không có sẵn.

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

Hiển thị thông tin về giấy phép của dpkg Linux

[root@tecmint~]# dpkg --licence

Hiển thị phiên bản dpkg Linux

Đối số “ –version ” sẽ hiển thị thông tin phiên bản 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.

2.15.  Nhận tất cả trợ giúp về dpkg Linux

Tùy chọn “ –help ” sẽ hiển thị danh sách các tùy chọn khả dụng của lệnh dpkg Linux.

[root@tecmint~]# dpkg –help

Usage: dpkg [<option> ...] <command>

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

Lệnh dpkg Linux và 15 ví dụ cơ bản bên trên đã đủ để bạn vận dụng vào trong công việc hằng ngày. Hãy thực hành và áp dụng chúng thường xuyên để ngày càng cải thiện kỹ năng làm việc trên hệ điều hành.

Mọi người cũng tìm kiếm: dpkg, dpkg linux, dầu dkgp, linux dpkg, dpkg -f, dpkg centos.