Làm cách nào để thay đổi máy nhân bản trong Ubuntu Server từ khu vực thành chính?


76

Tôi đã thiết lập Máy chủ Lucid (10.04) và tôi muốn thay đổi máy nhân bản từ Hoa Kỳ (hoặc bất kỳ quốc gia nào khác) sang Máy chủ Ubuntu chính.

Ví dụ: hai mục đầu tiên của tôi trong nguồn.list là:

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

Trong môi trường máy tính để bàn, tôi sẽ chọn gương chính như thế này:

Nguồn phần mềm

Nhưng làm thế nào để tôi làm điều đó từ thiết bị đầu cuối vì tôi không cài đặt môi trường đồ họa!

Câu trả lời:


95

Mở sources.listtệp của bạn bằng trình soạn thảo văn bản yêu thích của bạn, vd

sudo nano /etc/apt/sources.list

Xác định vị trí văn bản http://us.archive.ubuntu.com/ubuntuvà thay thế nó bằng http://archive.ubuntu.com/ubuntu.


Tôi đã nghĩ rằng điều này sẽ thực hiện thủ thuật nhưng khi tôi làm như bạn đề xuất nhưng nó đã gây ra lỗi 404 cho kho lưu trữ. Tôi đã kiểm tra lại bây giờ và nó có vẻ ổn. Nó dường như là một vấn đề với kết nối mạng của tôi. Cảm ơn bạn rất nhiều cho câu trả lời.
Sorin-Mihai Oprea

Có một cách an toàn như với GUI. Ý tôi là, không thay thế nó bằng tay và tránh lỗi chính tả hoặc bất cứ điều gì.
đăng xuất

Có thể là một cái gì đó như thế này: Askubfox.com/questions/20414/ Ấn @logoff
Luke Stanley

1
Cũng chạy apt-get updatesau đó để APT có thể cập nhật các gói của nó. Ban đầu tôi nhận được một Package X has no installation candidatetin nhắn vì APT chưa quét kho lưu trữ mới cho các gói.
NS du Toit

Để sử dụng nó trong tập sedlệnh, lệnh sau có thể được sử dụng sed -E -i 's#http://[^\s]*archive\.ubuntu\.com/ubuntu#http://be.archive.ubuntu.com/ubuntu#g' /etc/apt/sources.list'/etc/apt/source.list thay thế nl bằng mã quốc gia của bạn.
Mandy S

55

Lệnh này nên thực hiện thủ thuật:

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

Nó sẽ xóa 'chúng tôi.' tiền tố trong mỗi địa chỉ để chuyển đổi chúng thành địa chỉ của máy chủ chính.

Tất nhiên thay thế 'chúng tôi' bằng bất kỳ gương nào khác mà bạn đang sử dụng.

Giải thích sâu về lệnh:

sed - trình chỉnh sửa luồng để lọc và chuyển đổi văn bản.

  • Đối số -i là để chỉnh sửa một tệp tại chỗ.

  • Sau đó , s | regapi | thay thế | g ' , s chỉ định lệnh tìm kiếm và thay thế.

  • Các g ở cuối là đối số để tìm kiếm "toàn cầu".

  • Kết luận: thay thế tất cả các lần xuất hiện của http: // us . với http: // trong tệp /etc/apt/source.list .


1
Hãy thử giải thích lệnh nhiều hơn một chút, nó làm gì?
Evandro Silva

1
Để chuyển từ chúng tôi sang gương, hãy làm như sau:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian

Phương pháp được đăng ở đây là đúng, tuy nhiên mã được đăng ở trên cùng là sai [code] "sudo sed -i 's / http: \ / \ / us./http:\/\//g' / etc / apt / nguồn.list "[/ code] trong đó sed cmd được đăng ở phía dưới có ý nghĩa.
SAGAR Nair

Cảm ơn rất nhiều cho một lớp lót thủ công-chỉnh sửa văn bản. Tôi đã tăng từ tốc độ tải xuống vài kB / s lên 10 MB / s bằng cách sử dụng sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(Tôi đang ở Thụy Sĩ). Tôi đã làm việc với một hình ảnh osboxes và chúng rõ ràng bị định cấu hình sai về vấn đề đó ...
masterxilo

4

Sử dụng đúng sed để xóa / thay đổi mã quốc gia "chúng tôi" khỏi source.list sang một tên khác như "au", lệnh sẽ như sau:

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

hoặc chỉ để loại bỏ "chúng tôi" một mình thay vì thay đổi nó thành một cái gì đó, hãy sử dụng mã dưới đây:

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

3

Với vim:

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

Nhập :(bạn cần giữ Shift) để vào chế độ nhập lệnh, sau đó nhập:

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

Đánh Enter

Nhấn Escđể chắc chắn rằng bạn đã thoát khỏi chế độ dòng lệnh và vào chế độ bình thường. Bây giờ bạn có thể cuộn quanh tệp bằng các phím di chuyển bàn phím (nếu bạn muốn) để đảm bảo tất cả các lần xuất hiện của gương chúng tôi đã được chỉnh sửa.

Cuối cùng, thoát với lưu bằng cách vào chế độ dòng lệnh (loại :) và nhập wq!để lưu và thoát vim.


ở đây trong phần tìm kiếm regrec% s / http: \ / \ / us \ ./ http: \ / \ // g; "." (dấu chấm) không phải là dấu phân cách, vì vậy không cần thoát nó bằng dấu gạch chéo ngược.
SAGAR Nair

@SAGARBHOOSHAN .tự nó là "bất kỳ ký tự nào ngoại trừ dòng mới" . Dấu gạch chéo ngược là để đảm bảo nó chỉ khớp với một dấu chấm.
Chai T. Rex
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.