1
0

More than 1 year has passed since last update.

GitHubのサイトを指定したGo Installのやり方に手間取ったのでメモ

Last updated at Posted at 2022-12-09

まえがき

Goでプログラミングをしてみたいと思い、環境整備したときモジュールのインストールにかなり手間取った。
その時の忘備録。
GitHub以外のリポジトリからインストールするときはまた話が変わってくるので注意。

環境

OS:Windows 10(64bit)
プロセッサ:AMD Ryzen 5 3450U with Radeon Vega Mobile Gfx 2.10 GHz
RAM:16 GB
Goのバージョン:go1.19.3 windows/amd64

結論

こうすればOK。

書き方
go install github.com/<リポジトリのパス>@HEAD

経緯

Teftifyをインストールしたいと思い、公式のインストール方法を見てみた。

サイトに書いてあったやり方
go get github.com/stretchr/testify

なんだこれなら簡単じゃないか、と思いきや、以下のエラーが出てしまった。

エラーメッセージ1
> go get github.com/stretchr/testify
go: go.mod file not found in current directory or any parent directory.
        'go get' is no longer supported outside a module.
        To build and install a command, use 'go install' with a version,
        like 'go install example.com/cmd@latest'
        For more information, see https://golang.org/doc/go-get-install-deprecation
        or run 'go help get' or 'go help install'.

メッセージを見てみると、どうやら「go get」はこの書き方をもうサポートしていないらしい。
代わりに「go install example.com/cmd@latest」としろ、と書いてある。

つまり、「go install github.com/stretchr/testify@lastest」と書けば良さそうか。

エラーメッセージ2
> go install github.com/stretchr/testify@lastest
go: github.com/stretchr/testify@lastest: github.com/stretchr/testify@lastest: invalid version: unknown revision lastest

「lastestというリビジョンは存在しない」と返ってきた。

調べてみると、GitではlastestではなくHEADらしい。(実は人生で一度もGitを使ったことがなかったので分からなかった。)

lasestをHEADにしてみたところ、通った。

> go install github.com/stretchr/testify@HEAD
package github.com/stretchr/testify is not a main package

インストールもできているようだ。

> ls


    ディレクトリ: C:\Users\XXXXXXX\go\pkg\mod\github.com\stretchr\testify@v1.8.2-0.20221102114659-1333b5d3bda8


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-r---        2022/12/09     12:33                .github
d-r---        2022/12/09     12:33                assert
d-r---        2022/12/09     12:33                http
d-r---        2022/12/09     12:33                mock
d-r---        2022/12/09     12:33                require
d-r---        2022/12/09     12:33                suite
-ar---        2022/12/09     12:33            278 .ci.gofmt.sh
-ar---        2022/12/09     12:33            455 .ci.gogenerate.sh
-ar---        2022/12/09     12:33             34 .ci.govet.sh
-ar---        2022/12/09     12:33            263 .gitignore
-ar---        2022/12/09     12:33           2566 CONTRIBUTING.md
-ar---        2022/12/09     12:33           1075 doc.go
-ar---        2022/12/09     12:33            188 go.mod
-ar---        2022/12/09     12:33           1425 go.sum
-ar---        2022/12/09     12:33           1103 LICENSE
-ar---        2022/12/09     12:33            186 MAINTAINERS.md
-ar---        2022/12/09     12:33            186 package_test.go
-ar---        2022/12/09     12:33          11667 README.md

あとがき

複数のツールが絡んだり、バージョン更新で変更が入ったりすると、こういうところで苦労させられるなぁ、と思う。
一番助かるのは公式サイトの情報が更新されることなのだけども。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0