Создание зеркала: //mirrors.ubuntu.com очень доступно

Как альтернативный способ передачи данных между ними, вы можете попробовать использовать Ubuntu One на вашем ПК и на мобильном устройстве (планшет или телефон).

1
задан 30 March 2014 в 02:02

5 ответов

Лично я считаю, что лучший способ выбрать лучшие зеркала репозиториев Ubuntu - использовать GUI-метод:

Теперь, чтобы улучшить ситуацию, описанную в вопросе, вы нужно каким-то образом установить некоторые правила. Эти правила должны действовать mirrors.ubuntu.com. Я могу предложить несколько правил:

составить список лучших / предпочтительных зеркал; есть много зеркал, как вы можете видеть здесь, здесь или здесь, если вы нашли хорошее зеркало, добавьте его в список, если зеркало было сломан или сломан иногда, это означает, что это не хорошее зеркало, и вы должны удалить его из в списке вы можете использовать netselect, apt-spy или apt-fast и другие, в зависимости от ваших требований.

Затем, чтобы посмотреть, как вы можете работать, я могу дать вам метод, описанный шаг за шагом с тремя примерами сценариев bash. Первый скрипт использует зеркала из страны, в которой вы находитесь сейчас, вместо mirrors.ubuntu.com/mirrors.txt (для каждой страны есть текстовый файл с зеркальными объектами, см. Http://mirrors.ubuntu.com/):

составить список лучших / предпочтительных зеркал; есть много зеркал, как вы можете видеть здесь, здесь или здесь После запуска gedit ~/bin/change_sources.sh - это создаст новый файл change_sources.sh в gedit. , если вы нашли хорошее зеркало, добавьте его в список
#!/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

или, что-то похожее на то, что можно найти на http: //mirrors.ubuntu. com / :

#!/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

или скрипт, использующий netselect (скачайте здесь, установите инструкции здесь), поскольку izx объяснил правду в этом ответе:

#!/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
После запуска gedit ~/bin/change_sources.sh - это создаст новый файл change_sources.sh в gedit. Вернитесь в терминал и запустите: chmod +x ~/bin/change_sources.sh - чтобы предоставить доступ для выполнения сценария. , если зеркало иногда было сломанным или сломанным, это означает, что это не хорошее зеркало, и вы должны удалить его из списка Отредактируйте файл crontab корневого пользователя с помощью команды sudo crontab -e и добавьте следующую строку: [ ! d30]
@hourly /home/$USER/bin/change_sources.sh  
#change $USER with your user name
Вернитесь в терминал и запустите: chmod +x ~/bin/change_sources.sh - чтобы предоставить доступ для выполнения сценария. Сохраните файл и проверьте новую запись crontab с помощью sudo crontab -l. ПРИМЕЧАНИЕ. Чтобы отменить изменения, выполненные этим сценарием, удалите задание cron и следуйте указаниям, приведенным выше, или используйте следующую команду в терминале:
cp -f /etc/apt/sources.list.bak /etc/apt/sources.list

файл будет динамически изменен после того, как он найдет изменение IP-адреса.

Это может быть не лучшее решение, но, на мой взгляд, хорошее решение может быть дано таким образом, как в сценариях выше.

9
ответ дан 24 May 2018 в 20:03
  • 1
    Наверное, я бы сказал, можно ли считать gui на linux традиционным способом. :) Но так или иначе: ваш первый скрипт решает проблему, у меня ее нет. Синтаксис зеркала уже получает мои немецкие зеркала, или США, или где бы они ни находились. Второй скрипт использует зеркала страны - они, по-видимому, имеют наименьшую доступную полосу пропускания (это видно в списке архиваторов на панели запуска), третий скрипт предполагает, что быстрое (или ближайшее) зеркало действительно самое лучшее. В исходную точку. Я кодирую небольшой скрипт apt-spy прямо сейчас. Будет обновляться позже. – Till 20 July 2013 в 16:46
  • 2
    @ Должно быть, ваш вопрос был " Как вы работаете со временем простоя? " и " Как я могу помочь улучшить эту ситуацию? ". Я показал, как я работаю, и предложил вам, как вы можете помочь улучшить ... Кроме того, если вы прочтете мой ответ до конца, вы увидите, что я знаю, что " Это может быть не лучшее решение , но я думаю, что хорошее решение можно дать таким образом, как в сценариях выше ". Наконец, если вам интересно исправить / улучшить сломанные серверы, это выглядит не по теме, и вы должны поговорить с владельцами этих серверов. – Radu Rădeanu 20 July 2013 в 20:56
  • 3
    Я не думаю, что это не по теме. Различные люди Canonical / Ubuntu сказали мне добавить мой вопрос здесь. Вот почему я здесь в первую очередь, и я думаю, почему есть награда. – Till 20 July 2013 в 21:49
  • 4
    @Позвольте, вопрос хороший, но не так, как вы переформулировали его в этих комментариях. Никто не ответит на вопрос «как исправить поврежденный зеркальный сервер», здесь, насколько это не администратор на соответствующем сервере. – Radu Rădeanu 20 July 2013 в 22:01
  • 5
    Я не хочу исправлять этот сервер, я хочу исправить алгоритм выбора и отсутствие перехода на другой ресурс. – Till 20 July 2013 в 23:38

В Debian 6.0.4 была эта команда:

apt-spy

Это выполнило задание, чтобы найти следующий ближайший доступный автоматический сервер и создать новый source.list

В Ubuntu эта команда, похоже, не существует?

Она все еще существует в Debian 7.0 wheezy:

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

Вы можете скачать пакет * .deb здесь:

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

... все еще ищут источники ...

Вам, очевидно, нужна Debian-7.0-Installation для получения исходно- код после редактирования списка источников с записью:

apt-spy

deb-src http://http.debian.net/debian wheezy main [ ! d14] sudo apt-get source apt-spy

2
ответ дан 24 May 2018 в 20:03
  • 1
    Спасибо за предложение, apt-spy отлично выглядит. Я не уверен, что работает хорошо. Каждый раз, когда я устанавливал debian-файлы в ubuntu, он рано или поздно прерывался из-за других зависимостей. – Till 18 July 2013 в 19:54
  • 2
    @ Поверьте - это всегда что-то с немного большим количеством рытья ... как только Linux становится более требовательным. – dschinn1001 18 July 2013 в 20:40
  • 3
  • 4
    @ Возможно, вы имеете в виду: Построить его ...! или Построено ...? - Я ухаживаю в следующий раз - сейчас здесь полнолуние, и я неловко ... – dschinn1001 21 July 2013 в 03:56
  • 5
    вы быстро! – dschinn1001 21 July 2013 в 03:58

Возможно, вы не используете нужное решение, но настройка локального кеша для файлов .deb должна быть идеальной при загрузке нескольких пакетов MB (в основном из них я ставлю один и тот же), и поскольку вы загружаете из того же сервер, вы можете пожертвовать ПК, чтобы сделать кеш, и сделать сервер менее занятым.

Процедура

Вы должны установить apt-cacher на машине с партиями пространства на жестком диске (вам это понадобится).

Установить apt-cacher sudo apt-get install apt-cacher apache2 Изменить /etc/default/apt-cacher и установить значение autostart до 1, поэтому ваш кеш запускается при включении питания. Перезапустите apache sudo /etc/init.d/apache2 restart Проверьте свой кеш с помощью http://ip-of.your.cache:3142/apt-cacher. Вы должны разрешить хосту использовать кеш, поэтому отредактируйте /etc/apt-cacher/apt-cacher.conf и найдите строку allowed_hosts. Вы можете установить подсети типа 192.168.0.0/24 или только * для всех хостов. Найдите быстрый и надежный сервер. Вы можете использовать apt-spy для этого (эта команда может занять часы, так как она также проверяет скорость каждого сервера). В ваших клиентах у вас есть два варианта: установите sources.list следующим образом: deb http: //ip-of.your.cache: 3142 / the.server.you.like / ubuntu / lucid основная ограниченная универсальная универсальная мультиверсия Изменить для ip вашего кеша и the.server.you.like для имени хоста сервера, который вы будете использовать. Вы можете использовать несколько строк. Или установите apt для использования прокси: отредактируйте /etc/apt/apt.conf.d/01proxy и добавьте строку: Acquire :: http :: Proxy "http: //ip-of.your.cache: 3142";
2
ответ дан 24 May 2018 в 20:03
  • 1
    Если вы будете использовать apt-spy во всем мире, это продлится некоторое время ... но вы можете использовать эту команду с граничным, например, Европа по: apt-spy -d testing -a Europe – dschinn1001 21 July 2013 в 23:33
  • 2
    @ dschinn1001 -d testing пахнет Debian. – Braiam 21 July 2013 в 23:50
  • 3
    ну тогда: apt-spy -a Europe – dschinn1001 22 July 2013 в 05:37
  • 4
    & Quot; downvote & Quot; ? -Я ничего не сделал? - Иногда бывает, что я случайно нажимаю свою мышь - я никогда не прогоняю с прицелом! поэтому проголосовали за вас! спасибо. – dschinn1001 22 July 2013 в 15:52

Вы можете попробовать настроить собственное зеркало Ubuntu. Таким образом, обновления будут локальными.

apt-mirror нуждается в высокоскоростном подключении к Интернету и большом количестве дискового пространства

. Настройка вашего собственного зеркала Ubuntu очень просто с помощью apt-mirror .

1) зайдите в репозиторий apt-mirror. Создайте резервную копию файла sources.list следующим образом:

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

2) Отредактируйте файл sources.list следующим образом:

gksudo gedit /etc/apt/sources.list

3) И вставьте следующее в новое line:

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

4) Давайте обновим индекс пакета

sudo apt-get update

5) И установите apt-mirror

sudo apt-get install apt-mirror

6) Apt- теперь настроено зеркало, поэтому давайте расскажем, какие серверы должны зеркалировать:

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

Конфигурация по умолчанию помещает ваши загруженные файлы в папку / var / spool / apt-mirror. Вот как выглядит файл mirror.list:

############# 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

это зеркалирует только двоичные пакеты, но если вам нужны исходные пакеты, вы должны вставить соответствующие строки. Они обычно принимают форму:

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

7) Теперь запустите apt-mirror. Это займет довольно много времени. Не беспокойтесь, если вы не можете загрузить все файлы за один раз, apt-mirror может возобновить загрузку (убить его комбинацией клавиш Ctrl + C и повторно запустить его, когда вы хотите продолжить). Итак, запустите apt-mirror так:

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

Также посмотрите, как создать локальное зеркало Debian / Ubuntu с apt-mirror

Источник: используйте Apt-mirror для создания Ваше собственное зеркало Ubuntu

1
ответ дан 24 May 2018 в 20:03
  • 1
    Если память мне подходит, apt-mirror доступен в репозиториях ubuntu. – Braiam 22 July 2013 в 20:32
  • 2
    BTW, обязательно отметьте необходимость много места в HD, чтобы загрузить полное зеркало;) – Braiam 22 July 2013 в 20:57
  • 3
    Спасибо за ответ, и это отличный ресурс для настройки зеркала, и я подумал об этом, но тогда мне понадобится эта setuo, по крайней мере, в трех разных местах. Я знаю, что здесь придирчив, но я все еще чувствую, что mirrors.ubuntu.com должен работать. :) – Till 22 July 2013 в 21:49
  • 4
    @till mirrors.ubuntu.com никогда не разрешит mirrors.ubuntu.com, а ближайший к вам сервер. Проблема в том, что сервер, который он разрешает, является ненадежным. Ваша лучшая игра использует надежный сервер из официального списка. – Braiam 23 July 2013 в 04:48
  • 5
    @Braiam любая идея, почему ненадежные зеркала возвращаются им тогда? – Till 23 July 2013 в 22:53

Я написал скрипт Python, называемый apt-select, чтобы служить альтернативой CLI для метода GUI.

Сценарий запрашивает каждое зеркало через TCP, печатает в зеркалах stdout с наименьшей задержкой и генерирует новый файл sources.list. Существует также несколько опций, которые позволяют вам выбирать из списка зеркал с рейтингом и извлекать информацию, например, когда последнее зеркало было обновлено и пропускная способность.

1
ответ дан 24 May 2018 в 20:03

Другие вопросы по тегам:

Похожие вопросы: