上一篇:【EOS快速入門】 第一篇 初識EOS
下一篇:【EOS快速入門】 第三篇 使用Docker安裝EOS
前言
本文以eosio_build.sh官方腳本的方式在Ubuntu 18.04 LTS Desktop版+VMWare10環(huán)境下安裝EOS最新版本(2018/07/01),根目錄為用戶家目錄~/
,克隆完EOS對應(yīng)的目錄為~/eos
,下一篇將介紹以Docker的方式來安裝EOS(推薦學(xué)習(xí)下一篇)。
一、需要的軟硬件環(huán)境
1、軟件
以下為官方推薦的系統(tǒng)環(huán)境:
- Centos 7
- Ubuntu 16.04 LTS (Ubuntu 16.10 推薦)
- Ubuntu 18.04 LTS(下載地址)
- Amazon 2017.09 或以上
- Fedora 25或以上 (Fedora 27 推薦)
- Mint 18
- MacOS Darwin 10.12 或以上 (MacOS 10.13.x 推薦)
2、硬件
- 8G內(nèi)存(官方建議而已,實(shí)際上用不了這么多具伍,可以在編譯腳本中修改繞過,4G驗證可行)
- 20G硬盤空間
更多詳情參見EOS官方wiki:https://github.com/EOSIO/eos/wiki
二圈驼、下載EOS安裝包
1人芽、克隆代碼庫
$ cd ~
$ git clone https://github.com/EOSIO/eos --recursive #VPN新加坡線路,可以直接下載绩脆,不用設(shè)置CDN映射
【神坑1】如果出現(xiàn)以下提示:
ssh: Could not resolve hostname github.com: Temporary failure in name resolution
可能原因是沒有找到最近的github cdn服務(wù)器萤厅。
解決辦法:
sudo vim /etc/hosts
在文件末尾加入一行:
192.30.253.113 github.com
#香港線路
如果克隆代碼時未帶--recursive參數(shù)或者子模塊克隆時報錯,那么可切換到項目路徑下面執(zhí)行如下命令衙伶,更新子模塊祈坠。
$ cd ~/eos
$ git submodule update --init --recursive
小提示:下載完成后,可以將
~/eos
文件夾打包備份矢劲,以便下次可以直接解壓編譯赦拘,節(jié)約時間。
三芬沉、開始編譯EOS
為了避免權(quán)限不夠躺同,導(dǎo)致中途執(zhí)行出錯,我們在腳本前面加上sudo丸逸。
$ cd ~/eos
$ sudo ./eosio_build.sh
【神坑2】如果出現(xiàn)如下提示:內(nèi)存不足7G蹋艺,
[sudo] simon 的密碼:
Beginning build version: 1.2
2018年 07月 01日 星期日 10:49:30 UTC
User: root
git head id: 90fefdd12a4797e47890910f11dd7b60f1435ed4
Current branch: master
ARCHITECTURE: Linux
OS name: Ubuntu
OS Version: 18.04
CPU speed: 3292.429Mhz
CPU cores:
Physical Memory: 3933 Mgb
Disk install: /dev/sda1
Disk space total: 39G
Disk space available: 29G
Your system must have 7 or more Gigabytes of physical memory installed.
Exiting now.
解決辦法:
修改內(nèi)存限制方法:
找到~/eos/scripts/eosio_build_ubuntu.sh
(系統(tǒng)環(huán)境不同,腳本文件名不同)
打開文件黄刚,定位到27行if [ "${MEM_MEG}" -lt 7000 ]; then
數(shù)字修改成4000捎谨,即4G內(nèi)存,安裝前在VMWare10中可以將內(nèi)存設(shè)置成4G多一點(diǎn),因為剛好4G仍然有可能報內(nèi)存不足涛救。
修改硬盤空間限制方法:
打開~/eos/eosio_build.sh
畏邢,定位到52行:
DISK_MIN=20
單位:GB,一般不差硬盤空間检吆,所以不建議修改舒萎。
【神坑3】MongoDB安裝失敗,可能原因是git沒有克隆成功
Checking MongoDB installation.
Installing MongoDB 3.6.3.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:30 --:--:-- 0
curl: (28) Operation timed out after 30002 milliseconds with 0 out of 0 bytes received
Unable to download MongoDB at this time.
Exiting now.
解決辦法:
打開~/eos/scripts/eosio_build_ubuntu.sh
文件蹭沛,搜索Unable to download MongoDB at this time
臂寝,定位到錯誤提示行,依次將下列兩個安裝包手工下載至~/
家目錄:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.3.tgz
https://github.com/mongodb/mongo-c-driver/releases/download/1.9.3/mongo-c-driver-1.9.3.tar.gz
注釋掉208-213行摊灭,在213行后加入cp "${HOME}/mongodb-linux-x86_64-3.6.3.tgz" "${HOME}/opt/"
注釋掉282-291行咆贬,在291行后加入cp "${HOME}/mongo-c-driver-1.9.3.tar.gz" "${TEMP_DIR}/"
#注釋掉208-213行
#STATUS=$(curl -LO -w '%{http_code}' --connect-timeout 30 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.3.tgz)
#if [ "${STATUS}" -ne 200 ]; then
# printf "\\tUnable to download MongoDB at this time.\\n"
# printf "\\n\\tExiting now.\\n\\n"
# exit 1;
#fi
#增加一行
cp "${HOME}/mongodb-linux-x86_64-3.6.3.tgz" "${HOME}/opt/" #手工將文件包下載下來拷貝到家目錄~/
#注釋掉282-291行
# STATUS=$(curl -LO -w '%{http_code}' --connect-timeout 30 https://github.com/mongodb/mongo-c-driver/releases/download/1.9.3/mongo-c-driver-1.9.3.tar.gz)
# if [ "${STATUS}" -ne 200 ]; then
# if ! rm -f "${TEMP_DIR}/mongo-c-driver-1.9.3.tar.gz"
# then
# printf "\\n\\tUnable to remove file %s/mongo-c-driver-1.9.3.tar.gz.\\n" "${TEMP_DIR}"
# fi
# printf "\\tUnable to download MongoDB C driver at this time.\\n"
# printf "\\tExiting now.\\n\\n"
# exit 1;
# fi
#增加一行
cp "${HOME}/mongo-c-driver-1.9.3.tar.gz" "${TEMP_DIR}/" #手工將文件包下載下來拷貝到家目錄~/
【神坑4】MongoDB C driver無法完成編譯
該程序為 x86_64-pc-linux-gnu 編譯
報告錯誤到 <bug-make@gnu.org>
Error compiling MongoDB C driver.
Exiting now.
解決辦法:
打開腳本,定位到319行斟或,或搜索Error compiling MongoDB C driver.
經(jīng)查發(fā)現(xiàn)if ! make -j"${JOBS}"
中的JOBS值為空素征,原因是第7行CPU_CORE=$( lscpu | grep "^CPU(s)" | tr -s ' ' | cut -d\ -f2 || cut -d' ' -f2 )
沒有獲取到CPU的個數(shù)(奇葩了)集嵌,在第8行增加CPU_CORE=2
即可萝挤。
【神坑5】llvm編譯器安裝包克隆失敗
Checking for LLVM with WASM support.
Installing LLVM with WASM
正克隆到 'llvm'...
remote: Counting objects: 24803, done.
remote: Compressing objects: 100% (23960/23960), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: 過早的文件結(jié)束符(EOF)
fatal: index-pack 失敗
Unable to clone llvm repo @ https://github.com/llvm-mirror/llvm.git.
Exiting now.
解決辦法:
打開~/eos/scripts/eosio_build_ubuntu.sh
文件,注釋掉455-472行根欧,即從if ! mkdir "${TEMP_DIR}/llvm-compiler" 2>/dev/null
到fi
行怜珍。再執(zhí)行如下命令:
mkdir -p /tmp/llvm-compiler
cd /tmp/llvm-compiler
git clone --depth 1 --single-branch --branch release_40 https://github.com/llvm-mirror/llvm.git
擴(kuò)展閱讀:Ubuntu編譯安裝llvm+clang
在經(jīng)過190分鐘左右(去除中間處理坑的時間,網(wǎng)絡(luò)穩(wěn)定的情況下)凤粗,終于編譯完成酥泛,此次沒有踩到LLVM相關(guān)的坑。
編譯成功后顯示:
_______ _______ _______ _________ _______
( ____ \( ___ )( ____ \\__ __/( ___ )
| ( \/| ( ) || ( \/ ) ( | ( ) |
| (__ | | | || (_____ | | | | | |
| __) | | | |(_____ ) | | | | | |
| ( | | | | ) | | | | | | |
| (____/\| (___) |/\____) |___) (___| (___) |
(_______/(_______)\_______)\_______/(_______)
哈哈嫌拣,恭喜Simon柔袁,終于通關(guān)了~~~
EOSIO has been successfully built. 01:10:31
To verify your installation run the following commands:
export PATH=${HOME}/opt/mongodb/bin:$PATH
/home/simon/opt/mongodb/bin/mongod -f /home/simon/opt/mongodb/mongod.conf & cd /home/simon/eos/build; make test
For more information:
EOSIO website: https://eos.io
EOSIO Telegram channel @ https://t.me/EOSProject
EOSIO resources: https://eos.io/resources/
EOSIO Stack Exchange: https://eosio.stackexchange.com
EOSIO wiki: https://github.com/EOSIO/eos/wiki
四、安裝EOS
編譯完成后异逐,在EOSIO圖形下可以看到這幾個命令捶索,運(yùn)行完后,EOS即可安裝成功灰瞻!
cd ~/eos/build
sudo make install
export PATH=${HOME}/opt/mongodb/bin:$PATH
/home/simon/opt/mongodb/bin/mongod -f /home/simon/opt/mongodb/mongod.conf & cd /home/simon/eos/build; make test
五腥例、啟動單節(jié)點(diǎn)測試網(wǎng)絡(luò)
nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
六、測試
在瀏覽器地址欄訪問 http://localhost:8888/v1/chain/get_info
七酝润、附編譯EOS依賴列表
1. clang-4.0
2. lldb-4.0
3. libclang-4.0-dev
4. cmake
5. make
6. automake
7. libbz2-dev
8. libssl-dev
9. libgmp3-dev
10. autotools-dev
11. build-essential
12. libicu-dev
13. python2.7-dev
14. python3-dev
15. autoconf
16. libtool
17. curl
18. zlib1g-dev
19. doxygen
20. graphviz
安裝前也可以先裝依賴燎竖,運(yùn)行如下命令:
sudo apt-get install clang-4.0 lldb-4.0 libclang-4.0-dev cmake make automake libbz2-dev libssl-dev libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev python3-dev autoconf libtool zlib1g-dev doxygen graphviz
上一篇:【EOS快速入門】 第一篇 初識EOS
下一篇:【EOS快速入門】 第三篇 使用Docker安裝EOS
更多技術(shù)討論,請關(guān)注我們的知識星球: