Я пытаюсь установить Solidity, но, видимо, нет онлайн-репозиториев со всеми зависимостями. Я пробовал использовать методы, описанные здесь .
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
which solc
Репозиторий не работает.
$ sudo apt-get update
W: Failed to fetch http://ppa.launchpad.net/ethereum/ethereum-dev/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/ethereum/ethereum/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/george-edison55/cmake-3.x/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Я попытался скомпилировать пакет отсюда . Я использую debian 8.3 jessie и пытался установить пакеты для Ubuntu 14.04 (надежный tar) , но у меня была такая же проблема с репозиторием с llvm (см. ниже).
sudo apt-add-repository ppa:george-edison55/cmake-3.x
sudo apt-get -y update
sudo apt-get -y install language-pack-en-base
sudo dpkg-reconfigure locales
sudo apt-get -y install software-properties-common
sudo add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main"
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get -y update
sudo apt-get -y install llvm-3.7-dev
sudo add-apt-repository -y ppa:ethereum/ethereum-qt
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev \
libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev \
libcurl4-openssl-dev libcryptopp-dev libmicrohttpd-dev libjsoncpp-dev \
libargtable2-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers \
libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev \
libqt5webkit5-dev libqt5webengine5-dev ocl-icd-dev libv8-dev libz-dev
sudo apt-get -y install libjson-rpc-cpp-dev
sudo apt-get -y install qml-module-qtquick-controls qml-module-qtwebengine
Доступен ли какой-либо бинарный файл компилятора Solidity ?
Или есть способ вызвать компилятор браузера Solidity из командной строки?
Редактировать:
Файл журнала сборки:
$ ./webthree-helpers/scripts/ethbuild.sh --no-git --project solidity --cores 4 -DEVMJIT=0 -DETHASHCL=0 # build Solidity only
ETHBUILD - INFO: Starting build of webthree-helpers/utils for requested project solidity.
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- boost headers: /usr/include
-- boost lib : /usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so;/usr/lib/x86_64-linux-gnu/libboost_program_options.so;/usr/lib/x86_64-linux-gnu/libboost_random.so;/usr/lib/x86_64-linux-gnu/libpthread.so
-- Found gmp: /usr/lib/x86_64-linux-gnu/libgmp.so
-- Gmp headers: /usr/include/x86_64-linux-gnu
-- Gmp lib : /usr/lib/x86_64-linux-gnu/libgmp.so
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
ETHASHCL
EVMJIT
-- Build files have been written to: /home/user/log
Scanning dependencies of target secp256k1
Scanning dependencies of target scrypt
[ 10%] [ 20%] [ 30%] [ 40%] Building C object libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-hash.c.o
Building C object secp256k1/CMakeFiles/secp256k1.dir/secp256k1.c.o
Building C object libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-check.c.o
Building C object libscrypt/CMakeFiles/scrypt.dir/crypto-mcf.c.o
[ 50%] Building C object libscrypt/CMakeFiles/scrypt.dir/crypto-scrypt-saltgen.c.o
[ 60%] Building C object libscrypt/CMakeFiles/scrypt.dir/b64.c.o
[ 70%] [ 80%] Building C object libscrypt/CMakeFiles/scrypt.dir/sha256.c.o
Building C object libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-nosse.c.o
[ 90%] Building C object libscrypt/CMakeFiles/scrypt.dir/crypto_scrypt-hexconvert.c.o
[100%] Building C object libscrypt/CMakeFiles/scrypt.dir/slowequals.c.o
Linking C shared library libscrypt.so
[100%] Built target scrypt
Linking C static library libsecp256k1.a
[100%] Built target secp256k1
ETHBUILD - INFO: Starting build of libweb3core for requested project solidity.
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- boost headers: /usr/include
-- boost lib : /usr/lib/x86_64-linux-gnu/libboost_thread.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;/usr/lib/x86_64-linux-gnu/libboost_chrono.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so;/usr/lib/x86_64-linux-gnu/libboost_program_options.so;/usr/lib/x86_64-linux-gnu/libboost_random.so;/usr/lib/x86_64-linux-gnu/libpthread.so
------------------------------------------------------------------------
-- Configuring dev
------------------------------------------------------------------------
-- CMake Version 3.0.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- PROFILING Profiling support OFF
-- PARANOID - OFF
-- MINIUPNPC - ON
------------------------------------------------------------- components
-- TESTS Build tests ON
-- TOOLS Build tools ON
------------------------------------------------------------------------
-- Found jsoncpp: /usr/lib/libjsoncpp.so
-- JsonCpp headers: /usr/include/jsoncpp
-- JsonCpp lib : /usr/lib/libjsoncpp.so
-- Found leveldb: /usr/lib/x86_64-linux-gnu/libleveldb.so
-- LevelDB headers: /usr/include
-- LevelDB lib : /usr/lib/x86_64-linux-gnu/libleveldb.so
-- Found CryptoPP: /usr/include (found suitable version "5.6.2", minimum required is "5.6.2")
-- CryptoPP headers: /usr/include
-- CryptoPP lib : /usr/lib/libcryptopp.a
-- Found miniupnpc: /usr/lib/x86_64-linux-gnu/libminiupnpc.so
-- miniupnpc headers: /usr/include
-- miniupnpc lib : /usr/lib/x86_64-linux-gnu/libminiupnpc.so
./test.cpp./overlaydb.cpp./memorydb.cpp./..//./FixedHash.cpp./..//./Base36.cpp./..//./core.cpp./..//./CommonJS.cpp./..//./RangeMask.cpp./..//./rlp.cpp./..//./SecretStore.cpp./..//./crypto.cpp./..//./trie.cpp./..//./AES.cpp./..//./hexPrefix.cpp./..//./MemTrie.cpp./..//./peer.cpp./..//./eip-8.cpp./..//./rlpx.cpp./..//./capability.cpp./..//./net.cpp
-- Configuring done
CMake Error at test/CMakeLists.txt:21 (add_executable):
Cannot find source file:
./.././FixedHash.cpp
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
-- Build files have been written to: /home/user/log
ETHBUILD - ERROR: cmake configure phase for repository "libweb3core" failed.
Редактировать:
После установки всех зависимостей и выполнения шагов сборки:
$ cd webthree-umbrella
$ mkdir build && cd build
$ cmake .. -DCMAKE_PREFIX_PATH=/home/user/solidityDependencies/Qt/5.6/gcc_64
cmake завершается со следующими ошибками:
------------------------------------------------------------------------
-- Configuring ethereum
------------------------------------------------------------------------
-- CMake Version 3.0.2
-- CMAKE_BUILD_TYPE Build type RelWithDebInfo
-- TARGET_PLATFORM Target platform Linux
--------------------------------------------------------------- features
-- Hardware identification support
-- HTTP Request support
-- VMTRACE VM execution tracing OFF
-- PROFILING Profiling support OFF
-- FATDB Full database exploring ON
-- ROCKSDB Prefer rocksdb to leveldb OFF
-- OLYMPIC Default to the Olympic network OFF
-- PARANOID - OFF
------------------------------------------------------------- components
-- GUI Build GUI components ON
-- TESTS Build tests ON
-- ETHASHCL Build OpenCL components ON
-- EVMJIT Build LLVM-based JIT EVM OFF
-- SOLIDITY Build Solidity ON
------------------------------------------------------------------------
-- Looking for CL_VERSION_2_0
-- Looking for CL_VERSION_2_0 - not found
-- Looking for CL_VERSION_1_2
-- Looking for CL_VERSION_1_2 - found
-- Found OpenCL: /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 (found version "1.2")
-- OpenCL headers: /usr/include
-- OpenCL lib : /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
-- Cpuid headers: CPUID_INCLUDE_DIR-NOTFOUND
-- Cpuid lib : CPUID_LIBRARY-NOTFOUND
-- Found json_rpc_cpp: /usr/local/include (found suitable version "0.6.0", minimum required is "0.4")
-- json-rpc-cpp headers: /usr/local/include
-- json-rpc-cpp lib : /usr/local/lib/libjsonrpccpp-common.so;/usr/local/lib/libjsonrpccpp-server.so;/usr/local/lib/libjsonrpccpp-client.so
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so
-- curl headers: /usr/include
-- curl lib : /usr/lib/x86_64-linux-gnu/libcurl.so
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./createRandomTest.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./fuzzHelper.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./commonjs.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./icap.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./dagger.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./keymanager.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./difficulty.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./Transaction.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./GasPricer.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./State.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./TransactionQueue.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./BlockChainInsert.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./BlockChainTests.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./BlockChain.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./BlockQueue.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./Genesis.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./StateOriginal.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./AccountDiff.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./Block.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./TransactionTests.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./ClientBase.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./crypto.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./vm.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./natspec.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
CMake Error at libethereum/test/CMakeLists.txt:26 (file):
file STRINGS file
"/home/user/webthree-umbrella/libethereum/test/./..//./boost.cpp"
cannot be read.
CMake Error at libethereum/test/CMakeLists.txt:34 (add_test):
add_test given test NAME ""RandomTestCreationSuite"/&createRandomTest"
which already exists in this directory.
Редактировать:
Не создавать тестовые случаи; запуск cmake следующим образом:
$ cd webthree-umbrella
$ mkdir build && cd build
$ cmake .. -DTESTS=0 -DCMAKE_PREFIX_PATH=/path/to/Qt/5.4/gcc_64
производит следующий вывод:
/home/user/webthree-umbrella/libethereum/libethash/internal.c:244:49: error: array subscript is above array bounds [-Werror=array-bounds]
reduction = reduction * FNV_PRIME ^ mix->words[w + 1];
^
/home/user/webthree-umbrella/libethereum/libethash/internal.c:245:49: error: array subscript is above array bounds [-Werror=array-bounds]
reduction = reduction * FNV_PRIME ^ mix->words[w + 2];
^
/home/user/webthree-umbrella/libethereum/libethash/internal.c:246:49: error: array subscript is above array bounds [-Werror=array-bounds]
reduction = reduction * FNV_PRIME ^ mix->words[w + 3];
^
cc1: all warnings being treated as errors
libethereum/libethash/CMakeFiles/ethash.dir/build.make:77: recipe for target 'libethereum/libethash/CMakeFiles/ethash.dir/internal.c.o' failed
make[2]: *** [libethereum/libethash/CMakeFiles/ethash.dir/internal.c.o] Error 1
CMakeFiles/Makefile2:810: recipe for target 'libethereum/libethash/CMakeFiles/ethash.dir/all' failed
make[1]: *** [libethereum/libethash/CMakeFiles/ethash.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2
вы не можете использовать репозитории Ubuntu в Debian, потому что некоторые библиотеки, особенно libcrypto++-dev, несовместимы, вам придется скомпилировать проект самостоятельно, этот ответ может помочь
мой ответ здесь, в то время как он касается Mix IDE, конкретно объясняет, с какими проблемами вы можете столкнуться при компиляции всей этой ветки c ++ в Debian, а также может быть полезен
Успешно!
Мой мануал здесь:
https://gist.github.com/drandreaskrueger/912e704cfc86fd757277a5fd9bd372d4
Я столкнулся с подобными проблемами на Debian, немного поборолся с этим, а потом просто сдался и установил виртуальную машину Ubuntu в VirtualBox.
Работает отлично. (Предостережение: я запускаю только частную сеть, поэтому не могу комментировать, насколько болезненно синхронизировать блокчейн.)
евро10
Себи
евро10
Себи
евро10
cmake -DGUI=0
в вашем случае, чтобы не застрять в зависимостях Qt, не обрабатываемых Debian, если только вы не хотите установить Qt вручную, что я также объясняю в своем ответе Mix;)Себи
евро10
cmake .. -DCMAKE_PREFIX_PATH=/home/YOURUSER/Qt/5.4/gcc_64
или там, где вы установили Qt5.4Себи
евро10
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/home/MyUSER/Qt/5.4/gcc_64
один раз в папке сборки. Я не думаю, что флаг Debug имеет значение, хотя я удивлен, что у вас есть cmake 3.0.2, у меня 3.5.2, так что, может быть, обновите это?Себи
евро10