duankuan5319
duankuan5319
2011-05-16 15:33

在Linux(Mint)中安装Go并修改bashrc

已采纳

I want to install Google's Go Language on my Linux Mint machine. I'm new to Linux so its not easy to follow some of the instructions I have read. Namely, I have been told to edit/mod the bashrc file:

 export GOROOT=$HOME/gosource
 export GOARCH=amd64
 export GOOS=linux
 export GOBIN=$HOME/bin
 export PATH=$PATH:$GOBIN

I don't know how to do this. I typed gedit ~/.bashrc

into the terminal and a blank page appeared. I put in the code and saved it. Then did

hg clone -u https://go.googlecode.com/hg/ go

to get the source code. Is this correct? Because I then tried to compile the code and a long list of errors appeared (which I don't have - I'm using a different PC at the mo unfortunately).

But if anyone can help me install Go, I'd appreciate it.

SOLUTION:

Aside from various problems mentioned and solved in the answers below, I had forgotten to install the following

sudo apt-get install bison ed gawk gcc libc6-dev make

WHich is mentioned at the top of the golang.com install page.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • douguiyan9164 douguiyan9164 10年前

    Amongst other things, you tried to clone the repository to ~/go and edited ~/.bashrc to point $GOROOT to ~/gosource.

    Read the Go Getting Started instructions carefully. Either copy and paste commands or check what you type very carefully; check input very carefully before you hit enter. For commands, the $ sign represents the command prompt, don't type it. Remember, Linux is case sensitive and the distinction between / and \ is important. Check the output of commands very carefully; does the ouput make sense. Run diagnostic commands like env, pwd, which, and uname. When you see scroll bars in a Stack Overflow answer, scroll through all the code and output.

    First, set up ~/.bashrc.

    $ gedit ~/.bashrc
    
    export GOROOT=$HOME/go
    export GOARCH=amd64
    export GOOS=linux
    export GOBIN=$GOROOT/bin
    export PATH=$PATH:$GOBIN
    

    Close any open terminal windows and then open a new terminal window to check the new ~./bashrc and other values.

    $ env | grep '^\(GO\|HOME=\|PATH=\)'
    GOBIN=/home/peter/go/bin
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin
    GOARCH=amd64
    HOME=/home/peter
    GOROOT=/home/peter/go
    GOOS=linux
    $ cd $GOROOT/src
    $ pwd
    /home/peter/go/src
    $ uname -a
    Linux peter 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:25:51 UTC 2011 x86_64 GNU/Linux
    

    Then clone the repository to $GOROOT and you will clone to and compile from the same place.

    $ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
    requesting all changes
    adding changesets
    adding manifests
    adding file changes
    added 8441 changesets with 31916 changes to 4421 files (+1 heads)
    updating to branch release-branch.r57
    2702 files updated, 0 files merged, 0 files removed, 0 files unresolved
    $ cd $GOROOT/src
    $ ./all.bash
    < SNIP OUTPUT >
    ALL TESTS PASSED
    ---
    Installed Go for linux/amd64 in /home/peter/go.
    Installed commands in /home/peter/go/bin.
    The compiler is 6g.
    $ which 6g
    /home/peter/go/bin/6g
    

    You haven't posted your output, so I can only guess what your problems are.

    For example, you say "the directory is Go", it should be "go"; since Linux is case sensitive, "Go" and "go" are different.

    If you omit the $GOROOT destination from the hg clone command or $GOROOT is not set, hg clone will default to the hg directory. For example,

    $ env | grep '^GOROOT'
    GOROOT=
    $ hg clone -u release https://go.googlecode.com/hg/ $GOROOT
    destination directory: hg
    

    Since you have GOARCH=amd64, you should be running a 64-bit version of Linux Mint on an x86_64 processor. What does your uname -a output say? You want the 6g and 6l programs to compile and link on an x86_64 processor, which should be in your $GOBIN directory, which should be in in your $PATH.

    $ env | grep '^\(GOBIN\|PATH=\)'
    GOBIN=/home/peter/go/bin
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/peter/go/bin
    $ which 6g
    /home/peter/go/bin/6g
    

    You should also have seen this by reading the end of your ./all.bash command output.

    ALL TESTS PASSED
    ---
    Installed Go for linux/amd64 in /home/peter/go.
    Installed commands in /home/peter/go/bin.
    The compiler is 6g.
    
    点赞 评论 复制链接分享
  • duanjia7607 duanjia7607 10年前

    There's no need to tweak the environment in the simplest case.

    After cloning, do

    cd go/src
    ./all.bash
    

    to get Go compiled. After compiling you'll be told where it's installed and how to run it. Then you might want to really modify your environment to update the PATH variable. But this question is really out of scope of the Go language, so do what Robin Green suggested.

    P.S. The Debian packages for golang have recently been uploaded to unstable (see this bug), so may be it would be a better idea to grab the source package and build a real Debian package(s) from it.

    点赞 评论 复制链接分享
  • dormbaf90464 dormbaf90464 10年前

    Instead of

    gedit /.bashrc
    

    you should have typed

    gedit ~/.bashrc
    

    The fact that you were able to save it(?!) indicates that either you typo'd what you actually typed in your question, or you were running gedit as root. You need to run gedit as the same user (your user) that will be doing the compiling, to ensure that you edit the right file.

    点赞 评论 复制链接分享

相关推荐