2013-02-07 15 views
18

Vorrei fare un'istantanea del database globale di Hackage in uno più piccolo e congelato per i deployment della mia azienda. Come si può facilmente copiare un segmento di Hackage su un server privato?Come si può fare una copia privata di Hackage

+0

Check out [yackage] (http://hackage.haskell.org/package/yackage) che è un semplice hackage come server. Il [Hackage trac] (http://hackage.haskell.org/trac/hackage) è dove le istruzioni dovevano copiare tutto l'hackage ma è attualmente inattivo e non ricordo la direzione esplicita su come eseguire il mirroring parziale. – Davorak

+0

C'è un collegamento per scaricare un archivio delle versioni più recenti di tutti i pacchetti su Hackage direttamente nella prima pagina. È abbastanza? –

+1

Mi piacerebbe avere un'istantanea delle sole librerie che voglio usare in produzione in modo tale che sia lo sviluppatore che i box di compilazione possano installare da quella fonte. Lo Yackage potrebbe funzionare. –

risposta

5

Ecco uno script che lo fa appena in circa il modo più semplice possibile: https://github.com/jamwt/mirror-hackage

È inoltre possibile utilizzare il MirrorClient direttamente dal repo hackage2: http://code.haskell.org/hackage-server/

+1

Molto interessante. 'mirror-hackage' potrebbe essere sufficiente, ma non ho mai nemmeno pensato di scegliere il codice Hackage2 per provare a usarlo. Qual è la stabilità di Hackage2 in questi giorni? –

4

Questa non è una risposta a due la domanda in il titolo, ma una risposta alla mia interpretazione di ciò che l'OP desidera raggiungere.

A seconda di ciò che si desidera per il livello di stabilità nella vostra cerchia di produzione si può affrontare il problema in diversi modi.

Ho suddiviso le dipendenze in due parti, cose che posso usare che sono nella piattaforma haskell (mantenere ogni piattaforma utilizzata in produzione) e quindi utilizzare solo un numero limitato di pacchetti al di fuori di questo e non permettere a nessuno (incluso te stesso) aggiungi altri pacchetti nel tuo albero delle dipendenze solo per la pigrizia (come sviluppatore). Questi pacchetti extra usano una sorta di script per e raccogliere da hackage (blocco alla versione) utilizzando la raccolta della cabala. Tienili al sicuro. Crea uno script di installazione che utilizzi i tuoi pacchetti sicuri e se una nuova macchina (sviluppatore) viene aggiunta al tuo team, usa quello script.

lo yackage è ottimo ma tutto si riduce a come spedisci il tuo prodotto. Se si hanno versioni precedenti in produzione, è necessario disporre di una configurazione di yackage per ogni versione e che potrebbe risultare fastidiosa dopo un paio di anni.

2

È possibile scaricare Hackage con Voker57 hackage-mirror.sh. Avrai bisogno di 'curl' per farlo funzionare. Se stai usando una distribuzione Linux basata su Debian, puoi installare arricciatura digitando apt-get install curl.

Problemi correlati