GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare un server di repository Ubuntu

Questa guida mostrerà come configurare un server di repository locale basato su Ubuntu Bionic, ma può essere adattato a una versione precedente di Ubuntu o anche a qualsiasi distribuzione che utilizzi Aptitude come sistema di gestione dei pacchetti principale, come Debian o Mint. In genere potresti voler configurare un repository locale per risparmiare larghezza di banda Internet.

In questo tutorial imparerai:

  • Come installare il software richiesto sul server
  • Come selezionare quali repository eseguire il mirroring sul server
  • Come eseguire il mirroring della selezione dei repository in locale sul server
  • Come configurare il client Linux per utilizzare il server di repository locale

Come detto sopra, non stiamo considerando un mirror pubblico o country per questo tutorial, ma se vuoi implementarlo considera che:

  • La larghezza di banda della tua rete diventa molto importante
  • Devi registrare il repository nell'elenco dei mirror di Ubuntu
  • Devi sincronizzare il mirror almeno quattro volte al giorno
  • Poiché devi eseguire il mirroring di tutte le versioni precedenti, potresti aver bisogno di 2 TB o più di spazio su disco


Aggiornamento dell'elenco dei pacchetti dai repository locali.

Requisiti e convenzioni software utilizzati

Requisiti software e convenzioni della riga di comando Linux
Categoria Requisiti, convenzioni o versione del software utilizzata
Sistema Ubuntu 18.04.2 (Bionic Beaver) LTS
Software Apache http 2.x, apt-mirror
Altro Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando, minimo 200 GB di spazio su disco per il repository
Convenzioni # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando
$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato

Come creare un server di repository Ubuntu passo dopo passo

  1. Installazione del software richiesto sul server.

    Come primo passo abbiamo bisogno di installare il server HTTP Apache che si trova sotto il pacchetto chiamato apache2 , con il comando:

    $ sudo apt install apache2

    Installazione di Apache HTTP

    Quindi assicurati che il servizio venga eseguito all'avvio:

    $ sudo systemctl enable apache2
    

    Se tutto va bene, ci sposteremo nella directory DocumentRoot predefinita (che è /var/www/html).
    Lì possiamo quindi creare la sottodirectory /var/www/html/ubuntu e assegnarlo all'apposito titolare, in questo caso www-data (l'utente con cui viene eseguito Apache HTTP).

    $ sudo mkdir -p /var/www/html/ubuntu
    $ sudo chown www-data:www-data /var/www/html/ubuntu
    

    È fortemente raccomandato che DocumentRoot o almeno la sottocartella ubuntu si trovi su un filesystem appartenente a un volume logico; in questo modo possiamo ingrandirlo online, senza tempi di inattività.
    Al momento del mio test 171.5 GiB sono lo spazio minimo assoluto necessario per rispecchiare anche i pacchetti src; quindi per pianificare il futuro si consiglia di avere almeno 300 GiB di spazio su disco.

    Questa è principalmente una stima se si sceglie una versione di Ubuntu; se è necessario eseguire il mirroring di pacchetti per versioni diverse, i requisiti di spazio aumenteranno notevolmente.

  2. Lo strumento principale che ci consente di creare un repository locale è apt-mirror , per installarlo eseguire:

    $ sudo apt install apt-mirror
    

    Nel caso in cui il pacchetto non venga trovato, assicurati di aggiornare prima l'elenco dei pacchetti con:

    $ sudo apt update
    
  3. Selezione di quali repository eseguire il mirroring sul server.

    Una volta installato apt-mirror possiamo fare una copia di backup del suo file di configurazione /etc/apt/mirror.list , dopodiché assicurati che la riga contenente l'opzione set base_path punta al percorso corretto per il nostro repository (di default è /var/spool/apt-mirror ).

    $ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
    

    Quindi ora puoi usare il tuo editor preferito (vi o nano per esempio) per cambiare l'opzione base_path nel file mirror.list in /var/www/html/ubuntu; devi anche specificare che stai eseguendo il mirroring dei repository bionic distro (cambia di conseguenza se hai una versione Ubuntu diversa), sempre nel file di configurazione mirror.list.

    file di configurazione mirror.list

    Nel caso in cui non hai molto spazio su disco puoi scegliere di non eseguire il mirroring dei pacchetti src; così commenterai le relative righe:

    file di configurazione mirror.list

    Quindi copi uno script importante in /var/www/html/ubuntu/var/

    $ sudo mkdir -p /var/www/html/ubuntu/var 
    $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
    
  4. Mirroring dei repository selezionati localmente sul server.

    Ora è il momento di creare un mirror locale, tieni presente che un mirroring iniziale (da archive.ubuntu.com solo per questo tutorial) può richiedere molto tempo e rallentare la tua connessione, quindi ti suggerisco di iniziare questo lavoro di notte.
    Per avviare il mirroring dei pacchetti di repository remoti sul server locale, esegui semplicemente il comando:

    $ sudo apt-mirror
    

    Se necessario, puoi interrompere questo processo (con la classica combinazione CTRL+C) e riavviarlo in un secondo momento; riprenderà da dove era stato lasciato.

    Alla fine arriveremo al punto in cui gli script clean.sh e postmirror.sh vengono eseguiti, è un segno che il processo di mirroring è stato completato.

    Fine del processo di mirroring.

  5. Configurazione del processo di sincronizzazione automatica utilizzando cron scheduler.

    Dopo che la nostra prima sincronizzazione è stata completata, dobbiamo creare un cron job per assicurarci di avere un repository locale aggiornato automaticamente; ad esempio, vogliamo che questa attività venga eseguita ogni notte alle 2:00 e quindi:

    $ sudo crontab -e
    

    Quindi modifichiamo il crontab per aggiungere la seguente riga:

    00 	02 	*	 *	 *	/usr/bin/apt-mirror
    

    E salva ed esci (usando vi, nano o qualunque editor sia impostato).

Configurazione del client Linux per utilizzare il server di repository locale

  1. Configurazione dell'elenco dei repository locali.

    In qualsiasi client che utilizzerà il nostro repository locale, dobbiamo modificare il file di configurazione /etc/apt/sources.list specificando il nostro repository locale e disabilitando qualsiasi repository remoto.

    Nel nostro caso sono stati scaricati i seguenti repository:

    Repository locali del server

    NOTA

    Si consiglia di commentare qualsiasi riga in /etc/apt/sources.list file che si riferisce a repository non rispecchiati nel nostro server, ad esempio, in questo caso, qualsiasi riga che inizia con deb-src e contenente bionic-backports sono stati commentati.

    In caso contrario, potresti ricevere l'errore
    Release file has not been found durante l'esecuzione del comando apt update sul client.

    Prima di tutto sostituiamo qualsiasi stringa archive.ubuntu.com con il nostro IP mirror locale, in questo caso 10.0.0.42. Ovviamente il tuo indirizzo IP locale potrebbe essere diverso.

    $ sudo  sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
    

    Questo comando creerà il file di backup /etc/apt/sources.list.bak0 e sostituisci qualsiasi archive.ubuntu.com stringa con 10.0.0.42 .

    Un'ulteriore regolazione sta funzionando di nuovo in questo modo:

    $ sudo  sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
    

    Ciò è necessario poiché apt-mirror aggiunge il percorso mirror/archive.ubuntu.com/ubuntu al nostro cammino di base. Qui verrà creato un ulteriore file di backup

    /etc/apt/sources.list.bak1.
    

    Ai fini di questo tutorial, stiamo solo eseguendo il mirroring di pacchetti o repository da archive.ubuntu.com; ovviamente puoi aggiungere altri repository non ufficiali nel file mirror.list nel server, ma poi devi rieseguire apt-mirror lì e modificare di conseguenza il file sources.list su qualsiasi client.

  2. Aggiorna l'indice del repository locale.
    Ora devi assicurarti che la porta 80 non sia bloccata dal firewall del client e quindi puoi eseguire:

    $ sudo apt update
    

    E sei pronto per partire.

    Aggiornamento dell'elenco dei pacchetti dai repository locali.

Conclusione

Configurare un repository locale in Ubuntu non è difficile come potrebbe sembrare e può tornare utile a condizione che tu abbia una rete locale adeguata e risorse del disco.


Ubuntu
  1. Come installare PostgreSQL su Ubuntu 18.04

  2. Come creare un utente Sudo su Ubuntu

  3. Come installare MySQL su Ubuntu 18.04

  4. Come creare un backup

  5. Come installare Zimbra 8.6 su Ubuntu 14.04 Server

Come configurare il server Bacula su Ubuntu 16.04

Come installare il server OpenSIPS su Ubuntu 15.04

Come creare un server di posta completo su Ubuntu

Come trovare il miglior mirror del repository APT di Ubuntu

Come installare Plex Media Server su Ubuntu 16.04 Server/Desktop

Come creare un server Minecraft su Ubuntu 20.04