우분투 서버의 미러를 지역에서 주 서버로 어떻게 변경합니까?


76

Lucid Server (10.04)가 설정되어 있으며 미러를 미국 (또는 다른 국가)에서 기본 우분투 미러로 변경하고 싶습니다.

예를 들어 sources.list의 첫 두 항목은 다음과 같습니다.

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

데스크탑 환경에서는 다음과 같이 기본 미러를 선택합니다.

소프트웨어 소스

그러나 그래픽 환경이 설치되어 있지 않으므로 터미널에서 어떻게해야합니까!

답변:


95

sources.list좋아하는 텍스트 편집기를 사용 하여 파일을 엽니 다 . 예 :

sudo nano /etc/apt/sources.list

텍스트를 http://us.archive.ubuntu.com/ubuntu찾아로 바꿉니다 http://archive.ubuntu.com/ubuntu.


나는 이것이 트릭을 할 것이라고 생각했지만 제안한대로 할 때 저장소에 404 오류가 발생했습니다. 지금 다시 확인했는데 괜찮은 것 같습니다. 네트워크 연결에 문제가있는 것 같습니다. 답변 주셔서 감사합니다.
Sorin-Mihai Oprea

GUI와 같은 안전한 방법이 있습니까? 나는 그것을 수동으로 교체하지 않고 오타 등을 피합니다.
로그 오프

아마 이런 식으로 뭔가 :이 askubuntu.com/questions/20414/... @logoff
누가 복음 스탠리

1
또한 apt-get updateAPT가 패키지를 업데이트 할 수 있도록 이후에 실행 하십시오. Package X has no installation candidateAPT가 아직 새 저장소에서 패키지를 스캔하지 않았기 때문에 처음에 메시지 가 표시되었습니다.
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 을 국가 코드로 바꿉니다 .
맨디 S

55

이 명령은 트릭을 수행해야합니다.

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

'우리'를 제거합니다. 각 주소에 접두사를 붙여 기본 서버의 주소로 변환하십시오.

물론 다른 미러로 'us'를 바꾸십시오.

명령에 대한 자세한 설명 :

sed- 텍스트 필터링 및 변환을위한 스트림 편집기.

  • -i 인수 장소에서 파일을 편집하는 것입니다.

  • 다음 의 | 정규 표현식 | 교체 | g '는 , s의 검색을 지정하고 명령을 교체합니다.

  • 끝에 있는 g 는 "전역 적으로"검색에 대한 논쟁입니다.

  • 결론 : 모든 http : // us를 대체합니다 . 에 http : // 파일에서 /etc/apt/sources.list 파일 .


1
명령을 조금 더 설명해보십시오. 어떻게합니까?
Evandro Silva

1
우리를 거울로 바꾸려면 다음을 수행하십시오.sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian

여기에 게시 된 방법은 맞지만 상단에 게시 된 코드가 잘못되었습니다. [code] "sudo sed -i 's / http : \ / \ / us./http:\/\//g'/ etc / apt / sources.list "[/ code] 아래에 sed cmd가 게시되어있는 것이 의미가 있습니다.
SAGAR Nair

수동 텍스트 편집이 필요없는 원 라이너에 대해 대단히 감사합니다. sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(스위스에 있습니다)를 사용하여 몇 kB / s 다운로드 속도에서 10MB / s로갔습니다 . 나는 osboxes 이미지로 작업하고 있었고, 그것들은 그 점에서 분명히 잘못 구성되어 있습니다 ...
masterxilo

4

source.list에서 국가 코드 "us"를 "au"와 같은 다른 코드로 제거 / 변경하는 올바른 sed 사용법은 다음과 같습니다.

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

또는 무언가로 변경하지 않고 "us"만 제거하려면 아래 코드를 사용하십시오.

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명령 줄 모드 및 입력 일반 모드를 종료했는지 확인합니다. (당신이 원하는 경우) 지금 당신은 확실히 모든 항목 수 있도록 키보드 이동 키를 사용하여 파일을 스크롤 할 수 있습니다 우리 의 거울이 편집되었다.

마지막으로, 명령 행 모드 (type :)를 입력 wq!하여 저장하고 종료 한 후 저장하고 종료하십시오 vim.


여기서 검색 정규 표현식 % s / http : \ / \ / us \ ./ http : \ / \ // g; "." (점)은 구분 기호가 아니므로 백 슬래시로 이스케이프 처리하지 않아도됩니다.
SAGAR Nair

@SAGARBHOOSHAN .자체는 "새 줄을 제외한 모든 문자" 입니다. 백 슬래시는 문자 점과 만 일치하도록합니다.
차이 티 렉스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.