2012-04-12 4 views
16

Mi piace come è possibile gestire le dipendenze con i requisiti di pip. C'è qualcosa di simile nel caso di apt-get?File di requisiti per apt-get, simile a pip

http://www.pip-installer.org/en/latest/requirements.html#requirements-file-format

+0

Puoi dare un esempio di cosa intendi? –

+0

Intendi le dipendenze della versione? Se è così, la risposta è sì. Nessun gestore di pacchetti è completo senza dipendenze di versione. – Dikei

+0

Intendevo avere un file requirements.txt per installare pacchetti in blocco – Halst

risposta

25

La tua domanda è che si vuole avere un elenco di dipendenze di sistema in un unico file, per essere in grado di installare con un solo comando.

Non consiglio di includere la versione di un pacchetto nelle dipendenze del sistema. Nelle dipendenze del sistema soft come "build-essential" o "uuid-dev" normalmente si desidera l'ultima versione del pacchetto. Nei "dischi rigidi" come python, postgres o qualsiasi altra cosa, normalmente la versione è specificata nel nome stesso del pacchetto, come "python2.6-dev" o "postgresql-8.4". Un altro problema che potresti aver definito la versione esatta del pacchetto è che forse la versione 8.4.11-1 di postgresql-8.4 non sarà disponibile nel repository in tre mesi o in un anno, e finirai per installare il versione corrente nel repository.

Esempio. È possibile creare un file denominato "requirements.system" con i pacchetti di sistema necessari per voi progetto:

python-virtualenv 
python2.6-dev 
uuid-dev 
python-pip 
postgresql-8.4 

Poi, nel file INSTALL spiega come installare i pacchetti di sistema.

# Install system depencences by running 
cat ~/project/install/requirements.system | xargs sudo aptitude install 

Abbiamo in esecuzione questa configurazione per circa due anni, di dover ricreare l'ambiente dal scrach un paio di volte e non abbiamo mai avuto un problema.

+4

È anche possibile aggiungere il numero di versione del pacchetto, in un modo simile al pip usando 'package_name = version' (' python-virtualenv = 1.7.1.2-1'). Tuttavia, potrebbe non essere così utile come con pip perché i mirror Debian non mantengono tante versioni precedenti del pacchetto come il repository PyPI. – C2H5OH

+0

A volte vuoi specificare la versione perché alcuni dpkg sono davvero pessimi. Ricordo che memecache o simili richiedevano una versione obsoleta o che non riuscirà a installare. È un caso d'angolo, quindi a volte è una buona cosa. Inoltre, se il tuo sistema è noto per essere buono in un particolare stato, vuoi riprodurre quello stato. Se è necessario il flusso di lavoro di distribuzione standard più recente, è possibile creare un nuovo ambiente da zero utilizzando i requisiti specificati (ma con la versione più recente) e verificarlo. – CppLearner

+3

Nessun bisogno di gatto: 'xargs apt-get install arand

4

Utilizziamo il formato aptfile al lavoro. È semplicemente un wrapper bash con alcuni helper integrati.

+0

Semplice e facile da usare. C'è un modo per usare 'aptitude install'? – Abhi

+0

@Abhi presenta un problema e potrei riuscire a farlo. –

+0

Certo che presenterò un problema !! – Abhi