Mirrors (Italiano)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Questa pagina è una guida per la selezione e la configurazione dei "mirrors", e un elenco degli attuali mirrors disponibili.

Attivazione di un mirror specifico

Per attivare i mirrors, aprire /etc/pacman.d/mirrorlist e individuare la propria regione geografica. Decommentare i mirrors che si desidera utilizzare.

Nota: La velocità di banda di ftp.archlinux.org è limitata a 50KB/s

Esempio:

# Any
# Server = ftp://mirrors.kernel.org/archlinux/$repo/os/i686
Server = http://mirrors.kernel.org/archlinux/$repo/os/i686

Consultare #Mirror status e #Elenco per velocità per alcuni utili strumenti che aiutano nella scelta dei mirrors.

Suggerimento: Decommentare 5 mirrors di preferenza e metterli in cima al file mirrorlist. In questo modo è più facile trovarli ed eventualmente spostarli se il primo mirror della lista avesse dei problemi. Inoltre agevola gli aggiornamenti dei mirrorlist all'interno del file stesso.

È anche possibile specificare i mirrors in /etc/pacman.conf. Per il repository [core], l'impostazione di default è:

[core]
Include = /etc/pacman.d/mirrorlist

Per usare il mirror HostEurope come predefinito, aggiungerlo prima della riga Include:

[core]
Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/core/os/i686
Include = /etc/pacman.d/mirrorlist

pacman tenterà ora di connettersi prima a questo mirror. Procedere con la stessa impostazione per [testing], [extra], e [community], se possibile.

Nota: Se i mirror sono stati indicati direttamente in pacman.conf, ricordarsi di utilizzare lo stesso mirror per tutti i repository. In caso contrario, potrebbero essere installati pacchetti che sono incompatibili tra di loro, come linux da [core] e un vecchio modulo del kernel da [extra].

Mirror status

Verificare lo stato dei mirror Arch ed il loro livello di aggiornamento visitando il sito https://www.archlinux.de/?page=MirrorStatus o https://archlinux.org/mirrors/status/.

Si può generare una lista aggiornata dei mirror qui e automatizzare il processo con uno script, oppure installare eventualmente Reflector, una utility che genera una mirrorlist usando la lista "Mirrorcheck"; un ulteriore alternativa è controllare il livello di aggiornamento manualmente così:

  1. scegliere un server ed esplorare "extra/os/";
  2. accedere a https://archlinux.org/ in un'altra scheda o finestra del browser e,
  3. confrontare la data dell'ultima modifica della cartella i686 sul mirror [extra] nella pagina principale, nel box Package Repositories a destra.

Scelta e selezione dei mirrors

Se non si usa reflector, che offre la funzionalità di ordinare i mirror sia per livello di aggiornamento che per velocità, seguire questa dimostrazione di scelta manuale dei mirror.

Elenco per velocità

È raccomandabile, al fine di trarre il massimo vantaggio, utilizzare il mirror locale più veloce, che può essere determinato tramite lo script bash incluso /usr/bin/rankmirrors.

Usare cd per spostarsi nella cartella /etc/pacman.d:

# cd /etc/pacman.d

Eseguire un backup del /etc/pacman.d/mirrorlist esistente:

# cp mirrorlist mirrorlist.backup

Modificare mirrorlist.backup decommentando i mirrors testing con rankmirrors:

# nano mirrorlist.backup

Facoltativamente eseguire la seguente riga sed per decommentare ogni mirror:

# sed '/^#\S/ s|#||' -i mirrorlist.backup

Per ultimo, i comandi per creare la graduatoria dei mirrors. L'operando -n 6 significa solo l'output dei 6 mirrors più veloci:

# rankmirrors -n 6 mirrorlist.backup > mirrorlist

Eseguire rankmirrors -h per una lista di tutte le opzioni disponibili.

Forzare pacman ad aggiornare la lista dei pacchetti
Dopo la creazione/modifica di /etc/pacman.d/mirrorlist (manualmente o usando rankmirrors), eseguire il seguente comando:

# pacman -Syy
Suggerimento: L'esecuzione di una doppia flag --refresh o -y forza pacman ad aggiornare tutti i pacchetti nella lista anche se sono considerati perfettamente aggiornati. Eseguire pacman -Syy, ogni volta che si cambia mirror, è una buona abitudine, e si evitano eventuali e sempre possibili problemi.

Elenco misto in base a velocità e stato

Non è una buona idea quella di utilizzare solo i mirror più veloci, dal momento che potrebbe anche non essere ben aggiornato. La soluzione migliore sarebbe usare #Elenco per velocità, che elenca i 6 mirror più veloci tramite il loro #Mirror status.

Basta visitare uno o più #Mirror status link e ordinarli in base al più alto livello di aggiornamento. Spostare i mirror più aggiornati in cima a /etc/pacman.d/mirrorlist e se non sono aggiornati, semplicemente non usarli; ripetere il processo tralasciando i mirror non aggiornati. Così si ottiene un totale di 6 mirror ordinati per velocità e stato, lasciando da parte quelli obsoleti.

Quando si rileva una qualche irregolarità con i mirror, il procedimento descritto dovrebbe essere ripetuto. Lo si può anche rifare una volta ogni tanto, anche se non si riscontrano problemi, per mantenere aggiornato /etc/pacman.d/mirrorlist.

Script per automatizzare l'uso di Pacman Mirrorlist Generator

È possibile utilizzare il seguente script di shell per aggiornare i propri mirror in base ai punteggi di Pacman Mirrorlist Generator. Se non si vive negli Stati Uniti, è possibile modificare la variabile country.

updatemirrors.sh
#!/bin/sh

[ "$UID" != 0 ] && su=sudo

country='US'
url="https://www.archlinux.org/mirrorlist/?country=$country&protocol=ftp&protocol=http&ip_version=4&use_mirror_status=on"

tmpfile=$(mktemp --suffix=-mirrorlist)

# Get latest mirror list and save to tmpfile
wget -qO- "$url" | sed 's/^#Server/Server/g' > "$tmpfile"

# Backup and replace current mirrorlist file (if new file is non-zero)
if [ -s "$tmpfile" ]
then
  { echo " Backing up the original mirrorlist..."
    $su mv -i /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig; } &&
  { echo " Rotating the new list into place..."
    $su mv -i "$tmpfile" /etc/pacman.d/mirrorlist; }
else
  echo " Unable to update, could not download list."
fi

# allow global read access (required for non-root yaourt execution)
chmod +r /etc/pacman.d/mirrorlist
Nota: É necessario copiare e salvare il testo in un file e accordargli i permessi di esecuzione tramite il comando chmod +x. Se non si è effettuato l'accesso come root lo script invocherà il comando sudo per poter essere eseguito con i giusti privilegi ed effettuare la rotazione del mirrorlist.

Uso di reflector

È possibile utilizzare Reflector per recuperare gli ultimi mirrorlist dalla pagina MirrorStatus, filtrare i mirror più aggiornati, ordinarli in base alla velocità e sovrascrivere il file /etc/pacman.d/mirrorlist.

Mirror ufficiali

La lista dei mirror ufficiali di Arch Linux è disponibile con il pacchetto pacman-mirrorlist. Per ottenere un elenco mirror ancora più aggiornato, usare la pagina Pacman Mirrorlist Generator sul sito ufficiale.

Nell'improbabile caso in cui ci si trovi senza nessun mirror configurato e pacman-mirrorlist non sia installato:

# wget -O /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/

Assicurarsi di decommentare il mirror preferito come descritto sopra, quindi:

# pacman -Syy
# pacman -S --force pacman-mirrorlist

Se si volesse vedere il proprio mirror aggiunto alla lista ufficiale, presentare una richiesta ai responsabili del progetto. Nel frattempo, aggiungerlo alla lista #Mirror non ufficiali alla fine di questa pagina.

Se si verifica un errore che indica che la variabile $arch è usata ma non definita, aggiungere al proprio /etc/pacman.conf:

Architecture = x86_64
Nota: È anche possibile utilizzare il valore auto e i686 per l'architettura.

IPv6-ready mirrors

Il pacman mirrorlist generator può essere usato per generare una lista di mirrors IPv6.

Mirror non ufficiali

Questi mirror non sono elencati in /etc/pacman.d/mirrorlist.

Globali

TOR Network

Singapore

Bulgaria

Vietnam

FPT TELECOM

Cina

CHINA TELECOM

CHINA UNICOM

Cernet

Francia

Germania

Indonesia

Kazakistan

Lituania

Malesia

Nuova Zelanda

Polonia

Russia

Sud Africa

Stati Uniti

Risoluzioni dei problemi

Mirror non sincronizzati: pacchetti corrotti/file non trovati

Le problematiche relative ai mirror out-of-sync sottolineate in questo post possono essere già state risolte per molti utenti, ma nel caso si ripresentino di nuovo gli stessi problemi, provare semplicemente a vedere se sono presenti i pacchetti nel repository [testing].

Dopo aver sincronizzato con pacman -Sy, usare questo comando:

# pacman -Ud $(pacman -Sup | tail -n +2 | sed -e 's,/\(core\|extra\)/,/testing/,' \
                                              -e 's,/\(community\)/,/\1-testing/,')

Ciò potrebbe aiutare in quelle occasioni in cui i pacchetti nel mirror non siano stati sincronizzati a [core] o [extra], e resiedano ancora in [testing]. È completamente sicuro installare da [testing] in questo caso, poiché i pacchetti sono accompagnati dai numeri di versione e di rilascio.

In ogni caso, è meglio dare una rinfrescata ai mirror e alla sincronizzazione con pacman -Syy che ricorrere a un repository alternativo. Tuttavia, tutti, o alcuni mirror, potrebbero a volte non essere sincronizzati, in qualche misura.

Usare tutti i mirror

Per emulare il comportamento di pacman -Su, e cioè di scorrere l'intera lista dei mirror, utilizzare questo script:

~/bin/pacup
#!/bin/bash

# Pacman will not exit on the first error. Comment the line below to
# try from [testing] directly.
pacman -Su "$@" && exit

while read -r pkg; do
  if pacman -Ud "$pkg"; then
    continue
  else
    while read -r mirror; do
      pacman -Ud $(sed "s,.*\(/\(community-\)*testing/os/\(i686\|x86_64\)/\),$mirror\1," <<<"$pkg") &&
      break
    done < <(sed -ne 's,^ *Server *= *\|/$repo/os/\(i686\|x86_64\).*,,gp' \
           </etc/pacman.d/mirrorlist | tail -n +2 )
  fi
done < <(pacman -Sup | tail -n +2 | sed -e 's,/\(core\|extra\)/,/testing/,' \
                                        -e 's,/\(community\)/,/\1-testing/,')

Vedere anche