目錄
Tips:配置過程出現的各種問題及解決方案跟在相應步驟的后面。
1. 安裝相關依賴
1. 更換鏡像源
- 官方鏡像下東西特別卡,我們把鏡像換成國內的。這個比較簡單,參考ubuntu更改鏡像源(軟件源),換完以后執行
sudo apt upgrade
sudo apt update
更新一下。
2. 安裝git
- 安裝命令:
sudo apt install git
3. 安裝curl
- 一般用安裝命令:
sudo apt install curl
下不到我們要的curl,直接手動安裝openssl和curl(安裝順序不能反,先openssl再curl,否則curl依然不支持https)步驟如下: - 安裝openssl
wget https://www.openssl.org/source/old/1.1.0/openssl-1.1.0f.tar.gz //下載安裝包
tar -zxvf openssl-1.1.of.tar.gz
cd openssl
./config enable-shared
make
make install
openssl verison //出現版本號即成功
- 安裝curl
wget https://curl.haxx.se/download/curl-7.54.1.tar.gz
tar -zxvf curl-7.54.1.tar.gz
cd curl-7.54.1
./configure --with-ssl=/usr/local/ssl
make
make install
curl -V //出現版本號並且protocols支持https說明配置curl成功
- 問題1:出現
curl: symbol lookup error: curl: undefined symbol: curl_mime_free
錯誤提示 - 問題1解決方案:
sudo apt-get install libcurl3
,下載成功就好了。下載過程中如果提示包依賴沖突,用sudo aptitude install libcurl3
替代,選擇第二個降級方案(沒有aptitude就下一個,同樣的道理)。再不行就把所有的庫依賴升級試試看sudo apt-get upgrade
。
4. 安裝docker、docker-compose及鏡像加速器
- 使用apt-get下載的docker版本很低,所以我們還是手動安裝:
wget -qO- https://get.docker.com/ | sh //獲取最新docker安裝包
docker --version //查看版本號
sudo usermod -aG docker 用戶名 //加入docker用戶組
sudo service docker start //啟動docker后台服務
sudo aptitude install docker-compose //用aptitiude下載避免依賴沖突
docker-compose--version //查看版本號
sudo chmod +x /usr/share/doc/docker-compose //為其它用戶開放權限
下完docker趁着它還熱乎,我們配下鏡像加速器,為拉取鏡像文件做准備(否則進度條會龜速前進):
vim /etc/docker/daemon.json
把原來內容都刪掉,換成
{ "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] }
//保存退出,重啟服務
systemctl daemon-reload
systemctl restart docker
還有一種加速方案,也可行,二選一吧Ubuntu解決Docker下載太慢解決方法
- 問題1:docker安裝成功,啟動失敗,報了一大串錯誤
joinApp2 systemd[1]: start request repeated too quickly for docker.service
joinApp2 systemd[1]: Failed to start Docker Application Container Engine.
joinApp2 systemd[1]: Unit docker.service entered failed state.
joinApp2 systemd[1]: docker.service failed.
- 問題1解決方案:這種情況一般是daemon.json的格式問題,把它改好。
vim /etc/docker/daemon.json
把原來內容刪掉,換成
{ "graph": "/mnt/docker-data", "storage-driver": "overlay" }
或者直接換成加速的
{ "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] }
//保存退出,重啟服務
systemctl daemon-reload
systemctl restart docker
5. 安裝golang
手動安裝並配置環境變量:
wget https://dl.google.com/go/go1.11.11.linux-amd64.tar.gz
sudo tar -zxvf go1.11.11.linux-amd64.tar.gz -C /usr/local/
sudo gedit /etc/profile
在profile文件最后添加
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile
go version //檢查版本號
2. 拉取fabric源碼
//創建並進入目錄
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
//拉取 fabric 源碼:
git clone https://github.com/hyperledger/fabric.git
//查看並切換當前分支
cd ./fabric
git branch -a
git checkout vx.x.x //x.x.x為最新分支
- 問題1:git clone 出現
fatal: unable to access 'https://github
- 問題1解決方案:把https改成git后再試一下
3. 拉取鏡像文件等
cd ~/go/src/github.com/hyperledger/fabric
mv scripts/bootstrap.sh . //把scripts下bootstrap.sh腳本文件復制到同級目錄下
./bootstrap.sh //運行腳本,腳本第二步是拉取docker鏡像
- 問題1:Docker獲取鏡像報錯
docker: Error response from daemon
- 問題1解決方案:
dig @114.114.114.114 registry-1.docker.io //找到可用IP
//修改/etc/hosts中docker.io的可用ip
34.197.189.129 registry-1.docker.io
//保存退出后嘗試
docker search sameersbn
- 如果出現下圖,說明成功,再運行腳本文件。要是依然報錯,再多換幾個IP試試,IP可能發生變動。
- 要是docker修好了,但運行腳本依然下不到鏡像,可以使用下面命令一個個pull你所需要的鏡像文件:
sudo docker pull 你要的鏡像名稱
docker images //查看已有鏡像
4. 啟動網絡
- 啟動網絡:
cd ./fabric-samples/first-network/
$ ./byfn.sh up
- 關閉網絡:
./byfn.sh down
- 成功,我快樂了。
5. 常見問題解決(建議先看)
- 問題1:使用git克隆源碼的時候報錯
git fatal: Out of memory, malloc failed
- 問題1解決方案:內存不足,需要創建swap交換空間。具體參考https://blog.csdn.net/JinfeiWang/article/details/50133727
- 問題2:使用apt下載各類軟件出現包依賴沖突和不匹配
- 問題2解決方案:下載安裝aptitude,它在處理依賴問題上比apt-get更好。使用
sudo apt install aptitude
下載aptitude,再使用sudo aptitude install xxx
下載出現沖突的依賴包,他會給出各種方案。否定給出的第一個解決方案(保持不變),選擇第二個解決方案(降級使版本一致)。相信我,aptitude超好用[真誠] - 問題3:使用git clone報錯
fatal: unable to access 'https://github
(通用) - 問題3解決方案:把https改成git后再試一下
6. 參考博客
- Hyperledger Fabric1.4 安裝:這個博客把腳本文件講的很清楚,第三步運行bootstrap.sh有問題可以借鑒一下,我是參照他的解析解決的問題。
- curl庫支持https
- ubuntu16.04 配置阿里雲docker鏡像加速器