Gethのコンパイル環境構築とコンパイル方法
こんにちは。休みの日はDapp開発の勉強をしている 藤田拓弥@ディズニー好きのSE です。
今日はイーサリアムが提供しているクライアントソフトのGethを触ってみようと思い、公式サイトにアクセスしましたが「Retrieving packages from release server...」のダイアログが表示され続け何もできませんでした。インストール用の実行ファイルもダウンロードできませんでした。(2018年9月30日時点)
ブラウザを変えてみても状況が変わらなかったのでダウンロードは諦めて、Gitに公開されているGethのソースコードを自分でコンパイルする方法を試してみました。
試した環境はwindows10です。
Gethのコンパイル方法は以下のサイトを参考にしました。
Git:Geth公式のインストール手順(Windows)
Gethのコンパイル環境構築
Go言語のインストール
公式サイトからwindows用のMSIファイルをダウンロードしてインストールします。
コマンドプロンプトでバージョンが表示されればOKです。
C:\>go version go version go1.11 windows/amd64
chocolatey(パッケージ管理ソフト)のインストール
コマンドプロンプトまたはWindows PowerShellのどちらかを使用してインストールします。
インストールに必要な要件等は公式サイトを確認してください。
コマンドプロンプトを使用する場合
管理者として以下のコマンドを実行します。
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Windows PowerShellを使用する場合
管理者として以下のコマンドを実行します。
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
コマンドプロンプトでバージョンが表示されればOKです。
C:\>choco --version 0.10.11
chocolateyを使用して必要なソフトをインストール
既にインストール済みの場合は対応不要です。インストール時にスクリプトを実行するか?と聞かれるので「y」を選んで進めます。オプション -y をつけると実行確認が表示されないので楽です。
C:\Windows\system32> choco install git C:\Windows\system32> choco install golang C:\Windows\system32> choco install mingw
インストール後にsuccessfullyが表示されていればOKです。
環境変数の設定
C:\Users\xxx> set "GOPATH=%USERPROFILE%" C:\Users\xxx> set "Path=%USERPROFILE%\bin;%Path%" C:\Users\xxx> setx GOPATH "%GOPATH%" C:\Users\xxx> setx Path "%Path%"
Gethのコンパイル手順
githubからGethのソースをclone
C:\Users\xxx> mkdir src\github.com\ethereum C:\Users\xxx> git clone https://github.com/ethereum/go-ethereum src\github.com\ethereum\go-ethereum
goで各種外部パッケージを取得
C:\Users\xxx> cd src\github.com\ethereum\go-ethereum C:\Users\xxx> go get -u -v golang.org/x/net/context
goでGethの実行ファイルを作成
C:\Users\xxx\src\github.com\ethereum\go-ethereum> go install -v ./cmd/...
Gethが正常にインストールされたか確認
コマンドプロンプトで「geth help」を実行し、Gethの情報(NAME、USAGE、VERSIONなど)が表示されればOKです。
C:\>geth help NAME: geth - the go-ethereum command line interface Copyright 2013-2018 The go-ethereum Authors USAGE: geth [options] command [command options] [arguments...] VERSION: 1.8.17-unstable