Debian GNU/Linux, hệ điều hành mẹ của một số bản phân phối Linux bao gồm Knoppix, Kali, Ubuntu, Mint, vv. 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.
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 đặt, nâ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 đặt, xây dựng, gỡ 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.