Wednesday, 18 September 2013

[CLI] Các lệnh quản lý package trên ubuntu/debian

Đây không phải bài hướng dẫn dùng apt-get, mà giới thiệu các câu lệnh hữu ích trong việc quản lý package trên hệ thống Ubuntu/debian

Bài viết test trên ubuntu 12.04 x86

1. Tìm package
Khi bạn biết tên 1phần mềm không có nghĩa là bạn biết tên package.
Ví dụ: bạn muốn cài rabbitmq server, chạy apt-get install rabbitmq sẽ trả về lỗi do không có package nào tên là rabbitmq cả.
Bạn có thể tìm tên package bằng lệnh:

apt-cache search tu_khoa

Từ khóa thường là tên phần mềm, lệnh này sẽ tìm tu_khoa trong tên, phần mô tả của package.

hvn@u1204: ~ () $ apt-cache search rabbitmq
rabbitmq-server - An AMQP server written in Erlang
amqp-tools - Command-line utilities for interacting with AMQP servers
drizzle-plugin-rabbitmq - RabbitMQ Transaction Log for Drizzle
...
python-celery-doc - async task/job queue based on message passing (Documentation)
rabbitmq-erlang-client - Erlang client for RabbitMQ
rabbitmq-stomp - A STOMP gateway for RabbitMQ


Tương tự với mysql server:

hvn@u1204: ~ () $ apt-cache search mysql | grep server
libdbd-mysql - MySQL database server driver for libdbi
mysql-server - MySQL database server (metapackage depending on the latest version)
mysql-server-5.5 - MySQL database server binaries and system database setup
mysql-server-core-5.5 - MySQL database server binaries
aolserver4-nsmysql - AOLserver 4 module: module for accessing MySQL databases
courier-webadmin - Courier mail server - web-based administration frontend
dpm-copy-server-mysql - DPM copy server with MySQL database backend
dpm-name-server-mysql - DPM nameserver server with MySQL database backend

2. Hiện thông tin về 1 package

Dùng lệnh
apt-cache show ten_package

hvn@u1204: ~ () $ apt-cache show rabbitmq-server
Package: rabbitmq-server
Priority: extra
Section: net
Installed-Size: 3257
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: RabbitMQ Team <packaging@rabbitmq.com>
Architecture: all
Version: 2.7.1-0ubuntu4
Replaces: rabbitmq-plugins-common (<< 2.7.1)
Depends: erlang-nox (>= 1:12.b.3), adduser, logrotate
Breaks: rabbitmq-plugins-common (<< 2.7.1)
Filename: pool/main/r/rabbitmq-server/rabbitmq-server_2.7.1-0ubuntu4_all.deb
Size: 2744778
MD5sum: b5f2e6803efebd53cec81cd92a10875c
SHA1: 9823223e7b1f90bddd9f387b19cf5c868590e9d6
SHA256: fc2a538b564e9133b3e454ad2def63e555d80a62c7179ed12ac6e9c1e4a47f16
Description-en: An AMQP server written in Erlang
 RabbitMQ is an implementation of AMQP, the emerging standard for high
 performance enterprise messaging. The RabbitMQ server is a robust and
 scalable implementation of an AMQP broker.
Homepage: http://www.rabbitmq.com/
Description-md5: 84b4ba9b1e860e3e631ab2c47dc87650
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y

Khi tìm hiểu về 1 phần mềm / package, các thông tin hiện ở đây rất hữu ích, nó cho biết version của package, các package mà nó phụ thuộc. Ví dụ ở đây:

hvn@u1204: ~ () $ apt-cache show rabbitmq-server | grep Version
Version: 2.7.1-0ubuntu4
hvn@u1204: ~ () $ apt-cache show rabbitmq-server | grep Depend
Depends: erlang-nox (>= 1:12.b.3), adduser, logrotate

3. Cài đặt phần mềm trên Ubuntu

Dùng cặp lệnh :
$ sudo apt-get update
$ sudo apt-get install TÊN_PACKAGE # ví dụ sudo apt-get install git 

4. Danh sách các package đã cài.

Dùng lệnh:
dpkg -l

Ví dụ, muốn tìm xem trên máy có package nào có chữ vim trong tên hoặc phần mô tả:
root@hvn-dev-0916:~# dpkg -l '*vim*'
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                         Description
+++-===============================-===============================-==============================================================================
ii  vim                             2:7.3.429-2ubuntu2.1            Vi IMproved - enhanced vi editor
un  vim-athena                      <none>                          (no description available)
ii  vim-common                      2:7.3.429-2ubuntu2.1            Vi IMproved - Common files
un  vim-doc                         <none>                          (no description available)
un  vim-gnome                       <none>                          (no description available)
un  vim-gtk                         <none>                          (no description available)
un  vim-nox                         <none>                          (no description available)
ii  vim-runtime                     2:7.3.429-2ubuntu2.1            Vi IMproved - Runtime files
un  vim-scripts                     <none>                          (no description available)
ii  vim-tiny                        2:7.3.429-2ubuntu2.1            Vi IMproved - enhanced vi editor - compact version
hoặc
hvn@u1204: ~ () $ dpkg -l | grep vim
ii  vim                               2:7.3.429-2ubuntu2.1         Vi IMproved - enhanced vi editor
ii  vim-common                        2:7.3.429-2ubuntu2.1         Vi IMproved - Common files
ii  vim-runtime                       2:7.3.429-2ubuntu2.1         Vi IMproved - Runtime files
ii  vim-tiny                          2:7.3.429-2ubuntu2.1         Vi IMproved - enhanced vi editor - compact version

 Câu lệnh này CỰC KỲ hữu ích khi bạn muốn chắc chắn mình đã gỡ sạch gói nào đó chưa hay tìm version của package đã cài trên máy.

4. Các file thuộc về package.

Dùng lệnh:

dpkg -L ten_package

hvn@u1204: ~ () $ dpkg -L vim
/.
/usr
/usr/bin
/usr/bin/vim.basic
/usr/share
/usr/share/bug
/usr/share/bug/vim
/usr/share/bug/vim/presubj
/usr/share/bug/vim/script
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/vim
/usr/share/doc
/usr/share/doc/vim

Ở trên là các file mà package vim cung cấp.
Tương tự, ta có thể thấy package vim-runtime chứa rất nhiều file:

hvn@u1204: ~ () $ dpkg -L vim-runtime | head #chỉ hiển thị 10 dòng đầu tiên
/.
/usr
/usr/bin
/usr/bin/vimtutor
/usr/share
/usr/share/vim
/usr/share/vim/vim73
/usr/share/vim/vim73/optwin.vim
/usr/share/vim/vim73/ftoff.vim
/usr/share/vim/vim73/colors
...
Với câu lệnh này, bạn hoàn toàn nắm được một package sau khi được cài thì bao gồm những file nào. Điều này cũng giúp bạn hiểu thêm về hệ thống và cách bố trí các file (cái gì nằm ở đâu).

Với những câu lệnh trên, bạn đã có những trợ thủ đắc lực khi quản lý, vận hành và debug các hệ thống ubuntu/debian.
Good morning =.=