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

58

У меня установлен 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

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

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

    
задан Sorin-Mihai Oprea 16.02.2012 в 10:32
источник

4 ответа

76

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

sudo nano /etc/apt/sources.list

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

    
ответ дан Jakob 16.02.2012 в 11:01
источник
43

Эта команда должна выполнить трюк

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

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

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

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

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

  • Аргумент -i предназначен для редактирования файла.

  • Затем 's / regexp / replacement / g' , s , указав поиск и замените команду.

  • g в конце является аргументом для поиска по всему миру.

  • прямая косая черта - это разделитель между командой и аргументами, за исключением тех случаев, когда она выполняется с помощью обратного слэша .

  • Заключение: заменяет все вхождения Ссылка . с Ссылка в файле /etc/apt/sources.list .

Примечание: если ваш текст замены имеет косые черты в обратном направлении, может быть яснее использовать канал в качестве разделителя sed (ref Ссылка ), например:

sudo sed -i 's|http://us.|http://|g' /etc/apt/sources.list
    
ответ дан PoloSoares 10.12.2014 в 08:27
1

С 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

Нажмите Введите

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

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

    
ответ дан fangxing 22.05.2017 в 10:33
0

Исправить использование 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
    
ответ дан SAGAR BHOOSHAN 09.03.2018 в 01:03