Với Debian, Ubuntu hoặc các distro base trên Debian hay sử dụng định dạng Debian Packages (.deb), việc update hệ thống, cài đặt các software từ internet thường thông qua hai công cụ dòng lệnh phổ biến là apt-get và aptitude. Điểm chung của hai công cụ này chính là chúng sử dụng chung một file /etc/apt/sources.list là file quy định kho phần mềm. Hôm nay chúng ta sẽ cùng tìm hiểu về cấu trúc file này và chỉnh sửa theo ý của chúng ta.
Nội dung một file sources.list tiêu biểu (trong máy tôi hiện giờ):
Code:
#
# deb cdrom:[Debian GNU/Linux 6.0.3 _Squeeze_ - Official amd64 kde-CD Binary-1 20111008-14:35]/ squeeze main
#deb cdrom:[Debian GNU/Linux 6.0.3 _Squeeze_ - Official amd64 kde-CD Binary-1 20111008-14:35]/ squeeze main
# Line commented out by installer because it failed to verify:
#deb http://security.debian.org/ squeeze/updates main
# Line commented out by installer because it failed to verify:
#deb-src http://security.debian.org/ squeeze/updates main
# squeeze-updates, previously known as 'volatile'
# A network mirror was not selected during install. The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
# deb http://ftp.debian.org/debian/ squeeze-updates main
# deb-src http://ftp.debian.org/debian/ squeeze-updates main
deb http://mirror.internode.on.net/pub/debian squeeze contrib main non-free
deb http://mirror.internode.on.net/pub/debian squeeze-updates contrib main non-free
deb http://mirror.internode.on.net/pub/debian stable contrib main non-free
deb http://mirror.internode.on.net/pub/debian stable-updates contrib main non-free
deb http://mirror.internode.on.net/pub/debian sid contrib main non-free
deb http://mirror.internode.on.net/pub/debian-security squeeze/updates contrib main non-free
deb http://mirror.internode.on.net/pub/debian-security stable/updates contrib main non-free
Phân tích một dòng làm ví dụ:
deb http://mirror.internode.on.net/pub/debian squeeze contrib main non-free
Một dòng khai báo bao gồm có 4 phần chính.
Phần thứ 1 : deb (hoặc đôi khi là deb-src) : định dạng các gói tin trong kho là gói tin đã được compile rồi (deb) hay là vẫn là source code (deb-src). Nếu bạn không có ý định nghiên cứu source của các phần mềm các bạn không cần phải dùng deb-src mà chỉ cần dùng deb là được rồi.
Phần thứ 2 : http://mirror.internode.on.net/pub/debian : đường dẫn đến folder Debian trên mirror. Thường trên mirror có mỗi cấu trúc lưu khác nhau, nhưng các bạn cứ xem trong folder nào có chứ folder dists/ đó là đường dẫn đến folder root của Debian trên mirror.
Phần thứ 3 :
squeeze : Thực chất đây chính là folder http://mirror.internode.on.net/pub/debian/dists/squeeze nhưng phần dists/ đã được bỏ đi, và thay vào đó là một dấu cách. Thông số này chính là thông số chỉ ra chúng ta sử dụng kho phần mềm nào, phân loại tình trạng các kho phần mềm. Thường thì thông số này có những lựa chọn sau đây:
- Squeeze (Squeeze-Updates) : Chính là mã phiên bản bạn đang dùng, ví dụ trong trường hợp này là squeeze. Các gói trong kho này rất ổn định và thường không sinh ra lỗi.
- Stable (hoặc Stable-Updates) : Sẵn sàng dùng, bổ sung thêm nhiều phần mềm quan trọng và phổ biến.
- Test (hoặc Test-Updates) : Đang trong qúa trình test. Chưa ổn định.
- unstable : Chưa sẵn sàng để dùng.
- Sid : Đang trong quá trình phát triển, các phần mềm trong kho này thường không ổn định và dễ sinh ra lỗi.
- backports : chứa các phần mềm mới,chủ yếu dàng những hệ điều hành Debian ổn định.
- oldstable : (còn gọi là lenny) chứa các phần mềm cho hệ điều hành Debian cũ.
Phần thứ 4 : contrib, main, non-free : đây chính là các folder trong thư mục squeeze. Và thực chất đường dẫn đầy đủ đến chúng là :
Code:
http://mirror.internode.on.net/pub/debian/dists/squeeze/contrib/
http://mirror.internode.on.net/pub/debian/dists/squeeze/main/
http://mirror.internode.on.net/pub/debian/dists/squeeze/non-free/
Nếu thông số 3 là thông số phân loại tình trạng các phần mềm thì thông số thứ 4 phân loại giấy phép các loại phần mềm.
contrib : chứa các phần mềm đã đạt được tiêu chuẩn DFSG, nhưng không đáp ứng với các tiêu chuẩn phần mềm tự do khác.Ví dụ, phần mềm bị phụ thuộc vào phần mềm độc quyền nào đó.
non-free : các gói phần mềm có chứa source độc quyền hoặc là thương mại một phần.
main : các gói phần mềm chính của kho.
Thực sự thì để hiểu file này không khó. Nên hy vọng là thông qua vài ví dụ trên đây các bạn sẽ hiểu được cấu trúc file sources.list.