Làm gương: //mirrors.ubfox.com rất khả dụng


26

Chúng tôi là một nhóm phân phối, đó là lý do tại sao máy ảo của chúng tôi sử dụng mirror://thiết lập Ubuntu . Hình của chúng tôi /etc/apt/sources.listnhư sau:

deb mirror://mirrors.ubuntu.com/mirrors.txt lucid main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt lucid-security main restricted universe multiverse

Điều này tự nó là khá tuyệt vời và rất hữu ích cho những người làm việc ở các địa điểm khác nhau - ít tùy chỉnh địa phương , vv cần thiết. Thất bại trong lý thuyết.

Hàng ngày, thiết lập này thất bại quá thường xuyên. Tôi muốn nói 2-3 lần trong tuần này.

Ngay bây giờ mirrors.ubuntu.comtrở lại ftp.uni-bayreuth.denhư gương tủ quần áo của tôi. Thật không may, nó dường như được xuống.

Điều này đã diễn ra trong vài giờ và chiếc gương được các tình nguyện viên tại một trường đại học tổ chức và hôm nay là thứ Sáu, hy vọng của tôi rất thấp rằng điều này sẽ sớm được khắc phục.

Tất cả nói chuyện, câu hỏi của tôi là:

  • Có ai sử dụng cái này không?
  • Làm thế nào để bạn làm việc xung quanh thời gian chết? (bản sửa lỗi nhanh của tôi là tập lệnh shell)
  • Làm thế nào tôi có thể giúp cải thiện tình trạng này?


@ RaduRădeanu - đây là lần đầu tiên tôi đọc về Netselect ... 8oþ
dschinn1001 18/07/13

@ RaduRădeanu Mẹo thú vị! Chúc mừng! Tôi đang cố gắng sử dụng mirror:phương pháp có nhiều cập nhật nhất trong luồng của bạn. Vấn đề của tôi là bất cứ khi nào gương nhanh nhất thất bại, sau đó không có chuyển đổi dự phòng và tôi bị mắc kẹt.
Đến

Việc tạo Ubuntu Mirror của riêng bạn có phải là một tùy chọn không?
Mitch

@Till Bạn có thể cho tôi biết nếu bạn có thể có gương của riêng mình.
Mitch

Câu trả lời:


10

Cá nhân tôi nghĩ rằng cách tốt nhất để chọn các máy nhân bản lưu trữ Ubuntu tốt nhất là sử dụng phương thức GUI:

tải máy chủ

Bây giờ, để cải thiện tình huống được mô tả trong câu hỏi, bạn cần đặt ra một số quy tắc bằng cách nào đó. Những quy tắc này phải hành động mirrors.ubuntu.com. Tôi có thể đề xuất một số quy tắc như sau:

  • lập danh sách các gương tốt nhất / ưa thích; có rất nhiều gương như bạn có thể thấy ở đây , ở đây hoặc ở đây
  • nếu bạn tìm thấy một tấm gương tốt, hãy thêm nó vào danh sách
  • nếu đôi khi gương bị hỏng hoặc vỡ, điều đó có nghĩa đó không phải là gương tốt và bạn nên xóa nó khỏi danh sách
  • bạn có thể sử dụng netselect, apt-spyhoặcapt-fast
  • và những người khác, tùy thuộc vào yêu cầu của bạn.

Tiếp theo, để xem làm thế nào bạn có thể làm việc xung quanh, tôi có thể cung cấp cho bạn một phương pháp được mô tả từng bước với ba ví dụ về tập lệnh bash. Tập lệnh đầu tiên sử dụng các gương từ quốc gia bạn đang ở hiện tại thay vì mirrors.ubuntu.com/mirrors.txt(đối với mỗi quốc gia có một tệp văn bản có các gương được phân tách; xem http : //mirrors.ub Ubuntu.com/ ):

  • Trong một thiết bị đầu cuối chạy mkdir -p bin- lệnh này sẽ tạo một binthư mục trong của bạnhome mục thư mục nếu bạn chưa có nó.
  • Sau khi chạy gedit ~/bin/change_sources.sh- điều này sẽ tạo tập tin mớichange_sources.sh trong gedit.
  • Sao chép và dán một trong các tập lệnh tiếp theo trong tệp được tạo mới:
#!/bin/bash

export DISPLAY=:0

if ! [ "`ping -c 1 google.com`" ]; then
    notify-send "No internet connection"
    exit 0  
fi

ip=$(curl -s 'http://ipecho.net/plain')
country=$(curl -s 'http://geoiplookup.net/geoapi.php?output=countrycode' \
    | awk '{ print toupper($2) }')
release=$(lsb_release -sc)

file="/etc/apt/sources.list"
old_file="/etc/apt/sources.list.old"

line=$(head -n 1 $file)
new_line="## Ubuntu Repos for $ip"

if [ "$line" == "$new_line" ] ; then
    exit 0
fi

cp -f $file $old_file

printf "$new_line
deb mirror://mirrors.ubuntu.com/$country.txt $release main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/$country.txt $release-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/$country.txt $release-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/$country.txt $release-security main restricted universe multiverse
" > $file

notify-send "$file has been changed" "The old file has been put in $old_file"

exit 0

hoặc, một cái gì đó tương tự với những gì có thể tìm thấy tại http://repogen.simplylinux.ch/ :

#!/bin/bash

export DISPLAY=:0

if ! [ "`ping -c 1 google.com`" ]; then
    notify-send "No internet connection"
    exit 0  
fi

ip=$(curl -s 'http://ipecho.net/plain')
country=$(curl -s 'http://geoiplookup.net/geoapi.php?output=countrycode' \
    | awk '{ print tolower($2) }')
release=$(lsb_release -sc)

file="/etc/apt/sources.list"
old_file="/etc/apt/sources.list.old"

line=$(head -n 1 $file)
new_line="## Ubuntu Main Repos for $ip"

if [ "$line" == "$new_line" ] ; then
    exit 0
fi

cp -f $file $old_file

printf "$new_line
deb http://$country.archive.ubuntu.com/ubuntu/ $release main restricted universe  multiverse
deb-src http://$country.archive.ubuntu.com/ubuntu/ $release main restricted universe multiverse

## Ubuntu Update Repos for $ip
deb http://$country.archive.ubuntu.com/ubuntu/ $release-security main restricted universe multiverse
deb http://$country.archive.ubuntu.com/ubuntu/ $release-updates main restricted universe multiverse
deb-src http://$country.archive.ubuntu.com/ubuntu/ $release-security main restricted universe multiverse
deb-src http://$country.archive.ubuntu.com/ubuntu/ $release-updates main restricted universe multiverse
" > $file

notify-send "$file has been changed" "The old file has been put in $old_file"

exit 0

hoặc, một tập lệnh sử dụng netselect(tải xuống từ đây , cài đặt hướng dẫn tại đây ) như izx đã giải thích rất hay trong câu trả lời này :

#!/bin/bash

export DISPLAY=:0

if ! [ "`ping -c 1 google.com`" ]; then
    notify-send "No internet connection"
    exit 0  
fi

url=$(netselect \
    `wget -q -O- https://launchpad.net/ubuntu/+archivemirrors \
        | grep -P -B8 "statusUP|statusSIX" \
        | grep -o -P "(f|ht)tp.*\"" \
        | tr '"\n' '  '` \
    | awk '{print $2}')
release=$(lsb_release -sc)

if [ "$url" == "" ] ; then
    exit 0
fi

file="/etc/apt/sources.list"
old_file="/etc/apt/sources.list.old"

cp -f $file $old_file

printf "## Ubuntu Best Repos
deb http://extras.ubuntu.com/ubuntu $release main
deb-src http://extras.ubuntu.com/ubuntu $release main
deb $url $release main universe restricted multiverse
deb http://security.ubuntu.com/ubuntu/ $release-security restricted universe main multiverse
deb $url $release-updates restricted universe main multiverse
" > $file

notify-send "$file has been changed" "The old file has been put in $old_file"

exit 0
  • Lưu file và đóng nó lại.
  • Quay trở lại thiết bị đầu cuối và chạy: chmod +x ~/bin/change_sources.sh - để cấp quyền truy cập thực thi cho tập lệnh.
  • Chỉ để thử nghiệm, để chạy tập lệnh mới của bạn, nhập vào thiết bị đầu cuối ~/bin/change_sources.sh. Nó sẽ báo lỗi, vì bạn không có quyền chỉnh sửa /etc/apt/sources.list. Vì vậy, sử dụngsudo ~/bin/change_sources.sh
  • Chỉnh sửa tập tin crontab của người dùng root bằng sudo crontab -elệnh và thêm dòng sau:
@hourly /home/$USER/bin/change_sources.sh  
#change $USER with your user name
  • Tôi đã thiết lập công việc định kỳ cho mỗi giờ, nhưng bạn có thể thay đổi theo ý muốn hoặc theo bạn nghĩ là tốt hơn. Xem http://en.wikipedia.org/wiki/Cron theo nghĩa này.
  • Lưu tệp và kiểm tra mục crontab mới với sudo crontab -l.

LƯU Ý: Để hoàn nguyên các thay đổi được thực hiện bởi tập lệnh này, hãy xóa công việc định kỳ và làm theo các chỉ dẫn từ hình trên hoặc sử dụng lệnh tiếp theo trong thiết bị đầu cuối:

cp -f /etc/apt/sources.list.bak /etc/apt/sources.list

Từ giờ, tệp sẽ được thay đổi động sau khi tìm thấy thay đổi địa chỉ IP.

Nó có thể không phải là giải pháp tốt nhất, nhưng, theo tôi, một giải pháp tốt có thể được đưa ra theo cách này giống như trong các kịch bản ở trên .


2
Tôi đoán tôi sẽ tranh luận nếu một gui trên linux có thể được coi là cách truyền thống. :) Nhưng dù sao: kịch bản đầu tiên của bạn giải quyết vấn đề, tôi không có. Cú pháp nhân bản đã nhận được các gương Đức của tôi, hoặc Hoa Kỳ hoặc mọi nơi mọi người đang ở. Kịch bản thứ hai sử dụng các gương quốc gia - chúng dường như có ít băng thông nhất có sẵn (thấy rằng trong danh sách lưu trữ trên bảng khởi chạy), tập lệnh thứ ba giả định rằng gương nhanh (hoặc gần nhất) thực sự là tốt nhất. Trở lại hình vuông một. Tôi đang mã hóa một apt-spykịch bản nhỏ ngay bây giờ. Sẽ cập nhật tại đây sau.
Đến

1
@Till Vâng, câu hỏi của bạn là " Làm thế nào để bạn làm việc trong thời gian chết? " Và " Làm thế nào tôi có thể giúp cải thiện tình trạng này? ". Tôi đã chỉ ra cách tôi làm việc xung quanh và tôi đã gợi ý cho bạn cách bạn có thể giúp cải thiện ... Ngoài ra, nếu bạn đọc câu trả lời của tôi cho đến khi kết thúc, bạn có thể thấy rằng tôi biết rằng " Nó có thể không phải là giải pháp tốt nhất, nhưng tôi nghĩ rằng một giải pháp tốt có thể được đưa ra theo cách này giống như trong các kịch bản ở trên ". Cuối cùng, nếu bạn quan tâm đến việc sửa chữa / cải thiện các máy chủ bị hỏng, điều này có vẻ lạc đề ở đây và bạn nên nói chuyện với chủ sở hữu của các máy chủ đó.
Radu Rădeanu

2
Tôi không nghĩ nó lạc đề. Nhiều người Canonical / Ubuntu đã nói với tôi để thêm câu hỏi của tôi ở đây. Đó là lý do tại sao tôi ở đây ngay từ đầu và tôi cũng đoán tại sao có tiền thưởng được giao.
Đến

1
@Till Yep, câu hỏi rất hay, nhưng không phải như bạn đã cải cách nó trong những bình luận này. Không ai sẽ trả lời tại "cách sửa máy chủ nhân bản bị hỏng" ở đây cho đến khi không phải là quản trị viên tại máy chủ tương ứng.
Radu Rădeanu

1
Tôi không muốn sửa máy chủ đó, tôi muốn sửa thuật toán lựa chọn và thiếu chuyển đổi dự phòng.
Đến

4

Tôi đánh giá cao tất cả các đầu vào cho câu hỏi này, nhưng vì không ai đưa ra một giải pháp đơn giản phù hợp với hoàn cảnh của chúng tôi, tôi quyết định tự khắc phục vấn đề.

Tôi đã tạo một công cụ (dành riêng cho Ubuntu) mà tôi gọi apt-spy2.

Mục tiêu chính của công cụ này là để tìm một làm việc gương nhanh. Làm việc được xác định bởi máy chủ nhân bản có sẵn và (hy vọng :) cập nhật.

Tôi không đưa ra giả định nào về việc máy chủ được chọn có nhất thiết phải là gần nhất và nhanh nhất không. Tôi không thực hiện bất kỳ thủ thuật ping hoặc GEO DNS nào - nhưng cho đến nay điều này hoạt động khi có sự cố.

Cách thức hoạt động - tóm lại:

  1. Tôi sử dụng http://mirrors.ubfox.com hoặc danh sách gương của launchpad để lấy máy chủ.
  2. Tôi thực hiện một kiểm tra đơn giản trên mỗi (đối với Mã trạng thái phản hồi HTTP).
  3. LBNL, tôi cập nhật /etc/apt/sources.list.

Xin lưu ý: Điều này giả định rằng mọi người chơi đẹp và đặt thêm gương (ví dụ: kho của bên thứ /etc/apt/sources.list.d3. Nhưng tôi đoán điều đó có nghĩa là có chỗ để cải thiện.

Bạn có thể có được công cụ này như vậy:

$ [sudo] gem install apt-spy2

Các cli đi kèm với list, check, fixhelp(với thông tin mở rộng về cách sử dụng nó).

Tôi đã cố gắng ghi lại càng nhiều càng tốt trong README của dự án .

Phiên bản hiện tại là một rất bảo thủ 0.5.0.

Mã này là nguồn mở và giấy phép là tự do. Và tôi nhận mọi đóng góp.


Bạn đã tải nó lên kho lưu trữ Ubuntu?
Braiam

@Braiam Bạn có thể có được công cụ này như vậy: sudo gem cài đặt apt-spy2
Radu Rădeanu

@ RaduRădeanu Tôi đang hỏi liệu anh ấy có tải nó lên không, vì tôi quan tâm đến việc đóng gói thứ gì đó lên Debian.
Braiam

@Braiam Tôi đã không gói nó lên, nhưng tôi sẽ hoan nghênh nếu ai đó làm điều đó. :)
Đến

@Braiam Btw, điều này khó có thể hoạt động với Debian. ; (Chỉ hoạt động với Ubuntu.
Đến

2

Có lệnh này tại Debian 6.0.4:

gián điệp apt

Điều này đã thực hiện công việc tìm máy chủ có sẵn gần nhất tự động tiếp theo và để tạo một nguồn mới.

Trong Ubuntu lệnh này dường như không tồn tại?

Nó vẫn tồn tại trong Debian 7.0 wheezy:

https://launchpad.net/debian/wheezy/+source/apt-spy/+copyright

Bạn có thể tải xuống gói * .deb của mình tại đây:

http://packages.debian.org/sid/apt-spy

... vẫn đang tìm kiếm các nguồn ...

Bạn rõ ràng cần Debian-7.0-Cài đặt để lấy mã nguồn sau khi chỉnh sửa danh sách nguồn với mục nhập:

deb-src http://http.debian.net/debian wheezy chính

Sau đó, sau khi cập nhật sudo apt-get, bạn chỉ cần hút mã bằng:

sudo apt-get nguồn apt-spy


Cảm ơn lời đề nghị, apt-spy trông thực sự tuyệt vời. Tôi không chắc nó hoạt động tốt. Mỗi lần tôi cài đặt công cụ debian vào ubfox, nó sớm bị hỏng do các phụ thuộc khác.
Đến

@Till - nó luôn luôn là một cái gì đó có nhiều hơn một chút ... ngay khi Linux ngày càng đòi hỏi nhiều hơn.
dschinn1001

1

@Till Ý bạn là: Xây dựng nó ...! hoặc xây dựng nó ...? - Tôi chăm sóc lần sau - bây giờ là trăng tròn ở đây và tôi đang lảo đảo ...
dschinn1001

bạn nhanh lên
dschinn1001

2

Có thể không sử dụng giải pháp bạn thích, nhưng thiết lập bộ đệm cục bộ cho các tệp .deb sẽ rất lý tưởng khi bạn tải xuống một vài MB gói (hầu hết trong số chúng tôi đặt cược là như nhau) và vì bạn đang tải xuống từ cùng một máy chủ, bạn có thể muốn hy sinh một PC để tạo bộ đệm và làm cho máy chủ bớt bận rộn hơn.

Thủ tục

Bạn sẽ có thể đặt apt-cachertrong một máy có nhiều dung lượng trong Ổ cứng (bạn sẽ cần nó). Bạn có thể định cấu hình này bằng hướng dẫn máy chủ Apt-cacher , nhưng hãy tiếp tục nhanh chóng.

  1. cài đặt, dựng lên apt-cacher

    sudo apt-get cài đặt apt-cacher apache2

  2. Chỉnh sửa /etc/default/apt-cachervà đặt autostartgiá trị thành 1, để bộ đệm của bạn bắt đầu khi máy bật nguồn.
  3. Khởi động lại apache sudo /etc/init.d/apache2 restart
  4. Kiểm tra bộ nhớ cache của bạn bằng cách sử dụng http://ip-of.your.cache:3142/apt-cacher.
  5. Bạn nên cho phép máy chủ sử dụng bộ đệm, vì vậy hãy chỉnh sửa /etc/apt-cacher/apt-cacher.confvà tìm dòng allowed_hosts. Bạn có thể đặt mạng con thích 192.168.0.0/24hoặc chỉ *cho tất cả máy chủ
  6. Hãy tìm một máy chủ nhanh và đáng tin cậy xung quanh . Bạn có thể sử dụng apt-spycho việc này (lệnh này có thể mất hàng giờ vì nó cũng kiểm tra tốc độ của từng máy chủ).
  7. Trong khách hàng của bạn, bạn có hai lựa chọn:

    • thiết lập sources.listnhư sau:

    deb http: //ip-of.your.cache: 3142 / the.server.you.like / ubfox / lucid vũ trụ bị hạn chế chính đa vũ trụ

    Thay đổi ip-of.your.cacheip cho bộ nhớ cache của bạn và the.server.you.likecho tên máy chủ của máy chủ bạn sẽ sử dụng. Bạn có thể sử dụng một số dòng.

    • Hoặc đặt apt để sử dụng proxy: chỉnh sửa /etc/apt/apt.conf.d/01proxyvà thêm dòng:

    Mua lại :: http :: Proxy " http: //ip-of.your.cache: 3142 ";


Nếu bạn sử dụng apt-spy trên toàn thế giới thì nó sẽ tồn tại trong một thời gian ... nhưng bạn có thể sử dụng lệnh này với biên giới ví dụ như Châu Âu bằng cách: apt-spy -d
tests

@ dschinn1001 -d testingcó mùi như Debian.
Braiam

sau đó: apt-spy -a Europe
dschinn1001

"Downvote"? - Tôi không có downvote? - đôi khi điều đó xảy ra khi tôi nhấp chuột một cách tình cờ - Tôi không bao giờ bỏ phiếu với aim! để bình chọn bạn lên! cám ơn.
dschinn1001

1

Bạn có thể thử thiết lập máy nhân bản Ubuntu của riêng bạn. Bằng cách đó, cập nhật sẽ là cục bộ.

apt-mirror cần kết nối internet tốc độ cao và nhiều dung lượng đĩa

Thiết lập máy nhân bản Ubuntu của riêng bạn rất dễ dàng bằng cách sử dụng máy nhân bản.

1) đi vào kho apt-mirror. Sao lưu tệp nguồn.list của bạn như vậy:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old

2) Chỉnh sửa tệp nguồn.list như vậy:

gksudo gedit /etc/apt/sources.list

3) Và chèn dòng sau vào dòng mới:

deb http://apt-mirror.sourceforge.net/ apt-mirror

4) Hãy cập nhật chỉ mục gói

sudo apt-get update

5) Và cài đặt apt-mirror

sudo apt-get install apt-mirror

6) Gương Apt hiện đang được thiết lập, vì vậy hãy cho nó biết máy chủ nào sẽ phản chiếu:

sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.old
gksudo gedit /etc/apt/mirror.list

Cấu hình mặc định sẽ đặt các tệp đã tải xuống của bạn vào thư mục / var / spool / apt-mirror. Đây là cách tập tin mirror.list trông như thế nào:

############# config ##################
#
set base_path /media/silo/repo
#
# if you change the base path you must create the directories below with write privlages
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
set nthreads 20
set tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid -updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid -backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid -security main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu

Điều này chỉ phản ánh các gói nhị phân nhưng nếu bạn muốn các gói nguồn, bạn nên chèn các dòng thích hợp. Họ thường có hình thức:

deb-src http://gh.archive.ubuntu.com/ubuntu/ lucid main restricted

7) Bây giờ, chạy apt-mirror. Điều này sẽ mất khá nhiều thời gian. Đừng lo lắng nếu bạn không thể tải xuống tất cả các tệp trong một lần, apt-mirrorcó thể tiếp tục tải xuống (hủy nó bằng tổ hợp phím Ctrl+ Cvà chạy lại khi bạn muốn tiếp tục). Được rồi, chạy apt-mirror như vậy:

sudo apt-mirror /etc/apt/mirror.list

Ngoài ra, hãy xem Cách tạo Gương Debian / Ubuntu cục bộ bằng gương apt

Nguồn: Sử dụng Apt-mirror để tạo Ubuntu Mirror của riêng bạn


Nếu bộ nhớ phục vụ cho tôi đúng, apt-mirrorcó sẵn trong kho ubfox.
Braiam

BTW, đảm bảo lưu ý sự cần thiết của nhiều không gian trong HD để tải xuống một bản sao hoàn chỉnh;)
Braiam

Cảm ơn câu trả lời và đó là một nguồn tài nguyên tuyệt vời để thiết lập một chiếc gương và tôi đã xem xét điều đó, nhưng sau đó tôi cần setuo này ở ít nhất 3 địa điểm khác nhau. Tôi biết tôi kén chọn ở đây, nhưng tôi vẫn cảm thấy mirrors.ubuntu.comnên làm việc. :)
Đến

@till mirrors.ubuntu.comsẽ không bao giờ giải quyết mirrors.ubuntu.com, nhưng một máy chủ gần bạn nhất. Vấn đề là máy chủ mà nó giải quyết là một máy chủ không đáng tin cậy. Chơi tốt hơn của bạn là sử dụng một máy chủ đáng tin cậy từ danh sách chính thức.
Braiam

@Braiam có ý kiến ​​gì tại sao gương không đáng tin cậy được trả lại bởi nó sau đó?
Đến

1

Tôi đã viết một tập lệnh Python có tên apt-select để phục vụ như là một thay thế CLI cho phương thức GUI.

Kịch bản truy vấn từng máy nhân bản thông qua TCP, in ra các máy nhân bản có độ trễ thấp nhất và tạo một sources.listtệp mới . Ngoài ra còn có nhiều tùy chọn cho phép bạn chọn từ danh sách các gương được xếp hạng và truy xuất thông tin như khi gương được cập nhật lần cuối và dung lượng băng thông của nó.

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.