天我也遇到了这个问题,原因是你的 vagrant 版本跟你的 virtualbox 版本不匹配,解决的方法是,更换 virtualbox 的版本。我的 vagrant 版本是 1.8.4 ,virtualbox 的版本是 5.1.2,在 vagrant up 的时候就会提示你说的错误。我把 virtualbox 的版本换成了 virtualbox 5.0.26,再次启动就可以了。
https://hyperledgercn.github.io/hyperledgerDocs/write_first_app_zh/
https://talk.ninghao.net/t/vagrant-up-no-usable-default-provider/4001/5
https://yq.aliyun.com/articles/61947
https://github.com/chef/bento
6. 下载fabric对应的Vagrant box镜像
进入devenv
目录,官方代码自带了Vagrantfile
和setup.sh
,这里我根据自己的实际情况进行了替换,建议vi官方自带的Vagrantfile,将config.vm.box = "ubuntu/xenial64"
配置值改为hyperledger/fabric-baseimage
,这个版本我理解应该天生就是为hyperledger-fabric而准备的镜像,当然需要注意的一点是因为文件较大(我下的是0.3.0版本,大约938M)且需要“***”,所以最好提前先下载好,这里给出下载地址 https://vagrantcloud.com/hyperledger/boxes/fabric-baseimage/versions/0.3.0/providers/virtualbox.box 将下载好的文件重命名为virtualbox.box。
7. 添加box到Vagrant中并启动
运行如下vagrant命令将刚下载的镜像添加到vagrant box中并启动由vagrant托管的带有指定镜像(注意:box名称要与Vagrantfile文件中的config.vm.box属性值一致)的virtualbox虚拟机。
vagrant box add ./virtualbox.box --name hyperledger/fabric-baseimage
vagrant box list # 查看vagrant列表中已有的box
vagrant up # 启动vagrant