Comment changer de miroir dans Ubuntu Server de régional à principal?

76

J'ai un serveur Lucid (10.04) configuré et je voudrais changer le miroir de US (ou de tout autre pays) au miroir principal Ubuntu.

Par exemple, mes deux premières entrées dans sources.list sont:

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

Dans un environnement de bureau, je choisirais le miroir principal comme ceci:

Sources de logiciels

Mais comment puis-je le faire depuis le terminal car je n’ai pas d’environnement graphique installé!

Sorin-Mihai Oprea
la source

Réponses:

96

Ouvrez votre sources.listfichier en utilisant votre éditeur de texte préféré, par exemple

sudo nano /etc/apt/sources.list

Localisez le texte http://us.archive.ubuntu.com/ubuntuet remplacez-le par http://archive.ubuntu.com/ubuntu.

Jakob
la source
J'ai pensé que cela ferait l'affaire mais quand j'ai fait ce que vous avez suggéré, mais cela m'a donné une erreur 404 pour le référentiel. J'ai vérifié à nouveau maintenant et cela semble aller. Cela semblait être un problème avec ma connexion réseau. Merci beaucoup pour la réponse.
Sorin-Mihai Oprea
y at-il un moyen sécurisé comme avec l'interface graphique. Je veux dire, ne pas le remplacer manuellement et éviter les fautes de frappe ou quoi que ce soit.
déconnexion
Peut-être que quelque chose comme ceci: askubuntu.com/questions/20414/… @logoff
Luke Stanley
1
Exécutez également apt-get updateultérieurement pour qu'APT puisse mettre à jour ses packages. Au départ, j'ai reçu un Package X has no installation candidatemessage parce qu'APT n'avait pas encore analysé le nouveau référentiel à la recherche de packages.
NS du Toit
Pour l'utiliser dans un script, vous sedpouvez utiliser la commande suivante 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 replace nl avec le code de votre pays.
Mandy S
55

Cette commande devrait faire l'affaire:

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

Cela enlèvera le "nous". préfixe dans chacune des adresses pour les convertir en adresses du serveur principal.

Bien sûr, remplacez «nous» par tout autre miroir que vous utilisez.

Explication détaillée de la commande:

éditeur sed - stream pour le filtrage et la transformation de texte.

  • L' argument -i consiste à éditer un fichier à la place.

  • Ensuite , 's | regexp | remplacement | g' , s spécifiant la recherche et remplacer la commande.

  • Le g à la fin étant l'argument de la recherche "globale".

  • Conclusion: remplace toutes les occurrences de http: // us . avec http: // dans le fichier /etc/apt/sources.list .

PoloSoares
la source
1
Essayez d’expliquer un peu plus la commande, que fait-elle?
Evandro Silva
1
Pour changer de miroir, procédez comme suit:sudo sed -i 's/http:\/\/us./http:\/\/de./g' /etc/apt/sources.list'
Christian, le
La méthode publiée ici est correcte, mais le code affiché en haut est incorrect [code] "sudo sed -i '/ http: \ / \ / us./http:\/\//g' / etc / apt / sources.list "[/ code] où se trouvent les cmdd sed au bas de la page.
SAGAR Nair
Merci beaucoup pour le one-liner sans édition manuelle. Je suis passé de quelques kB / s à 10 Mo / s en utilisant sudo sed -i 's|http://us.|http://ch.|g' /etc/apt/sources.list(je suis en Suisse). Je travaillais avec une image osbox et ils sont apparemment assez mal configurés à cet égard ...
masterxilo
4

Corrigez l'utilisation de sed pour supprimer / modifier le code de pays "us" de source.list en quelque chose comme "au", la commande sera la suivante:

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

ou simplement pour supprimer "nous" seul au lieu de le changer, utilisez le code ci-dessous:

sed -i 's/http:\/\/in./http:\/\//g' /etc/apt/sources.list
SAGAR Nair
la source
3

Avec vim:

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

Tapez :(vous devez maintenir Shift) pour entrer en mode commande, puis tapez:

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

Frappé Enter

Cliquez Escpour vous assurer que vous avez quitté le mode ligne de commande et que vous êtes entré en mode normal. Maintenant, vous pouvez faire défiler le fichier avec les touches de déplacement du clavier (si vous le souhaitez) pour vous assurer que toutes les occurrences de nos miroirs ont été modifiées.

Enfin, quittez avec save en entrant en mode de ligne de commande (type :) et entrez wq!pour enregistrer et quitter vim.

fangxing
la source
ici dans l'expression rationnelle% s / http: \ / \ / us \ ./ http: \ / \ // g; "." (point) n'est pas un délimiteur, vous n'avez donc pas besoin de l'échapper avec une barre oblique inverse.
SAGAR Nair
@SAGARBHOOSHAN .en lui-même est "tout caractère sauf la nouvelle ligne" . La barre oblique inverse sert à s’assurer qu’elle ne correspond qu’à un point littéral.
Chai T. Rex