Cách tự động chọn gương nhanh cho apt-get


3

Có plugin nào có sẵn cho apt-get để chọn nhân bản nhanh giống như plugin quickmirror của YUM Trình cắm nhân bản nhanh nhất được thiết kế để sử dụng trong các cấu hình kho lưu trữ trong đó bạn có nhiều hơn 1 nhân bản trong cấu hình repo. Nó tạo ra một kết nối với mỗi gương, định thời gian kết nối và sau đó sắp xếp các gương theo tốc độ nhanh nhất đến chậm nhất để sử dụng bởi yum.

Lý do: Tôi đã thêm một số máy nhân bản (mạng nội bộ và internet) trong tệp cấu hình của apt và tôi muốn sử dụng máy nhân bản intranet khi tôi ở văn phòng và máy nhân bản internet ở nhà.

Câu trả lời:


1

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.listsources.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.localvà 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.


Cảm ơn rất nhiều terdon. Tôi đã xuất biến http.proxy và cả gương internet và mạng nội bộ có thể truy cập trong văn phòng, tôi vẫn muốn giữ máy nhân bản internet trong danh sách nguồn trong trường hợp máy nhân bản cục bộ không có gói muốn. Có giải pháp nào để kiểm tra tốc độ kết nối và chọn cách nhịn ăn giống như quickmirror đã làm.
Ted

@Ted Tôi đã cập nhật câu trả lời, đây sẽ là những gì bạn cần.
terdon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.