#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
In questa pagina viene spiegato come realizzare un repository locale. Ciò può essere molto utile se si possiede una connessione lenta o se si vogliono salvare per una nuova installazione tutti i software già scaricati automaticamente senza doverli nuovamente riscaricare.
= Preparativi =
[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://dpkg-dev|dpkg-dev]].
= Creazione del repository locale =
* Creare una cartella in cui inserire i pacchetti che formeranno il repository: {{{
sudo mkdir /usr/local/repository
}}}
* Spostare i pacchetti `.deb` già presenti in `/var/cache/apt/archives` all'interno della cartella `/usr/local/repository` digitando i seguenti comandi in una finestra di terminale: {{{
cd /var/cache/apt/archives
sudo mv *.deb /usr/local/repository
}}}
* E' anche possibile aggiungere altri pacchetti `.deb` scaricati da internet. Se in precedenza è stato installato il pacchetto [[apt://apt-cacher|apt-cacher]], altri pacchetti saranno presenti all'interno della cartella `/var/cache/apt/archives/packages`.
= Sources.list =
* Aprire il file `/etc/apt/sources.list` con un [[Ufficio/EditorDiTesto|editor di testo]] con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] e aggiungere in fondo al file la riga seguente: {{{
deb file:/usr/local/repository ./
}}}
= Script update-repository =
Con lo script seguente, '''dpkg-scanpackages''' controllerà tutti i pacchetti presenti in `/usr/local/repository` e l'output verrà salvato all'interno di un file compresso `Packages.gz` che il comando ''apt-get update'' è in grado di leggere.
* Con un [[EditorDiTesto|editor di testo]] e i [[Sudo|privilegi di amministrazione]] creare il file `update-repository` all'interno della cartella `/bin`: {{{
sudo gedit /bin/update-repository
}}}
* Inserire all'interno del file le righe seguenti: {{{#!bash
#! /bin/bash
cd /usr/local/repository
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
}}}
* Modificare i permessi del file appena creato: {{{
sudo chmod u+x /bin/update-repository
}}}
In alternativa, il file `update-repository` potrebbe essere modificato nel seguente modo al fine di automatizzare lo spostamento dei file `.deb` dalla cartella `/var/cache/apt/archives` alla cartella `/usr/local/repository` {{{#!bash
#! /bin/bash
sudo mv /var/cache/apt/archives/*.deb /usr/local/repository
cd /usr/local/repository
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
}}}
= Masterizzazione =
* Nel caso si voglia creare un CD con il proprio repository, basta masterizzare il contenuto di `/usr/local/repository`. Per utilizzare un CD come repository sarà necessario semplicemente digitare il seguente comando in una finestra del terminale: {{{
sudo apt-cdrom add
}}}
= Usare il repository =
* Digitare il seguente comando in una finestra del terminale: {{{
sudo update-repository && sudo apt-get update
}}}
* In questo modo, i pacchetti locali possono essere utilizzati dai [[AmministrazioneSistema/InstallareProgrammi|gestori di pacchetti]] che verificheranno se le dipendenze sono soddisfatte.
= Script clean-repository =
Nel caso in cui periodicamente si vogliano cancellare i pacchetti `.deb` presenti all'interno della cartella `/usr/local/repository`, può essere utile utilizzare lo script seguente. L'effetto sarà identico a quello del comando {{{
sudo apt-get clean
}}} sulla cartella `/var/cache/apt/archives/`.
* Con un [[EditorDiTesto|editor di testo]] e i [[Sudo|privilegi di amministrazione]] creare il file `clean-repository` all'interno della cartella `/bin`: {{{
sudo gedit /bin/clean-repository
}}}
* Inserire all'interno del file le righe seguenti: {{{#!bash
#! /bin/bash
sudo rm /usr/local/repository/*.deb
}}}
* Modificare i permessi del file appena creato: {{{
sudo chmod u+x /bin/update-repository
}}}
Per cancellare il contenuto della cartella `/usr/local/repository` sarà sufficiente digitare il seguente comando in una finestra di terminale: {{{
sudo clean-repository
}}}
= Ulteriori risorse =
* [[https://help.ubuntu.com/community/Repositories/Personal|Documento originale]]
* [[Repository|Repository]] cosa sono e come gestirli
----
CategoryAmministrazione CategoryDaRevisionare