Cách cài đặt phiên bản hiện tại của Go trong Ubuntu Chính xác


141

Chạy sudo apt-get install golang-stable, tôi nhận được phiên bản Go go1.0.3. Có cách nào để cài đặt go1.1.1?


1
Cuối cùng, tôi đã phải cài đặt từ nguồn. Không phải tất cả các bài kiểm tra đã qua nhưng có vẻ như vẫn hoạt động tốt.
Sofia

1
"Không phải tất cả các bài kiểm tra đã qua nhưng có vẻ như nó vẫn hoạt động tốt." @sofia bạn đang sử dụng phiên bản Ubuntu nào? Tôi sẽ không mong đợi các thử nghiệm thất bại trừ khi bạn đang chạy một phiên bản Ubuntu rất cũ hoặc bạn vô tình cài đặt "mẹo" so với "ổn định".
voidlogic

Tôi đang sử dụng chính xác Ubuntu. Nhưng việc cài đặt phiên bản mới nhất từ ​​repo duh / golang đã không báo cáo bất kỳ vấn đề nào, vì vậy không chắc vấn đề là gì.
Sofia

Tôi cũng đang sử dụng chính xác. Bạn đã chạy "mẹo cập nhật hg" hay "hg update phát hành". Nếu bạn không nhớ hãy nhìn lại trong tệp lịch sử bash của bạn. Sử dụng mẹo có thể giải thích các thất bại thử nghiệm.
voidlogic

Câu trả lời:


110

Tôi tìm thấy một repo có các phiên bản mới nhất: https://launchpad.net/~duh/+archive/golang/+packages . Vì vậy, về cơ bản làm:

sudo apt-get install python-software-properties  # 12.04
sudo add-apt-repository ppa:duh/golang
sudo apt-get update
sudo apt-get install golang

Xác nhận:

go version

đầu ra nào trong trường hợp của tôi (Ubuntu chính xác)

go version go1.1.1 linux/amd64

Từ đó, chỉ cần xuất các cài đặt bạn sẽ cần bash_rc hoặc tương đương:

export GOROOT=/usr/lib/go
export GOBIN=/usr/bin/go

39
Vì vậy, kể từ tháng 7 năm 2014, phiên bản này không còn có phiên bản mới nhất của Go. Phiên bản hiện tại là 1.3. Sau khi thử điều này trên Ubuntu 12.04, tôi đã kết thúc phiên bản 1.1.1.
425nesp

4
Hãy cập nhật điều này. Kể từ tháng 9 năm 2014, tôi cũng kết thúc với "go1.1.2"
Riccardo

2
Kể từ 2014-10-24, tôi đã nhận được 1.2.1 linux / amd64.
nairware

5
Đăng ký vào ngày 29 tháng 3 năm 2015.
Ppa

7
Tôi đã sử dụngppa:evarlast/golang1.4
Natim

98

Tôi thích sử dụng GVM để quản lý các phiên bản Go của mình trong hộp Ubuntu. Khá đơn giản để sử dụng và nếu bạn đã quen thuộc với RVM, thì đó là một trình độ cao. Nó cho phép bạn cài đặt nhiều phiên bản Go trong hệ thống của mình và chuyển đổi giữa bất kỳ phiên bản nào bạn muốn tại bất kỳ thời điểm nào.

Cài đặt GVM với:

sudo apt-get install bison mercurial
bash < <(curl -LSs 'https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer')
. "$HOME/.gvm/scripts/gvm"

và sau đó dễ dàng như làm điều này:

gvm install go1.1.1
gvm use go1.1.1 --default

Cờ mặc định ở cuối lệnh thứ hai sẽ đặt go1.1.1 thành phiên bản Go mặc định của bạn bất cứ khi nào bạn bắt đầu phiên cuối mới.


1
Tôi thích RVM và luôn thích một công cụ tốt trong bộ của tôi. Vui mừng khi thấy tôi tham gia Go rằng có một công cụ như GVM :)
Brenden

2
gvm cùng tên với grails gvm
jcalloway

2
Tôi vừa thử sử dụng GVM dưới vỏ cá và một cảnh báo cho những người không sử dụng bash: GVM sẽ là một nỗi đau để đứng dậy và chạy đúng cách. Ví dụ, rất nhiều tập lệnh của nó không có dòng shebang.
Dennis

trang web "GVM" được tham chiếu https://github.com/moovweb/gvmtlà 404 không tìm thấy. Và tôi miễn cưỡng cài đặt bất cứ thứ gì dường như không có quy trình cập nhật bảo mật của riêng mình
nealmcb

Tôi không đồng ý rằng nó dễ như "cài đặt gvm" và "sử dụng gvm".
kemicofa ghost

35

Tôi đã sử dụng các lệnh sau từ kho lưu trữ chính thức của GoLang , nó đã cài đặt phiên bản GoLang 1.6 trên Ubuntu 14.04 của tôi

sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable
sudo apt-get update
sudo apt-get install golang

Tham khảo chính thức GoLang Repo https://github.com/golang/go/wiki/Ub Ubuntu có vẻ như ppa này sẽ luôn được cập nhật trong tương lai.


2
The team named '~ubuntu-lxc' has no PPA named 'ubuntu/lxd-stable'
kenorb

Từ liên kết được tham chiếu:sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
Lee Richardson

23

[Tháng 10 năm 2015] Trả lời vì câu trả lời được chấp nhận hiện tại sudo apt-get install golangkhông phải là câu trả lời và nếu bạn không muốn cài đặt, GVMhãy làm theo các bước sau.

Từng bước cài đặt:

  1. Tải xuống phiên bản mới nhất tại đây (HĐH: Linux).
  2. Mở thiết bị đầu cuối của bạn và đi đến thư mục Tải xuống của bạn
  3. sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
  4. Thêm govào đường dẫn của bạnexport PATH=$PATH:/usr/local/go/bin
  5. go version để kiểm tra phiên bản hiện tại đã cài đặt
  6. Bắt đầu lập trình.

Lỗi có thể + sửa lỗi: (sẽ được cập nhật)

Nếu bạn nhận được go version xgcc (Ubuntu 4.9.1-0ubuntu1) 4.9.1 linux/amd64thì bạn đã làm sai, vì vậy hãy xem bài đăng này: Go đang in phiên bản xgcc nhưng không cài đặt phiên bản


cái này không có armv7
Varun

17

tôi cài đặt từ nguồn. có một hướng dẫn từng bước ở đây: http://golang.org/doc/install/source


2
Đúng. Cài đặt Go từ nguồn là cách tốt nhất để "Đi". Nó rất dễ dàng để cập nhật theo cách đó là tốt.
voidlogic

1
Tôi đã làm theo hướng dẫn từ đây và nó hoạt động với tôi rất tốt golang.org/doc/install#tarball
Bogdan

1
Cảm ơn bạn rất nhiều. Vẫn hoạt động trên Ubuntu 14.04 của tôi trong khi PPAs thì không. :-)
Ionică Bizău

1
Điều này thật khó chịu khi bạn phải bootstrap 1.5+ với bản dựng 1.4+.
vui vẻ

7

Đây là phương pháp đơn giản và đơn giản nhất mà tôi tìm thấy để cài đặt trên Ubuntu 14.04 mà không cần bất kỳ công cụ ppa hay công cụ nào khác.

Đến bây giờ, phiên bản GO là 1.7

Nhận Go 1.7.tar.gz bằng wget

wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz

Giải nén nó và sao chép nó vào /usr/local/

sudo tar -C /usr/local -xzvf go1.7.linux-amd64.tar.gz

Bây giờ bạn đã cài đặt thành công GO. Bây giờ bạn phải đặt Biến môi trường để bạn có thể sử dụng golệnh từ bất cứ đâu.

Để đạt được điều này, chúng ta cần thêm một dòng vào .bashrc So,

sudo nano ~/.bashrc

và thêm dòng sau vào cuối tập tin.

export PATH="/usr/local/go/bin:$PATH"

Bây giờ, tất cả các lệnh trong go/bin sẽ hoạt động.

Kiểm tra nếu cài đặt thành công bằng cách làm

go version

Đối với Tài liệu ngoại tuyến, bạn có thể làm

godoc -http=:6060

Tài liệu ngoại tuyến sẽ có sẵn tại http://localhost:6060

GHI CHÚ:

Một số người ở đây đang đề nghị thay đổi biến PATH.

Nó không phải là một lựa chọn tốt.

  1. Thay đổi đó /usr/local/go/binlà tạm thời và nó sẽ đặt lại sau khi bạn đóng thiết bị đầu cuối.

  2. go lệnh sẽ chỉ hoạt động trong thiết bị đầu cuối mà bạn đã thay đổi giá trị của PATH.

  3. Bạn sẽ không thể sử dụng bất kỳ lệnh nào khác như ls, nanohoặc chỉ về mọi thứ vì mọi thứ khác đều ở /usr/binhoặc ở các vị trí khác. Tất cả những thứ đó sẽ ngừng hoạt động và nó sẽ bắt đầu gây ra lỗi cho bạn.

Tuy nhiên, điều này là vĩnh viễn và không làm phiền bất cứ điều gì khác.


bạn cần xác định env var GOPATH = / some / dir sau đó xác định PATH = $ {GOPATH} / bin: $ {PATH} cho mã dự án của riêng bạn
Scott Stensland

Có, tôi sử dụng VSCode vì vậy để thêm GOPATH tôi chỉ cần chỉnh sửa gopath trong cài đặt người dùng json. Cảm ơn các đầu vào.
Ishan Jain

Có một lỗi đánh máy nhỏ trong lệnh tar: am64 thay vì amd64
Adrian Lungu

1
@AdrianLungu Đã sửa nó.
Ishan Jain

1
sudo nano ~. / bashrc -> sudo nano ~ / .bashrc .. cũng nên là vim: p
GameKyuubi 6/11/2016

4
  1. Tải về nói, go1.6beta1.linux-amd64.tar.gztừ https://golang.org/dl/ vào/tmp

wget https://storage.googleapis.com/golang/go1.6beta1.linux-amd64.tar.gz -o /tmp/go1.6beta1.linux-amd64.tar.gz

  1. bỏ tar vào /usr/local/bin

sudo tar -zxvf go1.6beta1.linux-amd64.tar.gz -C /usr/local/bin/

  1. Đặt GOROOT, GOPATH, [trên ubfox thêm theo sau vào ~ / .bashrc]

mkdir ~/go export GOPATH=~/go export PATH=$PATH:$GOPATH/bin export GOROOT=/usr/local/bin/go export PATH=$PATH:$GOROOT/bin

  1. Kiểm chứng

go version nên thể hiện

go version go1.6beta1 linux/amd64

go env nên thể hiện

GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/vats/go" GORACE="" GOROOT="/usr/local/bin/go" GOTOOLDIR="/usr/local/bin/go/pkg/tool/linux_amd64" GO15VENDOREXPERIMENT="1" CC="gcc" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0" CXX="g++" CGO_ENABLED="1"


Xin chào, cảm ơn bạn đã trả lời, tôi đang làm theo tất cả các bước nhưng bất cứ khi nào tôi gọi "phiên bản đi" thay vì 1.7, nó mang lại 1.4.2. Có hành động nào khác nên được thực hiện?
Anahit Serobyan

4

Nếu ai đó đang tìm cách cài đặt Go 1.8, hãy làm theo:

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go

Và sau đó cài đặt đi

sudo apt-get install golang-1.8-go

Công trình hoàn hảo cho tôi. Cảm ơn!
Gwyneth Llewelyn

1
Không cần cài đặt golang-1.8-go, nó đã được cài đặt khi cài đặt golang-go. Thực tế là vào cuối tháng 4 năm 2017, go 1.8.1 đã được cài đặt, phiên bản mới nhất. github.com/golang/go/wiki/Ubfox
firepol

Tôi đoán bạn cũng cần thiết lập GOROOT, GOPATH
Nam G VU

Tham chiếu cho cài đặt GOROOT và GOPATH ngay trong các câu trả lời khác 1) stackoverflow.com/a 432384978/248616 2) stackoverflow.com/questions/17480044/. Thêm tài liệu tham khảo chính thức stackoverflow.com/a/10847122/248616
Nam G VU

Đối với mỗi dự án Go của chúng tôi, hãy đặt GOPATH = / some / dir, PATH = $ {GOPATH} / bin: $ {PATH}
Nam G VU

4

Đối với bản phát hành hiện tại của Go:

Ngôn ngữ lập trình Go

Bắt đầu

Tải xuống bản phân phối Go

Tải xuống

Nhấp vào liên kết ở trên để truy cập trang tải xuống của dự án Go và chọn phân phối nhị phân phù hợp với kiến ​​trúc hệ điều hành và bộ xử lý của bạn.

Các bản phân phối nhị phân chính thức có sẵn cho các hệ điều hành FreeBSD, Linux, macOS và Windows và các kiến ​​trúc bộ xử lý 32 bit (386) và 64 bit (amd64) x86.

Nếu phân phối nhị phân không có sẵn cho sự kết hợp giữa hệ điều hành và kiến ​​trúc của bạn, bạn có thể muốn thử cài đặt từ nguồn hoặc cài đặt gccgo thay vì gc.

Cài đặt Đi từ nguồn


Cài đặt từ nguồn thực sự rất nhanh. Nó biên dịch nhanh và các bài kiểm tra là tùy chọn nếu bạn chọn bỏ qua chúng.
Jeremy Wall

3

Tôi sử dụng hướng dẫn này để cài đặt phiên bản mới nhất của IMG:

  1. Xóa phiên bản Go hiện có:

    sudo apt-get purge golang*
  2. Cài đặt phiên bản mới nhất của Go:

    sudo add-apt-repository ppa:longsleep/golang-backports
    sudo apt-get update
    sudo apt-get install golang-go
  3. Tạo .profiletập tin trong đường dẫn nhà với nội dung này:

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
    # exists.
    # see /usr/share/doc/bash/examples/startup-files for examples.
    # the files are located in the bash-doc package.
    
    # the default umask is set in /etc/profile; for setting the umask
    # for ssh logins, install and configure the libpam-umask package.
    #umask 022
    
    # if running bash
    if [ -n "$BASH_VERSION" ]; then
        # include .bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
            . "$HOME/.bashrc"
        fi
    fi
    
    # set PATH so it includes user's private bin directories
    PATH="$HOME/bin:$HOME/.local/bin:$PATH"
  4. Đặt không gian làm việc Go cho biến môi trường:

    GOPATH=~/.go
  5. Áp dụng .profilecấu hình:

    source ~/.profile

Kiểm tra:

$ go version
go version go1.11.1 linux/amd64

Tham chiếu: Go-GitHub-Cài đặt


1

Ngày nay, theo githang github với Ubuntu , có thể dễ dàng cài đặt phiên bản mới nhất của Go thông qua một cái búng tay:

Sử dụng snaps cũng hoạt động khá tốt:

# This will give you the latest version of go
$ sudo snap install --classic go

Có khả năng thích quấy rối hơn với các PPA lỗi thời và / hoặc bên thứ 3


0

Bạn cũng có thể sử dụng tập lệnh update-golang:

update-golang là một tập lệnh để dễ dàng tìm nạp và cài đặt các bản phát hành Golang mới với sự xâm nhập hệ thống tối thiểu

git clone https://github.com/udhos/update-golang
cd update-golang
sudo ./update-golang.sh

0

Cách tốt nhất để cài đặt Go trên Ubuntu là tải xuống phiên bản bắt buộc từ đây . Tại đây bạn có thể có tất cả các bản phát hành và ổn định, cùng với các phiên bản lưu trữ.

Sau khi tải xuống phiên bản bạn đã chọn, bạn có thể làm theo các bước tiếp theo, tôi sẽ đề nghị bạn tải xuống định dạng tar.gz cho máy ubfox:

  1. trước hết hãy loại bỏ hoàn toàn phiên bản cũ khỏi địa phương của bạn bằng cách thực hiện việc này

sudo rm -rf /usr/local/go /usr/local/gocache

điều này sẽ loại bỏ tất cả các cơ sở mã đi cục bộ nhưng chờ thêm một số thứ chúng tôi phải làm để loại bỏ hoàn toàn khỏi cục bộ, tôi đã bỏ lỡ bước này và phải mất rất nhiều thời gian cho đến khi tôi hiểu những gì tôi đang thiếu vì vậy đây là công cụ thanh lọc để loại bỏ danh sách

sudo apt-get purge golang

hoặc là

sudo apt remove golang-go
  1. Bây giờ cài đặt / giải nén phiên bản đã tải xuống của bạn vào bên trong / usr / local / go, bằng cách nhấn terminal với cái này

tar -C /usr/local -xzf go1.10.8.linux-amd64.tar.gz

  1. sau khi thực hiện tất cả các công cụ trên, đừng quên hoặc kiểm tra GOROOTgiá trị biến bạn có thể kiểm tra giá trị bằng cách go envnếu không được đặtexport PATH=$PATH:/usr/local/go
  2. Tốt hơn để kiểm tra một chương trình đi nhỏ để đảm bảo. ghi nội dung này /home/yourusername/go/test.phpnếu bạn chưa thay đổi GOPATHgiá trị cài đặt :
package main

import "fmt"

func main() {
    fmt.Println("hello world")
}
  1. chạy cái này bằng go run test.go

Tôi hy vọng nó làm việc cho bạn!!


0

Hoặc có lẽ bạn có thể sử dụng tập lệnh này để cài đặt Go và LiteIDE?

Nếu bạn không hài lòng với câu trả lời được cung cấp, xin vui lòng bình luận thay vì bỏ phiếu một cách mù quáng. Tôi đã sử dụng thiết lập này trong 4 năm qua mà không có vấn đề gì.


-1
  1. Nếu bạn có Ubuntu-mate, bạn có thể cài đặt mới nhất bằng cách:

    ừ đi

  2. Tôi có một tập lệnh để tải xuống và cài đặt lần cuối từ trang web chính thức

     # Change these varialbe to where ever you feel comfortable
     DOWNLOAD_DIR=${HOME}/Downloads/GoLang
     INSTALL_DIR=${HOME}/App
     function install {
        mkdir -p ${DOWNLOAD_DIR}
        cd ${DOWNLOAD_DIR}
    
        echo "Fetching latest Go version..."
        typeset VER=`curl -s https://golang.org/dl/ | grep -m 1 -o 'go\([0-9]\)\+\(\.[0-9]\)\+'`
        if uname -m | grep 64 > /dev/null; then
            typeset ARCH=amd64
        else
            typeset ARCH=386
        fi
        typeset FILE=$VER.linux-$ARCH
    
        if [[ ! -e ${FILE}.tar.gz ]]; then
             echo "Downloading '$FILE' ..."
             wget https://storage.googleapis.com/golang/${FILE}.tar.gz
        fi
    
        echo "Installing ${FILE} ..."
        tar zxfC ${FILE}.tar.gz ${INSTALL_DIR}
        echo "Go is installed"
    }
    
    install

Thiết lập GOROOT, GOPATH và PATH của bạn:

export GOROOT=${INSTALL_DIR}/go
export GOPATH=<your go path>
export PATH=${PATH}:${GOROOT}/bin:${GOPATH}/bin

-1

Bạn có thể sử dụng một tập lệnh từ udhos/update-golang.

Dưới đây là một ví dụ hai lớp (chạy như root):

bash <(curl -s https://raw.githubusercontent.com/udhos/update-golang/master/update-golang.sh)
ln -vs /usr/local/go/bin/go* /usr/local/bin/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.