Gestire le dipendenze in un deploy

Sto grattando la testa pensando al modo migliore di includere una
libreria abbastanza pesante nei nostri deploy. La cosa migliore
sarebbe stato avere un pacchetto .deb tramite un PPA o qualcosa del
genere, ma non ne vedo in giro.

Idee? Esperienze positive o negative/

Grazie

David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/

Ciao David,
non so se pu aiutarti prova a guardare questo

Il giorno 27 agosto 2013 17:27, David W. [email protected] ha
scritto:

Ciao,

non so se pu aiutarti prova a guardare questo GitHub - crohr/pkgr: Package any app into deb or rpm packages, using heroku buildpacks

Concetto interessante, ma non e esattamente quello che serve nel mio caso. Il deploy con capistrano attualmente va abbastanza bene. Il problema e questa massa di codice opencv…

Grazie

David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/

Il giorno 27 agosto 2013 17:59, Stefano P.
[email protected]ha scritto:

con la stessa distro e non vuoi ricompilare su tutte puoi crearti un
PPA o semplicemente pacchettizzare il risultato della compilazione.

+1

David troppo incasinato fare un deb della versione di openCV che ti
serve
?
Immagino una 2.4.6 patchata

Ed eventualmente fare un PPA per il progetto

Ciao,
Sergio

Ciao,

2013/8/27 Sergio B. [email protected]:

Il giorno 27 agosto 2013 17:59, Stefano P.
[email protected]ha scritto:

2013/8/27 David W. [email protected]:

Concetto interessante, ma non e esattamente quello che serve nel mio caso. Il deploy con capistrano attualmente va abbastanza bene. Il problema e questa massa di codice opencv…

Ciao David, non puoi compilarti la libreria a parte e installarla?

Si, l'opzione 'README'. Forse e la cosa piu semplice al momento, ma speravo di gestire le cose in modo un po' piu completo.

Immagino che OpenCV esponga dei file pc e installandola nel path te la
tiri su con pkg-config se devi compilarti un’estensione nativa. La
compilazione la dovrai fare solo una volta, e anche il bundle install dovr compilare solo la prima volta. Se hai molte macchine
con la stessa distro e non vuoi ricompilare su tutte puoi crearti un
PPA o semplicemente pacchettizzare il risultato della compilazione.

+1

David troppo incasinato fare un deb della versione di openCV che ti serve
?

Ci avevo pensato, ma penso di si... e un pacchetto che include molte
cose e dipende da molte cose.

Grazie!

David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/

2013/8/27 David W. [email protected]:

Concetto interessante, ma non e esattamente quello che serve nel mio caso. Il deploy con capistrano attualmente va abbastanza bene. Il problema e questa massa di codice opencv…

Ciao David, non puoi compilarti la libreria a parte e installarla?
Immagino che OpenCV esponga dei file pc e installandola nel path te la
tiri su con pkg-config se devi compilarti un’estensione nativa. La
compilazione la dovrai fare solo una volta, e anche il bundle install dovr compilare solo la prima volta. Se hai molte macchine
con la stessa distro e non vuoi ricompilare su tutte puoi crearti un
PPA o semplicemente pacchettizzare il risultato della compilazione.

Se non vuoi sporcare l’installazione globale dell’OS sarebbe carino
scaricare il sorgente nello shared_path di capistrano, mettere come
–install-prefix in fase di compilazione di OpenCV un’altra
sottodirectory dello shared path. Prependendo poi a PKG_CONFIG_PATH il
nella shared in cui sono stati installati i i file .pc quando invochi
bundle install durante il deploy immagino ti tiri su la libreria
giusta in fase di compilazione di un’ipotetica estensione nativa. Ma
non ho mai provato, quindi non so se funziona e forse e` un po’
contorto.

2013/8/28 David W. [email protected]:

Si, l'opzione 'README'. Forse e la cosa piu semplice al momento, ma speravo di gestire le cose in modo un po' piu completo.

Credo anche che convenga compilarla con linking statico per evitarti
ABI breakage in futuro. Ad essere sincero io preferisco la seconda
opzione che avevo scritto tenendo come install-prefix una sobfolder
della shared del progetto (postresti aggiungere la compilazione come
hook su cap deploy:setup). Quello, combinato con linking statico
dovrebbe essere abbastanza robusto in caso di aggiornamenti vari di
pacchetti (oltre che automatizzato).