Friday, 9 October 2015

Mirroring apt repository với apt-mirror

Mirror trong tiếng Việt, dạng danh từ là cái gương, dạng động từ là "phản chiếu".
Trong IT, mirror có nghĩa là giữ một bản copy nội dung của 1 site tại một site khác, nôm na là tạo bản copy.
Đây là một kỹ năng có thể nắm bắt trong 10 phút và dùng cả đời :D

Keyword
mirror /ˈmɪrə/ Việt sub: mí-rơ



apt repository là nơi chứa các package để cài đặt một phần mềm cho các hệ điều hành sử dụng apt (debian, ubuntu...).
Ví dụ apt repository của postgresql: http://www.postgresql.org/download/linux/ubuntu/

Vì sao phải mirror?

- vì thích
- vì nhà cung cấp repo có thể xoá 1 phiên bản bất cứ lúc nào. Nếu không mirror sẽ không có
cách nào lấy được phiên bản đã bị xoá
- sau khi mirror và dùng trong mạng nội bộ, tốc độ sẽ nhanh hơn, không phụ thuộc vào kết
nối ra ngoài.
- ... gi gỉ gì gi cái gì cũng được

apt-mirror
là một package có sẵn trong debian/ubuntu, chỉ cần gõ lệnh sau để cài đặt:
sudo apt-get install -y apt-mirror
Sửa nội dung file /etc/apt/mirror.list cho hợp lý (cùng cú pháp với file /etc/apt/sources.list) rồi chạy lệnh
apt-mirror /etc/apt/mirror.list
để bắt đầu mirror. Có thể thay file này bằng một file ở đường dẫn bất kỳ.

mirror xong các file sẽ nằm trong /var/spool/apt-mirror/mirror
Ví dụ nội dung file config sử dụng để mirror postgresql:
    set nthreads     20
    set _tilde 0
    deb-i386 http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
    deb-i386 http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
    deb-amd64 http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
    deb-amd64 http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
Hết.
Ps: apt-mirror thực chất chỉ là một perl script gọi câu lệnh wget: https://github.com/apt-mirror/apt-mirror/blob/f901d7f56ea49dcbb50a38415e43ecade552e8dc/apt-mirror#L256
PPS: nhân tiện tối nay có rock, ai đi xem nhỡ lại gặp:3 https://www.facebook.com/events/717435868399768/

Bài viết thực hiện trên
Ubuntu 14.04
apt-mirror 0.5.1
Tham khảo
http://manpages.ubuntu.com/manpages/trusty/en/man1/apt-mirror.1.html

Happy mirroring!
HVN @ familug.org