AmazonLinuxでGolangをつかっているのですがバージョンを確認すると1.13だった。
1.14を使う必要があったため、バージョンアップしました。
AmazonLinuxで1.14はパッケージとして提供されていない?
yumでインストールしていたので、パッケージをアップデートすればいいかなと思っていたら、予想外にアップデートパッケージがなかった。
$ yum list installed | grep golang golang.x86_64 1.13.4-1.57.amzn1 @amzn-updates golang-bin.x86_64 1.13.4-1.57.amzn1 @amzn-updates golang-src.noarch 1.13.4-1.57.amzn1 @amzn-updates $ yum list updates | grep golang $
なぜないんだ・・・・・orz
ということで、手動で入れることに。
まず最初はyumでインストールしたものをアンインストール。
$ sudo yum remove golang Loaded plugins: priorities, update-motd, upgrade-helper Resolving Dependencies --> Running transaction check ---> Package golang.x86_64 0:1.13.4-1.57.amzn1 will be erased --> Processing Dependency: go = 1.13.4-1.57.amzn1 for package: golang-bin-1.13.4-1.57.amzn1.x86_64 --> Running transaction check ---> Package golang-bin.x86_64 0:1.13.4-1.57.amzn1 will be erased --> Finished Dependency Resolution Dependencies Resolved =================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================== Removing: golang x86_64 1.13.4-1.57.amzn1 @amzn-updates 7.8 M Removing for dependencies: golang-bin x86_64 1.13.4-1.57.amzn1 @amzn-updates 249 M Transaction Summary =================================================================================================================================== Remove 1 Package (+1 Dependent package) Installed size: 256 M Is this ok [y/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : golang-bin-1.13.4-1.57.amzn1.x86_64 1/2 Erasing : golang-1.13.4-1.57.amzn1.x86_64 2/2 Verifying : golang-1.13.4-1.57.amzn1.x86_64 1/2 Verifying : golang-bin-1.13.4-1.57.amzn1.x86_64 2/2 Removed: golang.x86_64 0:1.13.4-1.57.amzn1 Dependency Removed: golang-bin.x86_64 0:1.13.4-1.57.amzn1 Complete! $
アンインストール完了。ちゃんと消えたか確認。
[ec2-user@ip-172-31-39-87 alternatives]$ which go /usr/bin/which: no go in (/home/ec2-user/bin:/home/ec2-user/.local/bin:/home/ec2-user/.vscode-server/bin/a9f8623ec050e5f0b44cc8ce8204a1455884/bin:/home/ec2-user/bin:/home/ec2-user/.local/bin:/home/ec2-user/.vscode-server/bin/a9f8623ec050e5f0b44cc8ce8204a1455884/bin:/home/ec2-user/bin:/home/ec2-user/.local/bin:/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/opt/aws/bin) $
ふむ。見つからないと出たのでちゃんと消えた様子。
最新版のgolangを取得してくる。
取得は以下のサイトから。
Downloads - The Go Programming Language
本日時点の最新版が1.14.2だったのでそれをダウンロード。
$ wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz --2020-04-18 11:08:17-- https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz Resolving dl.google.com (dl.google.com)... 172.217.25.238, 2404:6800:4004:81b::200e Connecting to dl.google.com (dl.google.com)|172.217.25.238|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 123658438 (118M) [application/octet-stream] Saving to: ‘go1.14.2.linux-amd64.tar.gz’ go1.14.2.linux-amd64.tar.gz 100%[=========================================================>] 117.93M 88.4MB/s in 1.3s 2020-04-18 11:08:18 (88.4 MB/s) - ‘go1.14.2.linux-amd64.tar.gz’ saved [123658438/123658438] $ $ ls go1.14.2.linux-amd64.tar.gz
そしてインストール。
$ sudo tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz
これで完了。よし。実行。
$ go version bash: /usr/bin/go: No such file or directory $
・・・・・なるほど。パスが通っていないか確認して、通っていなかったので追加し、シェルを再起動してもう一度実行。
$ exec $SHELL -l $ go version go version go1.14.2 linux/amd64 $
よし。アップデート完了。
まとめ
最近パッケージはyumでばかりやっていたので、パッケージがない場合どうすれば・・・というのを少し迷ってしまった。
これで環境整ったので続きのお勉強をしていこうと思います。