Như một giải pháp thay thế, bạn có thể viết một tập lệnh kiểm tra mạng nào bạn được kết nối và thay đổi /etc/apt/source.list tương ứng. Một cái gì đó giống như kịch bản dưới đây, chỉ cần chỉnh sửa nó cho phù hợp với nhu cầu của bạn.
Đầu tiên, tạo một bản sao lưu của bạn/etc/apt/sources.list
. Sau đó, tạo hai tệp nguồn.list, một cho nhà của bạn và một cho văn phòng. Giả sử họ được gọi sources.office.list
và sources.home.list
. Lưu cả hai trong /etc/apt/
.
Bây giờ, hãy chỉnh sửa tập lệnh sau cho phù hợp với nhu cầu của bạn, hãy lưu nó (ví dụ này, tôi giả sử bạn sẽ lưu nó dưới dạng ~/bin/change_sources.sh
) và làm cho nó có thể thực thi được bằng cách chạy lệnh này:
$ chmod +x ~/bin/change_sources.sh
Kịch bản:
#!/bin/bash
ip=ifconfig | grep Bcast | cut -d " " -f 12
## Set this for your office IP
if [ $ip == "XXX.XXX.XXX.XXX" ]
then
cp /etc/apt/sources.office.list /etc/apt/sources.list
else
cp /etc/apt/sources.home.list /etc/apt/sources.list
fi
Bây giờ, chỉnh sửa tệp etc/rc.local
và thêm dòng này vào cuối tệp, trước exit(0)
:
/home/youruser/bin/change_sources.sh
Rõ ràng, thay đổi đường dẫn ở trên để phản ánh đường dẫn đến kịch bản bạn vừa tạo.
Lần sau khi bạn khởi động lại, tập lệnh sẽ được chạy và tự động chọn tệp nguồn.list chính xác.
EDIT: Nếu bạn muốn có cả hai kho lưu trữ có thể truy cập mọi lúc và tải xuống một gói nhất định từ nhanh nhất, nếu có, bạn chỉ cần thay đổi thứ tự của các repos trong nguồn.list. Thực hiện theo quy trình tôi đã đề xuất ở trên, chỉ cần thực hiện sao cho các dòng có liên quan trong /etc/apt/source.office.list giống như sau:
deb http://fastest.mirror.for.office
deb http://fastest.mirror.for.home
và trong /etc/apt/source.home.list như thế này:
deb http://fastest.mirror.for.home
deb http://fastest.mirror.for.office
Nếu một gói tồn tại với cùng một phiên bản trong cả hai kho lưu trữ, apt sẽ tải xuống từ gói đầu tiên.
CHÚ THÍCH 1: Nếu các phiên bản khác nhau, apt sẽ nhận được bản mới nhất bất kể thứ tự các kho lưu trữ là gì.
CHÚ THÍCH 2: Điều này không kiểm tra tốc độ tải xuống của repos. Bạn phải tự làm điều đó. Để tìm gương nhanh nhất, bạn có thể thử sử dụng Netselect-apt:
sudo apt-get install netselect-apt
Gói Netselect-apt:
kiểm tra tốc độ để chọn một máy nhân bản Debian nhanh
Gói này cung cấp một tiện ích có thể chọn máy nhân bản Debian tốt nhất bằng cách tải xuống danh sách nhân bản đầy đủ và sử dụng Netselect để tìm ra bản nhanh nhất / gần nhất.