Windows上“Vagrant配合VirtualBox搭建Fabric本地开发环境”中遇到的坑
为了在自己本地windows机器上搭建一个hyperledger fabric环境以便于开发测试,以github上官方fabric项目下的devenv为例用Vagrant配合VirtualBox来搭建,在此过程中遇到了很多的坑,记得很清楚是从4月17日(周二)开始到4月21日(周六)晚才搞好。为了对自己花了近一周时间搭建并逐步解决各种“坑”的纪念,决定写篇博文记录一下,也希望可以帮助到刚刚入门的新手同学
1. 最大的“坑”
我是周二开始搭建的,结果在周二晚上出现了第一个问题,就是ubuntu虚拟机执行sudo apt-get update
的时候死活不成功,要么提示是否需要认证NOSPLIT,要么提示NODATA,总之各种错,就这个问题一直从周二耗到了周五下班,其间用过代理,win8系统升级到win10...几乎崩溃,无奈之下只得把笔记本背回家继续,结果周五晚上回家之后同样的命令一试刷刷刷开始执行ing,Duang~~~第一个问题就这么解决了
2. 正常网络情况下会出现apt update超时情况
解决方法
# 备份sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑sources.list
vi /etc/apt/sources.list
ggdG # 全部删除当前内容
# 粘贴以下阿里源
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
3. 默认安装docker时候,国外的仓库下载不了
解决方法
# 删除默认的docker.list否则可能会出现docker源连接超时情况
sudo rm -rf /etc/apt/sources.list.d/docker.list
这里顺便给出docker的安装步骤
- (1) Prep apt-get for docker install
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
- (2) InstallGPG certificates
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- (3) Add docker repository
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- (4) update and install docker-ce
sudo apt-get update -y
sudo apt-get install -y docker-ce
4. 在执行vagrant provision的过程中可能会出现如下报错信息
4.1 连接超时
Fail connect to github-production-release-asset-2e65be.s3.amazonaws.com:443
解决方法
ping github-production-release-asset-2e65be.s3.amazonaws.com 查看ping返回的ip:52.216.85.27
在linux的/etc/hosts上添加上以下一句
52.216.85.27 github-production-release-asset-2e65be.s3.amazonaws.com
4.2 下载错误
default: curl: (56) GnuTLS recv error (-54): Error in the pull function.
解决方法
这是由于git默认缓存大小不足导致的,使用下面的命令增加缓存大小
sudo git config --global http.postBuffer 2000000000
5. 执行setup.sh下载gradle后执行“ln -s /opt/gradle-2.12/bin/gradle /usr/bin”出错
failed to create symbolic link '/usr/bin/gradle'
解决方法
sudo rm -rf /usr/bin/gradle
6.在window本地编辑器修改setup.sh后运行vagrant up出错
/tmp/vagrant-shell: ./setup.sh: /bin/bash^M: bad interpreter: No such file or directory
解决方法
dos2unix ./setup.sh