
Ci sono vari motivi per cui vorresti creare il tuo repository locale. È un ottimo modo per creare un repository mirror locale per memorizzare nella cache i pacchetti utilizzati di frequente utilizzati da molti computer per risparmiare l'utilizzo della larghezza di banda, oppure potresti avere alcuni pacchetti modificati che desideri rendere internamente disponibili per il team di sviluppo.
In questo tutorial, ti mostreremo come creare facilmente un repository di pacchetti Debian locale , compatibile con le versioni Debian e Ubuntu.
Fase 1:installazione del pacchetto richiesto
Sui sistemi basati su Debian, tutti i repository sono gestiti dalle utilità APT (apt, apt-get, apt-cache, ecc.). Il pacchetto dpkg-dev è necessario per la creazione di un repository locale compatibile con APT.
Per prima cosa Aggiorna i pacchetti di sistema usando il seguente comando:
$ sudo apt update && sudo apt upgrade
Quindi installa dpkg-dev pacchetto digitando quanto segue:
$ sudo apt-get install dpkg-dev
Al termine dell'installazione del pacchetto, procedi con la creazione di una directory per i file del pacchetto.
Fase 2:crea una directory per il repository locale
Crea una directory per conservare i pacchetti binari. Per questo esempio useremo /opt/local/debs, ma puoi usare qualsiasi directory tu voglia.
$ sudo mkdir -p /opt/local/debs
Quindi, cambia directory:
$ cd /opt/local/debs
Fase 3:aggiunta di pacchetti alla directory Repo locale
Ai fini di questo tutorial, scaricheremo il pacchetto Chrome-browser nel nostro repository locale, perché non si trova nel repository Ubuntu predefinito:
$ sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Puoi copiare o scaricare tutti i pacchetti che vuoi in questo passaggio.
Fase 4:crea il pacchetto di repository richiesto Meta per APT
Per questo, dobbiamo eseguire diversi comandi dpkg-scanpackages. Passerò all'account utente root perché sto usando la directory /opt/local per saltare usando sudo.
$ sudo su
Innanzitutto, creeremo un file di rilascio eseguendo il seguente comando:
# dpkg-scanpackages . /dev/null > Release
Dovresti ottenere un output simile a seconda di quanti pacchetti hai aggiunto al repository locale:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Quindi, scansiona tutti i file deb nella directory e crea un file Packages.gz appropriato
# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Uscita:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Nota che devi eseguire questi comandi ogni volta che aggiungi nuovi pacchetti deb alla directory del tuo repository locale. Puoi anche creare un semplice script bash ed eseguirlo ogni volta che aggiungi nuovi pacchetti.
Per elencare la struttura della directory del repository locale, eseguire il comando ls:
$ ls -l
Uscita:
-rw-r--r-- 1 root root 83325072 May 8 02:29 google-chrome-stable_current_amd64.deb
-rw-r--r-- 1 root root 761 May 17 20:44 Packages.gz
-rw-r--r-- 1 root root 1321 May 17 20:39 Release
Fase 5:aggiunta del nostro repository locale a Sources.list
Il passaggio finale consiste nel modificare il file sources.list. Modifica il file utilizzando l'editor di tua scelta:
$ sudo nano /etc/apt/sources.list
Aggiungi la seguente riga al tuo /etc/apt/sources.list:
deb [trusted=yes] file:/opt/local/debs ./
Ora testeremo il nostro repository locale in azione.
Fase 6:verifica
Possiamo verificare installando o rimuovendo i pacchetti dal repository locale.
Per prima cosa dobbiamo aggiornare i pacchetti:
$ sudo apt-get update
Ora installiamo il nostro pacchetto come al solito usando apt-get:
$ sudo apt-get install google-chrome-stable
Ora i tuoi pacchetti locali possono essere installati, aggiornati e rimossi usando Synaptic, aptitude e i comandi apt:apt-get, apt-cache, ecc. Quando esegui apt-get install, tutte le dipendenze verranno risolte e installate per te, purché come possono essere soddisfatte.
Possiamo rimuovere facilmente i nostri pacchetti installati allo stesso modo di qualsiasi pacchetto installato sul nostro sistema:
$ sudo apt-get remove google-chrome-stable
Conclusione
In questo tutorial, abbiamo imparato come creare il nostro repository Debian locale e aggiungere/rimuovere pacchetti in locale. Questi passaggi si applicano alla maggior parte delle distribuzioni basate su Debian.