【发布时间】:2014-04-28 03:50:40
【问题描述】:
在初始配置后,有些命令必须以普通用户身份运行。我以为我可以使用单独的 shell 脚本和命令 su --login -c <command> vagrant 来做到这一点,但它没有从 .bashrc 获取用户的路径或其他环境设置。
例如:
#!/usr/bin/env bash
su --login -c "rbenv install 2.0.0-p353" vagrant
su --login -c "rbenv global 2.0.0-p353" vagrant
su --login -c "gem update --system" vagrant
su --login -c "yes | gem update" vagrant
su --login -c "gem install rdoc" vagrant
su --login -c "gem install rails pg" vagrant
有没有办法做到这一点?也许必须使用另一个配置工具(如 Puppet 或 Chef)来完成?我曾想过创建另一个以 .bashrc 为源的 shell 脚本,使用 :file 配置器将其复制到盒子中并执行类似的命令,但这似乎有点像 hack。
这样做的正确方法是什么?
【问题讨论】:
-
su -p将保留环境变量 - 这有帮助吗? -
@Vince 我认为在您的问题中提及有关使用 Ruby 安装构建
Vagrant框的问题将是完美的,添加Ruby标记并在问题标题上附加 Ruby 安装 像这样 => 执行 Ruby 安装在 Vagrant 配置期间以用户身份执行命令