やりたかったこと
こちらのパッケージをubuntuのサーバーに入れようとした
README.mdには、ソースからのインストールは下記のコマンドでやろうということだった
go get github.com/prasmussen/gdrive
そうかgoがいるのか、と思いapt-getでgoをインストールした後にgo get
のコマンドを実行しようとしたらハマったのでメモ。
間違えた手順と発生したエラー
sudo apt-get golang
go get github.com/prasmussen/gdrive
でインストールしようとしたところ、go get
のところでこんなエラーが
package context: unrecognized import path "context" (import path does not begin with hostname)
どうやらバージョン問題っぽい。apt-getで入れると古いのが理由のようで。よくある失敗パターンですね。
復旧+再インストール
apt-getで入ってしまったgoを消して、ソースからダウンロードしてインストール
sudo apt-get purge golang*
sudo rm -rf /usr/lib/go-1.6/ /usr/lib/go-1.6/src/ /usr/lib/go-1.6/src/runtime/ /usr/lib/go-1.6/src/runtime/race
wget https://go.dev/dl/go1.18.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
mkdir -p ~/go; echo "export GOPATH=$HOME/go" >> ~/.bashrc
echo "export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
さらに、最近のgoはgo getだと怒られるパターンがあるっぽく、go installでバージョンも指定して入れる必要があるぽい
$ go get github.com/prasmussen/gdrive
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 install github.com/prasmussen/gdrive@latest