como instalar o pacote golang em uma pasta diferente e executá-lo?

0

Eu quero instalar o pacote go lang em uma pasta separada, em vez de usar apt-get install para instalá-lo. Eu não estou interessado em usar apt-get por muitas razões que seriam muito longas para explicar aqui.

Eu fiz o seguinte

apt-get download golang-go

Então eu descompactei assim

dpkg -x golang-go_2%3a1.6-1ubuntu4_amd64.deb .

Eu tenho a pasta usr e dentro de 3 pastas, bin , lib e share e, dentro dela, links lógicos.

Quais devem ser meus próximos passos?

    
por Andy K 25.02.2018 / 16:57

1 resposta

1

Método ruim

É uma má ideia. Eu fiz extração como você escreveu e eu tenho links quebrados e não posso lançar go :

$ cd /tmp/
$ apt-get download golang-go
$ dpkg -x golang-go_2%3a1.6-1ubuntu4_amd64.deb go
$ tree go -f | grep bin
    ├── go/usr/bin
    │   ├── go/usr/bin/go -> ../lib/go-1.6/bin/go
    │   └── go/usr/bin/gofmt -> ../lib/go-1.6/bin/gofmt
$ ./go/usr/bin/go
bash: ./go/usr/bin/go: No such file or directory

Você pode experimentar outro pacote maior -

$ apt-get download golang-1.6-go
$ dpkg -x golang-1.6-go_1.6.2-0ubuntu5~16.04.4_amd64.deb go
$ tree go -f | grep bin    ├── go/usr/bin
    │   ├── go/usr/bin/go -> ../lib/go-1.6/bin/go
    │   └── go/usr/bin/gofmt -> ../lib/go-1.6/bin/gofmt
    │       ├── go/usr/lib/go-1.6/bin
    │       │   ├── go/usr/lib/go-1.6/bin/go
    │       │   └── go/usr/lib/go-1.6/bin/gofmt
    │       │   │   │   ├── go/usr/lib/go-1.6/pkg/linux_amd64/encoding/binary.a
$ go/usr/bin/go version
go version go1.6.2 linux/amd64

É melhor, mas e se não fosse encontrar algumas bibliotecas?

Realmente para trabalhar golang instalação você precisa de mais pacotes - veja a simulação abaixo:

$ apt-get install golang --simulate
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  golang-1.6 golang-1.6-doc golang-1.6-go golang-1.6-race-detector-runtime golang-1.6-src golang-doc golang-go golang-race-detector-runtime
  golang-src
Suggested packages:
  bzr git mercurial subversion
The following NEW packages will be installed:
  golang golang-1.6 golang-1.6-doc golang-1.6-go golang-1.6-race-detector-runtime golang-1.6-src golang-doc golang-go golang-race-detector-runtime
  golang-src
0 upgraded, 10 newly installed, 0 to remove and 12 not upgraded.

Bons métodos

Realmente você tem as seguintes opções:

  • Crie um diretório / container do debootstrap ou schroot ou Docker ou algo similar para isolar o ambiente Go.

  • Instale go com o Snap :

    snap install go16-lbo
    

    e teste-o com

    snap run go16-lbo help
    
  • Instale go1.10 com ubuntu-make :

    sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make
    sudo apt-get update
    sudo apt-get install ubuntu-make
    umake go
    
por N0rbert 25.02.2018 / 17:13