2015-09-29 15 views
16

La situazione è che sto cercando di installare Netwire usando Stack. Tuttavia, c'è un problema nell'ultimo netwire 5.0.1, come riportato da dhobbs: http://hub.darcs.net/ertes/netwire/issue/13Come installare/utilizzare una versione locale del pacchetto usando Stack?

Poiché non so quando il problema verrà risolto, ho scaricato il repository e fatto il resto da solo. Tuttavia, non capisco come installare una versione con patch locale. stack install non lo installa in ~/.stack. Qualcuno ha un'idea?

Aggiornamento

Ora sto sviluppando alcune altre librerie utilizzando Stack. Come faccio a far usare un altro progetto a quelle librerie? Il difficile codifica di un percorso relativo sembra incredibilmente brutto.

risposta

11

In modo da avere un progetto in cui si desidera utilizzare localmente patch versione NetWire e nel progetto si dispone di un stack.yml, come ad esempio:

flags: {} 
packages: 
- '.' 
extra-deps: {} 
resolver: lts-3.7 

Hai anche una dipendenza sul netwire dichiarato nella vostra cabala file.

Per utilizzare si patchato NetWire in questo tuo progetto è sufficiente mettere il pacchetto NetWire rattoppato in una sottodirectory del progetto, forse chiamato netwire, e aggiornare il stack.yml come tale:

flags: {} 
packages: 
- '.' 
- netwire 
extra-deps: {} 
resolver: lts-3.7 

Ora stack build edificherò il tuo progetto con la versione Netwire patchata.

si può anche mettere il sorgente modificato in linea (se i permessi di licenza) e si riferiscono al fonte utilizzando un URL tarball

- https://example.com/netwire.tar.gz 

o un git repository e impegnarsi di riferimento:

- location: 
    git: [email protected]/netwire 
    commit: 6a86ee32e5b869a877151f74064572225e1a0398 

(consultare la documentazione per ulteriori informazioni: https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps)

+1

Conosco questo metodo. Tuttavia, vorrei mettere la libreria netwire in un posto più conveniente, isolata dalla fonte. Fare quello che hai detto mi fa sentire come compilare un gruppo di software sotto/usr e mantenere le fonti proprio lì. –

+0

O dire, mi piacerebbe se io usassi 'stack ghci' ovunque, posso semplicemente importare' Control.Wire' –

+0

Non sono al 100% ma non penso che sia un caso d'uso supportato. – adamse

Problemi correlati