【EOS快速入門】第二篇 在Ubuntu中安裝EOS


上一篇:【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/nullfi行怜珍。再執(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)注我們的知識星球:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末要销,一起剝皮案震驚了整個濱河市构回,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖纤掸,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拨扶,死亡現(xiàn)場離奇詭異,居然都是意外死亡茁肠,警方通過查閱死者的電腦和手機(jī)患民,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來垦梆,“玉大人匹颤,你說我怎么就攤上這事⊥行桑” “怎么了印蓖?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長京腥。 經(jīng)常有香客問我赦肃,道長,這世上最難降的妖魔是什么公浪? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任他宛,我火速辦了婚禮,結(jié)果婚禮上欠气,老公的妹妹穿的比我還像新娘厅各。我一直安慰自己,他們只是感情好预柒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布队塘。 她就那樣靜靜地躺著,像睡著了一般宜鸯。 火紅的嫁衣襯著肌膚如雪憔古。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天淋袖,我揣著相機(jī)與錄音鸿市,去河邊找鬼。 笑死适贸,一個胖子當(dāng)著我的面吹牛灸芳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拜姿,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼烙样,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蕊肥?” 一聲冷哼從身側(cè)響起谒获,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蛤肌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后批狱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裸准,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年赔硫,在試婚紗的時候發(fā)現(xiàn)自己被綠了炒俱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡爪膊,死狀恐怖权悟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情推盛,我是刑警寧澤峦阁,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站耘成,受9級特大地震影響榔昔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瘪菌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一撒会、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧控嗜,春花似錦茧彤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惫谤。三九已至壁顶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溜歪,已是汗流浹背若专。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蝴猪,地道東北人调衰。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像自阱,于是被迫代替她去往敵國和親嚎莉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容