Jak zmienić serwery lustrzane w Ubuntu Server z regionalnego na główny?

76

Mam skonfigurowany Lucid Server (10.04) i chciałbym zmienić kopię lustrzaną z US (lub dowolnego innego kraju) na Main Mirror Ubuntu.

Na przykład moje dwa pierwsze wpisy w pliku sources.list to:

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

W środowisku Desktop wybrałbym główne dublowanie w następujący sposób:

Źródła oprogramowania

Ale jak to zrobić z terminala, ponieważ nie mam zainstalowanego środowiska graficznego!

Sorin-Mihai Oprea
źródło

Odpowiedzi:

95

Otwórz sources.listplik za pomocą ulubionego edytora tekstu, np

sudo nano /etc/apt/sources.list

Znajdź tekst http://us.archive.ubuntu.com/ubuntui zastąp go http://archive.ubuntu.com/ubuntu.

Jakob
źródło
Pomyślałem, że to załatwi sprawę, ale kiedy zrobiłem tak, jak zasugerowałeś, ale dał mi błąd 404 dla repozytorium. Sprawdziłem teraz ponownie i wydaje się, że jest w porządku. Wydawało się, że to problem z moim połączeniem sieciowym. Dziękuję bardzo za odpowiedź.
Sorin-Mihai Oprea
czy jest bezpieczny sposób jak w GUI. Mam na myśli, nie zastępując go ręcznie i unikając literówek lub cokolwiek innego.
wyloguj się
Może coś takiego: askubuntu.com/questions/20414/… @logoff
Luke Stanley
1
Uruchom także apt-get updatepóźniej, aby APT mógł zaktualizować swoje pakiety. Początkowo dostałem Package X has no installation candidatewiadomość, ponieważ APT nie skanował jeszcze nowego repozytorium w poszukiwaniu pakietów.
NS du Toit
Aby użyć go w skrypcie, sedmożna użyć następującego polecenia 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 zamień nl na swój kod kraju.
Mandy S
55

To polecenie powinno załatwić sprawę:

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

Spowoduje to usunięcie „nas”. prefiks w każdym z adresów, aby przekonwertować je na adresy głównego serwera.

Oczywiście zastąp „nas” dowolnym innym lustrem, którego używasz.

Szczegółowe wyjaśnienie polecenia:

sed - edytor strumieniowy do filtrowania i przekształcania tekstu.

  • -I argumentem jest to, aby edytować plik na swoim miejscu.

  • Następnie 'regexp | replace | g' , s określając polecenie szukaj i zamień.

  • G na końcu jest argument do „globalnie” szukaj.

  • Wniosek: zastępuje wszystkie wystąpienia http: // us . z http: // w pliku /etc/apt/sources.list .

PoloSoares
źródło
1
Spróbuj jeszcze bardziej wyjaśnić polecenie, co to robi?
Evandro Silva,
1
Aby przełączyć się z nas na de mirror, wykonaj następujące czynności:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian
Metoda zamieszczona tutaj jest poprawna, jednak kod zamieszczony na górze jest nieprawidłowy [kod] "sudo sed -i 's / http: \ / \ / us./http:\/\//g' / etc / apt / sources.list "[/ code] gdzie sed cmd jest umieszczony na dole ma sens.
SAGAR Nair
Wielkie dzięki za jedno-liniowy podręcznik bez edycji tekstu. Przeszedłem z prędkości pobierania kilku kB / s do 10 MB / s przy użyciu sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(jestem w Szwajcarii). Pracowałem z obrazem osbox i są one najwyraźniej źle skonfigurowane pod tym względem ...
masterxilo
4

Poprawne użycie sed do usunięcia / zmiany kodu kraju „us” ze source.list na coś innego jak „au”, polecenie będzie wyglądać następująco:

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

lub po prostu, aby usunąć „nas” samemu zamiast zmieniać go na coś, użyj kodu poniżej:

sed -i 's/http:\/\/in./http:\/\//g' /etc/apt/sources.list
SAGAR Nair
źródło
3

Z vim:

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

Wpisz :(musisz przytrzymać Shift), aby przejść do trybu poleceń, a następnie wpisz:

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

Trafienie Enter

Kliknij, Escaby upewnić się, że opuściłeś tryb wiersza poleceń i wszedłeś w tryb normalny. Teraz możesz przewijać plik za pomocą klawiszy przesuwania klawiatury (jeśli chcesz), aby upewnić się, że wszystkie wystąpienia nas mirrorów zostały edytowane.

Na koniec wyjdź z zapisywania, wchodząc w tryb wiersza poleceń (typ :) i wejdź, wq!aby zapisać i wyjść vim.

Fangxing
źródło
tutaj w wyszukiwaniu regexp% s / http: \ / \ / us \ ./ http: \ / \ // g; „.” (kropka) nie jest ogranicznikiem, więc nie musisz uciekać przed odwrotnym ukośnikiem.
SAGAR Nair
@ SAGARBHOOSHAN .sam w sobie jest „dowolnym znakiem z wyjątkiem nowej linii” . Odwrotny ukośnik ma zapewnić, że pasuje tylko do dosłownej kropki.
Chai T. Rex,