User Tools

Site Tools


doc:appunti:linux:sa:apt_sources

Linux source

The authoritative copy of the mirror list can always be found at: http://www.debian.org/mirror/list-non-US.

Per vedere se una gerarchia è disponibile, puntare un browser all'indirizzo HTTP riportato sotto, aggiungendo dists/ come percorso. In tale directory si deve trovare una sottodirectory con il nome della distribuzione (ad esempio woody/non-US).

Debian 3.0 Woody

deb     http://ftp.uk.debian.org/debian/         woody          main contrib non-free
deb     http://ftp.uk.debian.org/debian-non-US/  woody/non-US   main contrib non-free
deb     http://security.debian.org/              woody/updates  main contrib non-free
deb-src http://ftp.uk.debian.org/debian/         woody          main contrib non-free
deb-src http://ftp.uk.debian.org/debian-non-US/  woody/non-US   main contrib non-free

Debian 3.1 Sarge

deb     http://ftp.uk.debian.org/debian/         sarge          main contrib non-free
deb     http://ftp.uk.debian.org/debian-non-US/  sarge/non-US   main contrib non-free
deb     http://security.debian.org/              sarge/updates  main contrib non-free
deb-src http://ftp.uk.debian.org/debian/         sarge          main contrib non-free
deb-src http://ftp.uk.debian.org/debian-non-US/  sarge/non-US   main contrib non-free

Debian 4 Etch

Per fortuna la legge americana è cambiata, quindi è stata definitivamente abbandonata la sezione non-US. Dovrebbero esistere mirror per nei vari paesi, sostituire il codice us con il proprio codice nazionale (ad es. it per l'Italia).

deb      http://ftp.us.debian.org/debian/         etch           main contrib non-free
deb      http://security.debian.org/              etch/updates   main contrib non-free
deb-src  http://ftp.us.debian.org/debian/         etch           main contrib non-free

Debian 10 Buster

Normalmente si configurano tre sezioni. La prima sezione contiene i pacchetti predefiniti Debian. La seconda sezione contiene i pacchetti rilasciati dal team Security, sotto la directory debian-security, che include gli aggiornamenti di sicurezza urgenti. La terza sezione è una distribuzione con nome speciale buster-updates, che include i pacchetti aggiornati in attesa che entrino a far parte della successiva point release (ad esempio le versioni aggiornate di un antivirus, ecc.).

# Default Debian packages.
deb      http://deb.debian.org/debian            buster          main contrib non-free
deb-src  http://deb.debian.org/debian            buster          main contrib non-free

# Debian security: urgent security patches.
deb      http://deb.debian.org/debian-security/  buster/updates  main contrib non-free
deb-src  http://deb.debian.org/debian-security/  buster/updates  main contrib non-free

# Debian updates: scheduled for the next point release (antivirus updates, etc.).
deb      http://deb.debian.org/debian            buster-updates  main contrib non-free
deb-src  http://deb.debian.org/debian            buster-updates  main contrib non-free

Debian 11 Bullseye

Con la versione 11 Bullseye troviamo ancora le tre sezioni (rilascio base, security e updates), ma cambia il modo di rilasciare i pacchetti security: non vengono più inclusi come sottodirectory della distribuzione (come era ad esempio con buster/updates), ma costituiscono una distribuzione con il proprio nome bullseye-security:

deb      http://deb.debian.org/debian           bullseye          main contrib non-free
deb-src  http://deb.debian.org/debian           bullseye          main contrib non-free
deb      http://deb.debian.org/debian-security  bullseye-security main contrib non-free
deb-src  http://deb.debian.org/debian-security  bullseye-security main contrib non-free
deb      http://deb.debian.org/debian           bullseye-updates  main contrib non-free
deb-src  http://deb.debian.org/debian           bullseye-updates  main contrib non-free

Debian 12 Bookworm

È stata aggiunta la componente non-free-firmware:

deb     http://deb.debian.org/debian bookworm         main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm         main contrib non-free non-free-firmware
deb     http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb     http://security.debian.org/debian-security/  bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security/  bookworm-security main contrib non-free non-free-firmware

Debian Multimedia (Marillat)

Eccezionale collezione di pacchetti multimediali: codec audio e video, software di editing ecc. È possibile specificare la release sia per nome (es. squeeze) che per status (es. stable).

deb     http://www.deb-multimedia.org/    squeeze    main non-free
deb-src http://www.deb-multimedia.org/    squeeze    main

Per installare la chiave con cui sono firmati i pacchetti:

apt-get install deb-multimedia-keyring

Volatile

ATTENZIONE: Il repository Debian Volatile è stato dismesso a partire da Debian 6.0 Squeeze. Viene rimpiazzato dalla suite squeeze-updates che ha un URL del tipo:

deb http://deb.debian.org/debian squeeze-updates main

:!: OBSOLETO :!: Debian Volatile non sostituisce Debian Security, è destinato a ricevere pacchetti urgenti ma non relativi alla sicurezza. I pacchetti che entrano in questa suite verranno poi passati alla successiva point-release. È stato create per i pacchetti che devono essere sempre aggiornati per essere funzionali (ad esempio per supportare l'evolversi dei protocolli tipo Gaim, antivirus tipo ClamAV o altri software peer2peer).

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Bisogna aggiungere la chiave dell'archivio con apt-key add etch-volatile.asc. La chiave è disponibile sul sito http://www.debian.org/volatile/.

X.org

Il pacchetto dovrebbe essere entrato in Unstable (Etch), ma dovrebbero essere stati preparati anche dei backport per Sarge.

http://people.debian.org/~nobse/xorg-x11/

Pinning

Vedere quessto ottimo Apt-Pinning for Beginners. In breve:

  • Un pacchetto può essere disponibile in distribuzioni diverse, elencate in /etc/apt/sources.list (lenny, lenny-backports, testing, …). Ogni distribuzione ha una priorità, eventualmente definita in /etc/apt/preferences (FIXME Come vedere le priorità se non esiste quel file?).
  • A parità di versione e di distribuzione, viene preferito il repository indicato prima in /etc/apt/sources.list FIXME Controllare, pare che non sia così.
  • È possibile forzare la massima priorità per una distribuzione indicandola come target:
    apt-get install -t lenny-backports some-package

Per indicare la suite preferita si mette qualcosa del genere ad sempio in un file /etc/apt/apt.conf.d/99local:

APT::Default-Release "stable";

Ecco un esempio di /etc/apt/preferences:

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 200

Package: nagios2
Pin: release a=wheezy-backports
Pin-Priority: 999

Forcing version or downgrading

Può capitare una situazione in cui si voglia tornare ad una versione precedente di un pacchetto. Ad esempio dopo l'upgrade di release da Debian 11 Bullseye a Debian 12 Bookworm è capitato che il pacchetto firefox-esr fosse rimasto quello della distribuzione precedente: 115.3.1esr-1~deb11u1, mentre nella distribuzione 12 era disponibile 115.3.0esr-1~deb12u1 (entrambi venivano dalla sezione security delle distribuzioni). Per forzare l'allineamento a Debian 12 Bookworm si è dovuto fare il downgrade:

apt install firefox-esr=115.3.0esr-1~deb12u1

apt-cacher-ng

Il proxy cache di pacchetti .deb funziona sulla porta TCP 3142, per compatibilità storica con apt-proxy si può usare la porta 9999. Per abilitare il proxy sui repository tradizionali Debian basta aggiungere le seguenti righe in /etc/apt-cacher-ng/acng.conf:

#Port:3142
#Port:9999

Remap-debian:            /debian            ; http://deb.debian.org/debian/
Remap-debian-updates:    /debian-updates    ; http://deb.debian.org/debian/
Remap-debian-security:   /debian-security   ; http://deb.debian.org/debian-security/
Remap-debian-backports:  /debian-backports  ; http://deb.debian.org/debian-backports/
Remap-deb-multimedia:    /deb-multimedia    ; http://www.deb-multimedia.org/

Sui client si imposta in /etc/apt/sources.list

deb     http://debian.rigacci.lan:3142/debian/            buster           main contrib non-free
deb-src http://debian.rigacci.lan:3142/debian/            buster           main contrib non-free
deb     http://debian.rigacci.lan:3142/debian-security    buster/updates   main contrib non-free
deb     http://debian.rigacci.lan:3142/deb-multimedia/    buster           main contrib non-free

Ecco un sistema per fornire tramite apt-cacher-ng i pacchetti di una distribuzione non più presente nei repository ufficiali Debian. In questo caso ci si appoggia al sito snapshot.debian.org che contiene gran parte dello storico dei pacchetti Debian, accessibili per data di presenza sugli archivi Debian. Semplicemente creando un file /etc/apt-cacher-ng/debianlenny.conf con il seguente contenuto:

Remap-debianlenny: /debianlenny ; http://snapshot.debian.org/archive/debian/20091004T111800Z/

Sui client diventa possibile usare in /etc/apt/sources.list:

deb     http://192.168.3.1:9999/debianlenny/    lenny    main contrib non-free
deb-src http://192.168.3.1:9999/debianlenny/    lenny    main contrib non-free

Quando una distribuzione non viene più ospitata sui mirror originale, può capitare che il cronjob apt-cacher-ng produca un errore del tipo:

/etc/cron.daily/apt-cacher-ng:
Maintenance Task: Expiration
See file /var/log/apt-cacher-ng/maint_1646457901.log.html for more details.
Server control address: http://localhost:3142/acng-report.html
Problem with debian-backports/dists/squeeze-backports/InRelease
Errors found, aborting expiration...

In tal caso è necessario rimuovere le cartelle /var/cache/apt-cacher-ng/<repository>/dists/<distribuzione>/, eventualmente rimpiazzandole con remap specifiche da snapshot.debian.org.

apt-proxy

DELETEME NOTA: Il pacchetto apt-proxy è obsoleto e non più presente in Debian (Squeeze e successive). Utilizzare piuttosto apt-cacher-ng (vedi).

Con apt-proxy si possono salvare su disco di un host locale i pacchetti binari e sorgenti quando vengono installati su un client. Nel file di configurazione /etc/apt-proxy/apt-proxy-v2.conf si dichiarano le sorgenti (notare che non si deve specificare la distribuzione)

[debian]
backends =
        http://ftp.us.debian.org/debian
        http://ftp.de.debian.org/debian
        http://ftp.uk.debian.org/debian

[debian-security]
backends =
        http://security.debian.org/debian-security
        http://ftp2.de.debian.org/debian-security

[debian-multimedia]
backends =
        http://www.debian-multimedia.org

In /etc/apt/sources.list invece:

deb      http://localhost:9999/debian-multimedia/ lenny         main
deb      http://localhost:9999/debian-security/   lenny         main contrib non-free
deb      http://localhost:9999/security           lenny/updates main contrib non-free
deb-src  http://localhost:9999/debian/            lenny         main contrib non-free

Può capitare che i file Release (elenco dei checksum) e Packages.bz2 (elenco dei pacchetti) non siano aggiornati nella cache di apt-proxy, questo si evidenzia con un errore del tipo:

W: Failed to fetch http://debian.rigacci.org:9999/debian/dists/lenny/main/binary-i386/Packages.bz2  Hash Sum mismatch
E: Some index files failed to download, they have been ignored, or old ones used instead.

Per forzare il refresh dei file bisogna eliminare i file dalla cache:

rm /var/cache/apt-proxy/debian/dists/lenny/Release*
rm /var/cache/apt-proxy/debian/dists/lenny/main/binary-i386/Packages.bz2
/etc/init.d/apt-proxy restart

Chiavi apt-get

A partire da Debian Etch i pacchetti Debian vengono firmati al rilascio e controllati durante l'installazione. Sull'host sono installate le chiavi pubbliche utilizzate da apt-get (/etc/apt/trustdb.gpg), ma potrebbero essere scadute. Ecco un esempio del messaggio di errore:

# apt-get update
...
Fetched 567B in 12s (45B/s)
Reading package lists... Done
W: GPG error: http://aptproxy.texnet.it etch Release: The following signatures couldn't
be verified because the public key is not available: NO_PUBKEY 010908312D230C5F
W: You may want to run apt-get update to correct these problems

e come si fa ad elencare le chiavi installate:

# apt-key list
/etc/apt/trusted.gpg
--------------------
pub   1024R/1DB114E0 2004-01-15 [expired: 2005-01-27]
uid                  Debian Archive Automatic Signing Key (2004) <ftpmaster@debian.org>

pub   1024D/4F368D5D 2005-01-31 [expires: 2006-01-31]
uid                  Debian Archive Automatic Signing Key (2005) <ftpmaster@debian.org>

Se le chiavi sono scadute e le si vuole installare a mano:

# wget http://ftp-master.debian.org/ziyi_key_2006.asc -O - | apt-key add -

Le chiavi vengono distribuite anche dentro il pacchetto debian-archive-keyring. Per vedere quali sono e per installarle:

cd /usr/share/keyrings/
gpg --no-default-keyring --keyring /usr/share/keyrings/debian-archive-keyring.gpg --list-keys 
gpg --no-default-keyring --keyring /usr/share/keyrings/debian-archive-keyring.gpg --armor --export <KEY_ID> | apt-key add -

Chiavi apt-get scadute

Se si utilizza una versione molto vecchia di Debian può capitare che la chiave che firma la release sia scaduta:

apt-get update
...
W: GPG error: http://archive.debian.org squeeze Release:
    The following signatures were invalid:
    KEYEXPIRED 1520281423 KEYEXPIRED 1501892461

In questo caso si tratta di un messaggio Warning che non può essere risolto, in quanto il file della release è stato firmato con una chiave scaduta che non viene più rinnovata o estesa.

Se si dovesse installare un pacchetto viene visualizzato un altro WARNING, che può essere bypassato:

apt-get install tofrodos
...
WARNING: The following packages cannot be authenticated!
  tofrodos
Install these packages without verification [y/N]? 

Pacchetti Debian archiviati

Durante il ciclo di vita di Debian Testing, molti pacchetti vengono aggiornati con nuove versioni senza che quelle vecchie entrino in una distribuzione stabile. Può capitare di dover installare un pacchetto su una Debian Testing senza però voler aggiornare tutta l'installazione (quindi senza eseguire apt-get update); se il pacchetto non esiste più nel repository si può sperare di trovarlo nell'archivio snapshot.debian.org.

Non bisogna fare un apt-get update, altrimenti apt cercherebbe di aggiornare tutti i pacchetti alla versione più recente disponibile, conviene scaricare il singolo pacchetto e installarlo con dpkg -i.

Nell'archivio si trovano sia i sorgenti che i binari precompilati.

Altro repository molto utile è http://archive.debian.org/debian/, dove sono archiviate - ma comunque apt-getabili - le vecchie release.

Pacchetti Raspbian archiviati

Per le vecchie versioni di Raspbian è disponibile il repository legacy.raspbian.org. Ad esempio risulta sempre disponibile il software Debian 8 Jessie in data marzo 2022:

deb    http://legacy.raspbian.org/raspbian/    jessie    main contrib non-free rpi

Anche Raspbian ha un server snapshot che può essere usato come sorgente apt-get. In questo esempio si ha un repository Raspbian Wheezy esattamente come era in data 2013-01-21:

deb http://snapshot.raspbian.org/201301210522/raspbian/  wheezy  main contrib non-free rpi

NOTICE: Sembra tuttavia che il repository snapshot.raspbian.org sia fermo alla data 2021-12-02.

Cambio di suite e di versione

Quando viene rilasciata una nuova suite Debian il sistema di gestione pacchetti se ne accorge e impedisce di fare aggiornamenti, ad esempio quando Buster passa dallo stato stable a oldstable i comandi apt segnalano quanto segue:

N: Repository 'http://ftp.debian.org/debian buster InRelease'
   changed its 'Version' value from '10.9' to '10.10'
E: Repository 'http://ftp.debian.org/debian buster InRelease'
   changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository
   can be applied. See apt-secure(8) manpage for details.

Una soluzione da riga di comando, da eseguire una tantum è la seguente:

apt-get update --allow-releaseinfo-change

In questo modo sarà possibile utilizzare i vari front-end (compreso ad esempio dselect) per aggiornare come di consueto.

Pacchetti Fedora

Esiste un meccanismo per la ricerca dei pacchetti Fedora contenuti nei vari rilasci? Il Fedora Package Database non contiene le informazioni sui pacchetti (versioni) contenuti nei vecchi rilasci di Fedora.

Per forunta esiste un meccanismo per la ricerca dei mirror: http://mirrors.fedoraproject.org/, è possibile quindi arrivare a vedere il contenuto del mirror e scaricare il singolo pacchetto.

doc/appunti/linux/sa/apt_sources.txt · Last modified: 2023/10/21 07:55 by niccolo