Как мне изменить зеркала в Ubuntu Server с регионального на основное?

76

У меня настроен Lucid Server (10.04), и я хотел бы изменить зеркало с США (или любой другой страны) на Главное зеркало Ubuntu.

Например, две мои первые записи в sources.list:

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

В среде рабочего стола я бы выбрал главное зеркало следующим образом:

Источники программного обеспечения

Но как мне это сделать из терминала, поскольку у меня не установлено графическое окружение!

Сорин-Михай Опря
источник

Ответы:

96

Откройте sources.listфайл, используя ваш любимый текстовый редактор, например

sudo nano /etc/apt/sources.list

Найдите текст http://us.archive.ubuntu.com/ubuntuи замените его http://archive.ubuntu.com/ubuntu.

Jakob
источник
Я подумал, что это сработает, но когда я сделал, как вы предложили, но это дало мне ошибку 404 для хранилища. Я проверил снова сейчас, и, кажется, все в порядке. Казалось, проблема с моим сетевым подключением. Большое спасибо за ответ.
Сорин-Михай Опря
Есть ли безопасный способ, как с графическим интерфейсом. Я имею в виду, не заменяя его вручную и избегая опечаток или чего-то еще.
выход
Может быть, что-то вроде этого: askubuntu.com/questions/20414/… @logoff
Люк Стэнли
1
Также запустите apt-get updateвпоследствии, чтобы APT мог обновить свои пакеты. Сначала я получил Package X has no installation candidateсообщение, потому что APT еще не сканировал новый репозиторий на наличие пакетов.
NS du Toit
Чтобы использовать его в скрипте, sedможно использовать следующую команду sed -E -i 's#http://[^\s]*archive\.ubuntu\.com/ubuntu#http://be.archive.ubuntu.com/ubuntu#g' /etc/apt/sources.list'/etc/apt/sources.list замените nl кодом вашей страны.
Мэнди С
55

Эта команда должна сделать трюк:

sudo sed -i 's|http://us.|http://|g' /etc/apt/sources.list

Это удалит «нас». префикс в каждом из адресов, чтобы преобразовать их в адреса основного сервера.

Конечно, замените «нас» любым другим зеркалом, которое вы используете.

Подробное объяснение команды:

sed - потоковый редактор для фильтрации и преобразования текста.

  • -I аргумент редактировать файл на месте.

  • Тогда «s | регулярное выражение | замены | г» , ы задания поиска и замены команды.

  • Данный символ в конце является аргументом для «глобального» поиска.

  • Вывод: заменяет все вхождения http: // us . с http: // в файле /etc/apt/sources.list .

PoloSoares
источник
1
Попробуйте объяснить команду немного подробнее, что она делает?
Эвандро Сильва
1
Чтобы перейти от нас к зеркалу, сделайте следующее:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Кристиан
Указанный здесь метод верен, однако код, размещенный в верхней части, неверен [code] "sudo sed -i 's / http: \ / \ / us./http:\/\//g' / etc / apt / sources.list "[/ code] где размещен cmd sed, имеет смысл.
САГАР Наир
Большое спасибо за однострочную версию без редактирования текста вручную. Я перешел с скорости загрузки в несколько кБ / с до 10 МБ / с с помощью sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(я в Швейцарии). Я работал с изображением osboxes, и они явно неверно настроены в этом отношении ...
masterxilo
4

Исправьте использование sed, чтобы удалить / изменить код страны «us» из source.list на что-то другое, например «au», команда будет выглядеть следующим образом:

sed -i 's/http:\/\/us./http:\/\/au./g' /etc/apt/sources.list

или просто удалить «нас» вместо того, чтобы что-то менять, используйте код ниже:

sed -i 's/http:\/\/in./http:\/\//g' /etc/apt/sources.list
САГАР Наир
источник
3

С vim:

mv /etc/apt/sources.list{,.bak}   # you may want to make a backup
vim /etc/apt/source.list

Введите :(вам нужно удерживать Shift), чтобы войти в режим командной строки, а затем введите:

%s/http:\/\/us\./http:\/\//g

Ударил Enter

Нажмите, Escчтобы убедиться, что вы вышли из режима командной строки и вошли в нормальный режим. Теперь вы можете прокручивать файл с помощью клавиш перемещения клавиатуры (если хотите), чтобы убедиться, что все наши зеркала были отредактированы.

Наконец, выйдите с сохранением, войдя в режим командной строки (тип :) и введите, wq!чтобы сохранить и выйти vim.

Fangxing
источник
здесь в поиске регулярное выражение% s / http: \ / \ / us \ ./ http: \ / \ // g; "" (точка) не является разделителем, поэтому не нужно экранировать его обратной косой чертой.
САГАР Наир
@SAGARBHOOSHAN .сам по себе является «любым символом, кроме новой строки» . Обратная косая черта должна гарантировать, что она соответствует только буквальной точке.
Чай Т. Рекс