首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流浪者提供的外壳,自动安装Linuxbrew命令

流浪者提供的外壳,自动安装Linuxbrew命令
EN

Stack Overflow用户
提问于 2016-02-03 12:05:57
回答 2查看 653关注 0票数 0

我用的是这个文件:

代码语言:javascript
复制
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "ubuntu/trusty64"

  ...bla bla bla bla bla...

    config.vm.provision "shell", path: "provision/setup.sh"

end

由于我想安装Linuxbrew,所以在我的provision/setup.sh中有以下代码:

代码语言:javascript
复制
sudo apt-get update

sudo apt-get install --yes git-all libreadline-dev build-essential curl git m4 python-setuptools ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

# or maybe also this: (but nothing anyway):
# sudo git clone https://github.com/Linuxbrew/linuxbrew.git /home/vagrant/.linuxbrew

export PATH=$HOME/.linuxbrew/bin:$PATH

brew doctor

但我发现了错误:

代码语言:javascript
复制
==> default: /tmp/vagrant-shell: line 35: brew: command not found

怎么解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-03 13:28:26

有一个问题是如何运行您的脚本--因为您使用config.vm.provision "shell", path: "provision/setup.sh"运行,流浪者将以root用户的身份运行它,因此您不需要sudo

但是,您应该以用户的身份运行它,config.vm.provision "shell", path: "provision/setup.sh", privileged: false也应该这样做。

此外,导出将不会保存到以后的会话中,因此将其添加到.bashrc文件中,类似于echo PATH=$HOME/.linuxbrew/bin:$PATH >> .bashrc,这样最终的脚本将类似于

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install --yes git-all libreadline-dev build-essential curl git m4 python-setuptools ruby texinfo libbz2-dev libcurl4-openssl-dev libexpat-dev libncurses-dev zlib1g-dev

yes | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

echo PATH=$HOME/.linuxbrew/bin:$PATH >> ~/.bashrc    
export PATH=$HOME/.linuxbrew/bin:$PATH
brew doctor

如果从脚本运行brew,则需要导出,但请注意,brew医生可能会以警告结束而不返回,因此您可能最终会看到流浪消息

代码语言:javascript
复制
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

最后,对于原始错误,@BMW获得所有的信用,在命令中添加yes |将默认问题的enter键

票数 1
EN

Stack Overflow用户

发布于 2016-02-03 12:28:53

让我猜猜。在ruby命令之前添加yes

代码语言:javascript
复制
yes | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35176614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档