12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Go 1.11の「go get ~」でGo言語製のツールがインストールできなくなってた話

Posted at

「go get」が使えない!

自分で作ったテキストの色付けなどを行うツール https://github.com/x-color/mkr をGitHubで公開した後、インストールのチェックをするために、いつも通り以下のコマンドを叩いた。

$ go get -u github.com/x-color/mkr

そしたら...

go: cannot find main module; see 'go help modules'

いつもならインストールが開始したはずなのに、エラーが帰ってきてしまった...

原因

エラーメッセージを見るとバージョン1.11から追加されてた「Modules」関連の影響っぽい
ってことで、ドキュメントを軽く読んでみると

Day-to-day adding, removing, upgrading, and downgrading of dependencies should be done using 'go get', which will automatically update the go.mod file.

「「go get」は、依存関係にあるパッケージの追加、削除、アップグレードやダウングレードを行う」って感じのことが書いてあるみたい。

「go get」の仕様が変わってたのか..確かに、開発中にパッケージの管理で使ってたな..と振り返りつつ、じゃあツールのインストールの手段はどうなってるんだと調査続行。

解決策

ドキュメント読むより、実際に有名なGo言語製のツールはどうしてるのか見たほうが早そうだと「Hugo」のインストール方法を読んでみることに。

そしたら、このような感じになっていた。

$ git clone https://github.com/gohugoio/hugo.git
$ cd hugo
$ go install

以前の「go get」が内部で行っていたgit clonego installを自分で行うようになっていた。

この方法をGo言語製の自作ツールのインストールで試してみると

$ git clone https://github.com/x-color/mkr.git
$ cd mkr
$ go install

無事にインストールすることができた。

まとめ

Go言語のバージョン1.11で、Go言語製のツールをインストールする際には、

$ go get -u github.com/XXX/xxx

ではなく

$ git clone https://github.com/XXX/xxx
$ cd xxx
$ go install

でできる!

12
5
0

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
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?