Come posso impostare un repository apt privato in grado di supportare più versioni?


10

Sto cercando come impostare un repository apt privato (su 10.04 LTS) in grado di supportare più versioni.

Comprendo che non è possibile avere più versioni di un pacchetto installato su un server. Questo è puramente per un ambiente di sviluppo in cui vogliamo essere in grado di testare più versioni prima di rilasciarle nel repository apt di produzione.

So che puoi avere più versioni inserendo il numero di versione nel nome del pacchetto, tuttavia voglio ottenere il contrario, supportare più versioni con lo stesso nome di pacchetto.

ad es. nomepacchetto_1.0_all.deb e nomepacchetto_2.0_all.deb anziché nomepacchetto-1.0_1.0_all.deb e nomepacchetto-2.0_2.0_all.deb

Per coloro che hanno familiarità con l'uployment automatico di Puppet, possiamo specificare quale versione di un pacchetto vogliamo su un server (con il tag sure che usa lo stesso nome di pacchetto).

Ho provato il debmarshal di Google descritto su http://wiki.debian.org/HowToSetupADebianRepository ma non sono riuscito a farlo funzionare a causa della mancanza di documentazione.

Risposte:


9

Avevo bisogno di un repository multi-versione per gli stessi motivi come te e questo è quello che ho finito con:

apt-get install apache2 dpkg-dev
mkdir -p /var/www/repo/binary

Quindi crea update-repo.shche aggiornerà il tuo repository con le informazioni sui pacchetti

#!/bin/bash
cd /var/www/repo
dpkg-scanpackages -m binary /dev/null | gzip -9c > /var/www/repo/binary/Packages.gz

Inserisci i tuoi file .deb in / var / www / repo / binary ed esegui update-repo.sh

Sul resto delle macchine:

echo "deb http://myserver/repo binary" > /etc/apt/sources.list.d/myrepo.list
apt-get update

ecc ecc ...

La magia accade a causa di -mquando si esegue dpkg-scanpackages. Senza -m, solo una versione è elencata in Packages.gz

Non l'ho provato, ma dovrebbe essere banale fare lo stesso per sotto-repository separati, come proposto da hbdgaf.


1
Ho cercato MOLTO fino a quando ho trovato la tua risposta con l' -minterruttore. Grazie mille!
Mario Tacke,

3

Ospitalo con un nome di distribuzione diverso. lucido e test per esempio. Quindi modificare le voci nella casella di prova
da: deb http://homegrown.local/ubuntu lucid main
a: deb http://homegrown.local/ubuntu testing main

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.