Thursday, 18 April 2013

[CCGU] Các câu lệnh để tìm hiểu câu lệnh (Phần 2)

Phần 1 ở đây đã phần nào giúp bạn giải quyết các vấn đề gặp phải khi tìm hiểu 1 câu lệnh.
Phần 2 tiếp tục với những câu lệnh  sẽ giúp ích khi bạn cần tìm hiểu về các câu lệnh / package

Thay nội dung phần trong và dấu <> thành từ khóa bạn muốn tìm hiểu
1. Tìm tên của package
Nếu bạn không biết chính xác tên package, có một số cách để tìm nó:

- Tìm bằng apt-cache search:
apt-cache search <tu_khoa>

hoặc
apt-cache search <regex>
Ví dụ:
apt-cache search openldap
apt-cache search editor
Câu lệnh này có tác dụng khá giống với `apropos`

- Tìm khi biết một file gói này chứa:
dpkg -S <file_da_biet>

Ví dụ:
tìm tên gói chứa chương trình `tail`:
hvn@lappy: ~ () $ which tail
/usr/bin/tail
hvn@lappy: ~ () $ dpkg -S /usr/bin/tail
coreutils: /usr/bin/tail
hvn@lappy: ~ () $ dpkg -S `which tail`
coreutils: /usr/bin/tail

2. Lấy thông tin về một package
Các thông tin về package khá hữu ích như các package khác mà nó depends, mô tả cơ bản về gói này chứa gì ...

- Lấy thông tin về một package bất kỳ (package này không nhất thiết đã được cài trên máy)
apt-cache show <ten_package>
Ví dụ:
hvn@lappy: ~ () $ apt-cache show i3-wm
...
Description-en: improved dynamic tiling window manager
 Key features of i3 are good documentation, reasonable defaults (changeable in
 a simple configuration file) and good multi-monitor support. The user
 interface is designed for power users and emphasizes keyboard usage. i3 uses
 XCB for asynchronous communication with X11 and aims to be fast and
 light-weight.
 .
 Please be aware i3 is primarily targeted at advanced users and developers.

- Nếu package đó đã được cài, bạn có thể dùng lệnh
dpkg -s <ten_package>
Ví dụ:

hvn@lappy: ~ () $ dpkg -s rsyslog

Một số lệnh dpkg để truy vấn thông tin gói tin

       dpkg-query actions
              See dpkg-query(1) for more information about the following actions.

              -l, --list package-name-pattern...
                  List packages matching given pattern.
              -s, --status package-name...
                  Report status of specified package.
              -L, --listfiles package-name...
                  List files installed to your system from package-name.
              -S, --search filename-search-pattern...
                  Search for a filename from installed packages.
              -p, --print-avail package-name...
                  Display details about package-name, as found in
                  /var/lib/dpkg/available. Users of APT-based frontends
                  should use apt-cache show package-name instead.

3 comments:

  1. về dpkg, thì các bạn có thể cho bài tập hay một ví dụ về sự hữu dụng của nó được hem ?

    Chắc nó không chỉ là list ra một đống các depends, rồi trong quá trình cài đặt kiểm tra nếu thiếu thì cài nó vào ?

    ReplyDelete
    Replies
    1. tự gõ whatis dpkg và man dpkg mà xem.
      Nó giúp quản lý các gói .deb, cài đặt, tìm các gói cần thiết và cài. Cái dependency là vấn đề khá phức tạp nếu phải tự làm bằng tay. Apt-get dựa trên dpkg.

      Delete
    2. PS: Chung chú ý vào mục đích của bài viết là để tìm hiểu câu lệnh và dpkg có thể góp phần trong khỏan đó.

      Nếu tìm hiểu Ubuntu/Debian thì nên dùng apt-get trước cho dễ, dpkg có vẻ hơi low-level

      Delete