Go1.10.1インストール /usr/local/go/bin/go CentOS7

プログラミング言語Go

一覧

 状態:-  閲覧数:518  投稿日:2018-04-23  更新日:2018-04-25

内容


Goインストール方法を検討
現状確認 / ダウンロード
ダウンロードしてきた圧縮ファイルを解凍 / 解凍先をPATHへ追加 / インストール結果確認
ワークスペース作成 / go runコマンド / go buildコマンド
ログインする度に自動で環境変数を設定

Goインストール方法を検討

 閲覧数:131 投稿日:2018-04-24 更新日:2018-04-24 

2種類


A.公式ページの Getting Started に掲載されているアーカイブをダウンロードして展開する方法
・「go build」するため、「make」「make install」している(と思われる)
・最新バージョンをインストール可能

B.yumでインストール
yum install golang
・アップグレード対応等の管理が楽
・少し古いバージョンしかインストール出来ない
※最新バージョンをインストール不可

A.アーカイブダウンロード方式でインストールした場合のアップグレード対応


まず既存のバージョンを削除する必要がある
・If you are upgrading from an older version of Go you must first remove the existing version.

既存のGoインストールをシステムから削除するには?
・goディレクトリを削除する
・Linuxでは /usr/local/go

Go binディレクトリ
・PATH環境変数からGo binディレクトリを削除する必要がある
・LinuxやFreeBSDでは、 /etc/profileや$HOME/.profileを編集する必要がある

削除したディレクトリへインストールする場合は、「Go binディレクトリ」操作は不要
・Goをシステムから完全削除するわけではないため
Go 1.2.2 -> 1.3 アップグレード私的作業メモ

2018/4/24 時点で、インストール可能なバージョンは?


A.アーカイブダウンロード方式
Downloadsの「Linux」を確認
go1.10.1


B.yum方式
$ yum list available | grep golang
golang.x86_64                             1.8.3-1.el7                  base     
golang-bazil-fuse-devel.noarch            0-0.2.20160811git371fbbd.el7 epel    
golang-bazil-fuse-unit-test-devel.x86_64  0-0.2.20160811git371fbbd.el7 epel    
golang-bin.x86_64                         1.8.3-1.el7                  base    
golang-bitbucket-kardianos-osext-devel.noarch


Goインストール方式を決定


「A.アーカイブダウンロード方式」を採用
・アップグレード方法が思ったよりも簡単そうだったので、素直に公式掲載内容でインストールすることにした

現状確認 / ダウンロード

 閲覧数:118 投稿日:2018-04-25 更新日:2018-04-25 

現状確認


インストールされていない
$ go version
-bash: go: コマンドが見つかりません


ダウンロード


最新バージョン確認
・「Linux」「x86」左にある「go1.10.1.linux-amd64.tar.gz」リンクを右クリックして「リンクのアドレス」をコピー
$ wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz
]--2018-04-25 10:55:26--  https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz
dl.google.com (dl.google.com) をDNSに問いあわせています... 172.217.161.78, 2404:6800:4004:80b::200e
dl.google.com (dl.google.com)|172.217.161.78|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 119914627 (114M) [application/octet-stream]
`go1.10.1.linux-amd64.tar.gz' に保存中

100%[=========================================================================>] 119,914,627 11.3MB/s 時間 10s    

2018-04-25 10:55:36 (11.2 MB/s) - `go1.10.1.linux-amd64.tar.gz' へ保存完了 [119914627/119914627]




ダウンロードしてきた圧縮ファイルを解凍 / 解凍先をPATHへ追加 / インストール結果確認

 閲覧数:107 投稿日:2018-04-25 更新日:2018-04-25 

ダウンロードしてきた圧縮ファイルを解凍


解凍先は/usr/local/
$ sudo tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz

解凍先をPATHへ追加


~/.profileに以下の内容を追記
$ export PATH=$PATH:/usr/local/go/bin

GOROOT
▼/usr/local/go/bin

インストール結果確認


$ go version
go version go1.10.1 linux/amd64


$ which go
/usr/local/go/bin/go


ワークスペース作成 / go runコマンド / go buildコマンド

 閲覧数:121 投稿日:2018-04-25 更新日:2018-04-25 

ワークスペース作成


$ pwd
                                                                                                                                           
/home/★★

$ mkdir ~/go

GOPATH確認
$ go env GOPATH
/home/★★/go


$ cd go
$ mkdir src
$ cd src
$ vim hello.go
▼hello.go
package main

import "fmt"

func main() {
   fmt.Printf("hello, world\n")
}


go runコマンド


コンソールからgo runコマンドを実行
・Go言語はコンパイル言語だが、go runコマンドを用いると一時ファイルとしてコンパイルしたプログラムをその場で実行することが出来る
$ go run hello.go
hello, world


ディレクトリ移動して再度試してみる
$ cd ../
$ go run src/hello.go
hello, world


go buildコマンド


コンパイルを行う
$ cd src
$ ls -l
合計 4
-rw-rw-r-- 1 ★★ ★★ 77  4月 25 11:11 hello.go     

                                                                                                                     
$ go build hello.go
$ ls -l
合計 1980
-rwxrwxr-x 1 ★★ ★★ 2020012  4月 25 11:14 hello
-rw-rw-r-- 1 ★★ ★★      77  4月 25 11:11 hello.go


実行
・hello, worldが表示されることを確認
$ ./hello
hello, world





ログインする度に自動で環境変数を設定

 閲覧数:117 投稿日:2018-04-25 更新日:2018-04-25 

準備


移動
$ cd ~

現在位置確認
$ pwd
/home/★★


.bash_profile修正


# vim .bash_profile
修正前
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
       . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH


修正後
・「:/usr/local/go/bin」新規追加
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
       . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/local/go/bin

export PATH


# source ~/.bashrc
・設定変更が反映されない(理由不明)ので、新しくログイン


毎回ログインする度にパスの指定をするのは面倒なので、ホームディレクトリ配下にある .bash_profile を編集する
7回目-12.Go1.10インストール


Go1.9.2インストール /usr/local/go/bin/go CentOS6



週間人気ページランキング / 9-19 → 9-25
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 16
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 15
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 11
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 10
5 tar: これは tar アーカイブではないようです 8
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 8
5 さくらVPS0 8
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 6
7 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
7 echo と cat の違い 6
8 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 5
8 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 5
8 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 5
9 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
9 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/26 1:01 更新