/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

AmazonLinuxのGolangを最新にアップデートする

f:id:yatta47:20210117125924p:plain

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でばかりやっていたので、パッケージがない場合どうすれば・・・というのを少し迷ってしまった。

これで環境整ったので続きのお勉強をしていこうと思います。