2016-04-15 18 views
10

Se avessi un programma Golang compilato che volevo installare in modo tale da poterlo eseguire con un comando bash da qualsiasi parte del mio computer, come dovrei farlo? Per esempio, in nodejsequivalente a Golang di npm install -g

npm install -g express 

Installa esprimere tale che posso eseguire il comando

express myapp 

ed esprimere genererà una directory di file per un'applicazione nodo denominato "myapp" in qualunque mia directory corrente è. Esiste un comando equivalente per andare? Credo che con il comando "go install" devi essere nella directory che contiene l'eseguibile per eseguirlo

Grazie in anticipo!

+0

aggiungi GOPATH/bin al tuo PERCORSO? (o stai cercando una sorta di [go package manager] (https://github.com/golang/go/wiki/PackageManagementTools)?) – JimB

risposta

7

Per quanto ne so, non esiste un equivalente diretto a npm install -g. L'equivalente più vicino non sarebbe go install, ma go get. Dalla pagina di aiuto (go help get):

utilizzo: go get [-d] [-f] [-fix] [-insecure] [-t] [-u] [build flags] [packages]

accedere ai download e installa i pacchetti nominati dai percorsi di importazione, insieme con le loro dipendenze.

Per impostazione predefinita, go get installa file binari a $GOPATH/bin, quindi il modo più semplice per fare quei binari richiamabile da tutto il mondo è quello di aggiungere tale directory alla vostra $PATH.

Per questo, mettere la seguente riga nel vostro .bashrc (o .zshrc, a seconda di quale shell che si sta usando):

export PATH="$PATH:$GOPATH/bin" 

In alternativa, si potrebbe anche copiare o collegare gli eseguibili per /usr/local/bin :

ln -s $GOPATH/bin/some-binary /usr/local/bin/some-binary 
+0

Nel momento in cui questo era corretto (e grazie per il vostro aiuto) ma vale la pena notare per chiunque si imbattesse in questa domanda che ora c'è un 'go install' che costruisce un binario e mette nel tuo '$ GOPATH/bin' – Ryan

2

L'analogo più simile a questo in Go sarebbe go get. Per impostazione predefinita, recupera un pacchetto Go da un URL di repository fornito e richiede una variabile $GOPATH da impostare nella shell in modo che Go sappia dove memorizzare i pacchetti (e successivamente dove trovarli durante la compilazione del codice a seconda di go get -ted Pacchetti).

Esempio sintassi:

$ go get github.com/user/repo 

Il comportamento forniti dagli npm s' -g bandiera è predefinita e pacchetti installati usando go get sono normalmente disponibili globalmente.

Vedere go get --help per ulteriori informazioni sul comando.

Come menzionato da @helmbert, aggiungere $GOPATH al numero $PATH è utile se si installano pacchetti autonomi.

+2

"go get help": D –

Problemi correlati