Mirrors (Italiano) - ArchWiki

# Mirrors (Italiano)

Articoli correlati

- Mirroring
- pacman (Italiano)
- Reflector

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.

Tip: 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 http://www.archlinux.de/?page=MirrorStatus o https://www.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://www.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

Tip: 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://www.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 #Unofficial mirrors 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

- http://sourceforge.net/projects/archlinux/files/ - Non dispone di ISO delle release post 2006. Usarlo solo per ISO datate.

### TOR Network

- http://cz2jqg7pj2hqanw7.onion/archlinux
- ftp://mirror:mirror@cz2jqg7pj2hqanw7.onion/archlinux

### Singapore

- http://mirror.nus.edu.sg/archlinux/

### Bulgaria

- http://mirror.telepoint.bg/archlinux/
- ftp://mirror.telepoint.bg/archlinux/

### Vietnam

FPT TELECOM

- http://mirror-fpt-telecom.fpt.net/archlinux/

### Cina

CHINA TELECOM

- http://mirror.lupaworld.com/archlinux/

CHINA UNICOM

- http://mirrors.sohu.com/archlinux/

Cernet

- http://ftp.sjtu.edu.cn/archlinux/ - Shanghai Jiaotong University
- ftp://ftp.sjtu.edu.cn/archlinux/
- http://mirrors.ustc.edu.cn/archlinux/ - University of Science and Technology of China
- ftp://mirrors.ustc.edu.cn/archlinux/
- http://mirrors.tuna.tsinghua.edu.cn/archlinux/ - Tsinghua University
- http://mirrors.4.tuna.tsinghua.edu.cn/archlinux/ (IPv4 only)
- http://mirrors.6.tuna.tsinghua.edu.cn/archlinux/ (IPv6 only)
- http://mirror.lzu.edu.cn/archlinux/ - Lanzhou University

### Francia

- http://delta.archlinux.fr/ - Supporto al Delta Package. È necessario il pacchetto xdelta3 da [extra]
- http://mirror.soa1.org/archlinux
- ftp://mirror:mirror@mirror.soa1.org/archlinux

### Germania

- http://ftp.uni-erlangen.de/mirrors/archlinux/
- ftp://ftp.uni-erlangen.de/mirrors/archlinux/
- http://ftp.u-tx.net/archlinux/
- ftp://ftp.u-tx.net/archlinux/
- http://mirror.michael-eckert.net/archlinux/
- http://linux.rz.rub.de/archlinux/

### Indonesia

- http://mirror.kavalinux.com/archlinux/ - solo per l'indonesia
- http://kambing.ui.ac.id/archlinux/
- http://repo.ukdw.ac.id/archlinux/

### Kazakistan

- http://archlinux.kz/
- http://mirror.neolabs.kz/archlinux/
- http://mirror-kt.neolabs.kz/archlinux/

### Lituania

- http://edacval.homelinux.org/mirrors/archlinux/ - Solo per Lituania, no ISO

### Malesia

- http://mirror.oscc.org.my/archlinux/
- http://mirrors.inetutils.net/archlinux/ - ISO and Core

### Nuova Zelanda

- http://mirror.ihug.co.nz/archlinux/
- http://mirror.ece.auckland.ac.nz/archlinux/ solo NZ

### Polonia

- ftp://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW
- http://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW
- rsync://ftp.icm.edu.pl/pub/Linux/dist/archlinux/ - ICM UW

### Russia

- http://hatred.homelinux.net/archlinux/ - Vladivostok, without iso, with 3SPY project repos and mingw32 repo
- http://mirrors.krasinfo.ru/archlinux/ - Krasnoyarsk, Classica-Service Ltd

### Sud Africa

- http://ftp.sun.ac.za/ftp/pub/mirrors/archlinux/ - Università di Stellenbosch
- ftp://ftp.sun.ac.za/pub/mirrors/archlinux/
- http://ftp.leg.uct.ac.za/pub/linux/arch/ - Università di Cape Town
- ftp://ftp.leg.uct.ac.za/pub/linux/arch/
- http://mirror.ufs.ac.za/archlinux/ - Università di Free State
- ftp://mirror.ufs.ac.za/os/linux/distros/archlinux/
- http://ftp.wa.co.za/pub/archlinux/ - Web Africa Networks
- ftp://ftp.wa.co.za/pub/archlinux/
- http://archlinux.mirror.ac.za - TENET - Tertiary Education and Research Network of South Africa
- ftp://archlinux.mirror.ac.za

### Stati Uniti

- http://archlinux.linuxfreedom.com - contiente molte ISO ma NON l'ultima 2011.08.19
- http://mirror.pointysoftware.net/archlinux/

## 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

- [MirUp] – pacman mirrorlist downloader/checker

Categories:

- About Arch (Italiano)
- Package management (Italiano)