我正在尝试将rails应用程序部署到我的Ubuntu服务器上。
我已经安装了rvm
,现在我正在尝试使用bundler
来部署我的应用。
但是我得到了这个:
/usr/local/rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir': Permission denied - /myroot/repos/myapp/.bundle (Errno::EACCES)
首先,用户正在执行整个rvm
命令?我的意思是我的路径中有rake
,bundle
等,但我不确切知道哪个用户正在执行它们。
作为第一个意图,我尝试更改/myapp
文件夹中所有文件的权限。给他们root:rvm
,但没有运气。
现在,如果我尝试以sudo
(或实际上任何ruby命令)运行bundle命令,我会收到与此类似的错误:
/usr/local/rvm/gems/ruby-1.9.3-p374@global/bin/ruby_noexec_wrapper
所以,稍微解释一下包装器是什么以及为什么它找不到ruby会帮助我理解这种错误。
答案 0 :(得分:0)
建议不要将sudo
用于rvm
,ruby
以及任何RubyGems安装的命令sudo
默认情况下丢失用于配置RVM / Ruby / RubyGems的环境变量
如果您真的需要使用sudo
- 请使用rvmsudo
- 但我需要提醒您它会提升您的系统暴露权限,这会带来安全风险。