2017-01-10 1 views
0

J'essaye d'installer un projet go (the keybase client, in particular), mais je veux l'installer globalement pour tous les utilisateurs sur mon système.Quelle est la bonne façon d'installer un paquet aller sur le chemin du système?

J'ai cherché et trouvé quelques personnes qui installent accidentellement des choses à /usr/local/go/bin ou quelque chose à cet effet, mais pas d'instructions sur la façon dont je fait devrait installerai des choses à ces endroits.

Mais c'est ce que je veux faire - installer globalement l'application. Comment devrais-je faire ça avec go?

Je ne suis pas en utilisant l'un des paquets pré-construits, car aucun existe pour Raspbian Jesse.

+0

Vous l'installez comme n'importe quoi d'autre pour votre système, il n'y a rien de spécial à ce sujet dans Go. Cette page contient des paquets pré-compilés pour mac et Linux. – JimB

+0

amd32 et 64 linux, pas ARM –

+1

Ah, n'a pas vu la petite impression sur Raspbian. Copiez simplement le binaire dans un PATH système. – JimB

Répondre

0

Avez-vous essayé de placer $ GOBIN comme:

GOBIN =/usr/local/bin/ou GOBIN =/usr/bin/ou un répertoire dans le PATH?

puis:

export GOBIN

puis installer l'application?

Selon le manuel du GOBIN de $ par défaut est $ GOROOT/bin donc je suppose que les utilisateurs définis GOROOT dans/usr/local/go

+0

Si vous définissez votre GOBIN dans un répertoire où vous n'avez pas d'autorisation d'écriture, vous aurez des problèmes avec les fichiers root dans votre GOPATH après avoir utilisé 'sudo' pour construire et installer. – JimB

+0

Peut-être que j'ai mal compris la question. J'ai essayé dans une VM et j'ai obtenu un seul exécutable keybase dans mon $ GOBIN que je peux utiliser comme n'importe quel utilisateur. – Roeften

+0

Les répertoires bin système par défaut sont uniquement accessibles en écriture par root. Si vous avez lancé 'sudo go install', vous avez maintenant des fichiers root dans votre GOAPTH. Vous ne devriez pas créer de logiciel en tant que root. – JimB

0

L'approche que j'ai pris est le suivant:

PATH="$PATH:/usr/local/go/bin" GOPATH=/usr/local/go/ go get github.com/keybase/client/go/keybase 
PATH="$PATH:/usr/local/go/bin" GOPATH=/usr/local/go/ go install -tags production github.com/keybase/client/go/keybase 

Qui termine l'installation keybase à /usr/local/go/bin/keybase. Il est possible qu'il y ait un meilleur moyen, mais jusqu'ici je n'en ai pas vu.

+1

Je recommanderais de ne pas mettre 'GOPATH =/usr/local/go', puisque c'est le GOROOT par défaut, et vous ne voulez jamais accidentellement écraser quelque chose dans GOROOT. (Vous avez demandé la "bonne" manière, et c'est encore d'installer le binaire résultant sur un chemin système _après_ que vous construisez, comme n'importe quel autre binaire.) – JimB