Wednesday, 29 May 2013

Tìm các package đã cài liên quan đến XXX

XXX có thể là bất cứ cái gì, ở đây lấy ví dụ là bash.
Tại sao cần biết cái này?
- Thông thường, khi bạn cài OS, nó đã mặc định sẵn cài trước các gói nào rồi. Và nếu như bạn bị rơi vào một trường hợp mà các gói đó chưa được cài, bạn sẽ bế tắc (google it :v)
- Cụ thể ở đây là sau khi tớ cài ubuntu server 12.04 với tùy chọn "minimum" (bấm F4 lúc chọn action sau khi đã chọn ngôn ngữ -  xem phần comment bài này ). Phiên bản minimum này chỉ cài mỗi gói "bash", và bạn sẽ cảm thấy tính năng complete của nó kém đi hẳn (ví dụ không auto complete khi gõ apt-get install ... - vì thiếu gói hỗ trợ).


Sử dụng câu lệnh sau để tìm các gói đã cài và  lọc ra các gói liên quan đến bash (từ một máy bash đã chạy bình thường):
root@1204x86:/srv# dpkg -l | grep bash
ii  bash                              4.2-2ubuntu2.1               GNU Bourne Again SHell
ii  bash-completion                   1:1.3-1ubuntu8.1             programmable completion for the bash shell
ii  command-not-found                 0.2.46ubuntu6                Suggest installation of packages in interactive bash sessions
như vậy để bash hoạt động ngon lành (khả năng auto-complete tốt hơn), cần cài thêm 2 gói "bash-completion" và "command-not-found".

Trên máy "minimum" bạn sẽ chỉ thấy mỗi gói bash đã được cài, dùng lệnh sau để tìm các gói liên quan đến bash:
apt-cache search bash | less
Rồi cài gói nào bạn thấy có vẻ hợp lý :3

Như ở đây, tớ sẽ không bao giờ biết gói command-not-found là chương trình thực hiện trả về tên gói cần cài khi gõ lệnh trên máy chưa cài gói đó.

Với cách làm này, bạn sẽ hiểu thêm về những phần mềm mình đang sử dụng. Cách đi "từ trên xuống dưới" này phần nào giúp bạn hiểu thêm về OS của mình. Thế nhưng cách đi "từ dươi lên trên" cài OS từ các gói sẽ giúp bạn hoàn toàn làm chủ nó.
Chuẩn bị chơi tiếp thôi :3