Solinityコンパイラのインストール

バージョン管理

ソリディティバージョンはsemantic versioningに続き、リリースに加えて、nightly development buildsも利用可能になりました。nightly buildsは動作することが保証されておらず、最善の努力にもかかわらず、文書化されていない変更や壊れた変更が含まれている可能性があります。 最新のリリースを使用することをお勧めします。 以下のパッケージインストーラは、最新のリリースを使用します。

Remix

小規模なコントラクトやSolinityの迅速な学習にはRemixをお勧めします。

オンラインでリミックスにアクセスすると、何もインストールする必要はありません。 インターネットに接続せずに使用する場合は、https://github.com/ethereum/browser-solidity/tree/gh-pagesにアクセスし、そのページで説明されているように.ZIPファイルをダウンロードしてください。

このページのその他のオプションは、コマンドラインのインストールについて詳しく説明しています。 より大きな契約をしている場合や、より多くのコンパイルオプションが必要な場合は、コマンドラインコンパイラを選択してください。

npm / Node.js

Solidityコンパイラであるsolcjsをインストールするには、npmを便利で移植可能な方法で使用します。 solcjsプログラムは、このページの下にあるすべてのオプションよりも機能が少なくなっています。 私たちはコマンドラインコンパイラのドキュメントを使用して、完全な機能を備えたコンパイラsolcを使用していることを前提としています。 したがって、npmからsolc-jsをインストールする場合は、ここでマニュアルの読込みをやめ、solc-jsを続行してください。

注:solc-jsプロジェクトはEmscriptenを使用してC ++ solcから派生しています。 solc-jsはJavaScriptプロジェクトで直接使用できます(Remixなど)。 詳細については、solc-jsリポジトリを参照してください。

 

 

npm install -g solc

 

注意
コマンドラインの名前はsolc jsです。
solc jsのコマンドラインオプションはsolcと互換性がなく、solcの動作がsolcjで動作しないと期待するgethなどのツールは互換性がありません。

Docker

私たちは最新のコンパイラ用ドッカービルドを提供しています。stableリポジトリにはリリースされたバージョンが含まれ、nightlyリポジトリには開発ブランチの不安定な変更が含まれる可能性があります。

 

docker run ethereum/solc:stable solc --version

 

現在、ドッカーイメージにはコンパイラの実行可能ファイルしか含まれていないため、ソースディレクトリと出力ディレクトリをリンクするためにいくつかの追加作業が必要です。

Binary Packages

Solidityのバイナリパッケージは、solidity/releases.で入手できます。

UbuntuのPPAもあります。 最新の安定版。

 

 

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

 

最新バージョンを使用したい場合:

 

sudo add-apt-repository ppa:ethereum/ethereum
sudo add-apt-repository ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install solc

 

サポートされているすべてのLinuxディストリビューションにインストール可能なsnap packageもリリースしています。 solcの最新の安定版をインストールするには:

 

sudo snap install solc

 

または、開発ブランチからの最新の変更で不安定なsolcのテストを手助けしたい場合は、次のようにします。

sudo snap install solc --edge

 

Arch Linuxには、最新の開発版に限定されていますが、パッケージもあります。

 

pacman -S solidity

 

Homebrewは、Jenkins to TravisCIの移行に続いて、執筆の時点では事前構築されたボトルがなくなっていますが、Homebrewはソースからビルドする手段としてうまく機能するはずです。 私たちは直ちに既製のボトルを再追加します。

 

brew update
brew upgrade
brew tap ethereum/ethereum
brew install solidity

 

特定のバージョンのSolidityが必要な場合は、Githubから自作式を直接インストールできます。

Githubでsolidity.rbがコミットしていることを確認します。

特定のコミットのsolidity.rbの生のファイルリンクがあるまで、履歴リンクをたどります。

brewを使用してインストールします。

 

 

brew unlink solidity
# Install 0.4.8
brew install https://raw.githubusercontent.com/ethereum/homebrew-ethereum/77cce03da9f289e5a3ffe579840d3c5dc0a62717/solidity.rb

 

Gentoo Linuxは、emergeを使用してインストールできるsolidityパッケージも提供しています。

 

emerge dev-lang/solidity

ソースからのビルド

リポジトリをクローンする

ソースコードを複製するには、次のコマンドを実行します。

 

git clone --recursive https://github.com/ethereum/solidity.git
cd solidity

 

Solidityの開発を手助けしたい場合は、Solidityをフォークし、自分のフォークを2番目のリモートとして追加する必要があります:

 

cd solidity
git remote add personal git@github.com:[username]/solidity.git

 

Solidityにはサブモジュールがあります。 正しくロードされていることを確認します。

 

git submodule update --init --recursive

前提条件 – macOS

macOSの場合は、最新バージョンのXcodeがインストールされていることを確認してください。 これには、Clang C++ compilerXcode IDE、およびOS XでC ++アプリケーションを構築するために必要なその他のApple開発ツールが含まれています。初めてXcodeをインストールする場合、または新しいバージョンをインストールしたばかりの場合は、 コマンドラインビルドを行う前にライセンスを取得する必要があります。

 

sudo xcodebuild -license accept

 

私たちのOS Xビルドでは、外部依存関係をインストールするためにHomebrewパッケージマネージャをインストールする必要があります。 ホームブリューをアンインストールする方法は、最初からやり直したい場合です。

前提条件 – Windows

SolidityのWindowsビルドには、次の依存関係をインストールする必要があります。

 

Software Notes
Git for Windows Command-line tool for retrieving source from Github.
CMake Cross-platform build file generator.
Visual Studio 2017 Build Tools C++ compiler
Visual Studio 2017 (Optional) C++ compiler and dev environment.

 

既にIDEが1つしかなく、コンパイラとライブラリだけが必要な場合は、Visual Studio 2017ビルドツールをインストールできます。

Visual Studio 2017は、IDEと必要なコンパイラとライブラリの両方を提供します。 あなたがIDEを持っておらず、しっかりとしたものを開発することを望むならば、Visual Studio 2017はすべての設定を簡単に手に入れるための選択肢かもしれません。

Visual Studio 2017ビルドツールまたはVisual Studio 2017にインストールする必要があるコンポーネントの一覧を次に示します。

 

  • Visual Studio C++ core features
  • VC++ 2017 v141 toolset (x86,x64)
  • Windows Universal CRT SDK
  • Windows 8.1 SDK
  • C++/CLI support

External Dependencies

macOS、Windows、および多数のLinuxディストリビューションに必要な外部依存関係をすべてインストールする「ワンボタン」スクリプトが完成しました。 これは、以前は多段階の手動プロセスでしたが、現在は1つのライナーになっています。

 

./scripts/install_deps.sh

 

または、Windowsの場合:

 

scripts\install_deps.bat

Command-Line Build

ビルドする前に、必ず外部依存関係(上記参照)をインストールしてください。

SolidityプロジェクトはCMakeを使ってビルドを設定します。 Solinityの構築は、Linux、macOS、その他のUnixでは非常に似ています。

 

mkdir build
cd build
cmake .. && make

 

さらに簡単に:

 

#note: this will install binaries solc and soltest at usr/local/bin
./scripts/build.sh

 

Windowsの場合でも:

 

mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" ..

 

この後者の命令セットは、ビルドディレクトリにsolidity.slnを作成する必要があります。 そのファイルをダブルクリックすると、Visual Studioが起動します。 buildingRelWithDebugInfoの設定をお勧めしますが、その他はすべて動作します。

あるいは、コマンドラインでWindows用にビルドすることもできます。以下のようにします。

 

cmake --build . --config RelWithDebInfo

CMake options

もしあなたが興味を持っているのであれば、CMakeのオプションを利用することができます。

If you are interested what CMake options are available run cmake .. -LH.

バージョン文字列の詳細

Solidityバージョンの文字列には、次の4つの部分があります。

  • バージョン番号
  • プレリリースタグ、通常はYYYY.MM.DDまたはnightly.YYYY.MM.DDに設定されます。
  • コミットの形式でコミットします.GITHASH
  • プラットフォームには任意の数の項目があり、プラットフォームとコンパイラに関する詳細が含まれています。ローカルの変更がある場合、コミットには.modが後置されます。

 

これらの部分は、必要に応じて結合されます。ここでは、SolidityプレリリースタグはSemverプレリリースと等しく、Solidityコミットとプラットフォームが結合されてSemverビルドメタデータを構成します。

 

リリースの例:0.4.8 + commit.60cc1668.Emscripten.clang。

プレリリースの例:0.4.9-nightly.2017.1.17 + commit.6ecb4aa3.Emscripten.clang

バージョン管理に関する重要な情報

パッチレベルの変更のみが行われることを前提としているため、リリースが行われた後、パッチバージョンレベルがバンプされます。 変更がマージされると、バージョンはセーバーと変更の重大度に従ってバンプされます。 最後に、リリースは常に現在の夜間ビルドのバージョンで行われますが、リリース前の指定はありません。

例:

 

  1. 0.4.0のリリースが行われます
  2. 夜間のビルドには0.4.1のバージョンがあります
  3. 非改正の変更が導入されました – バージョンに変更はありません
  4. – バージョンは0.5.0にバンプされています
  5. 0.5.0のリリースが行われます

この動作は、version pragmaでうまく動作します。