我正在尝试在Debian Wheezy上安装GitLab并遇到一个我不明白的问题。
关注版本5.0的install guide:
/home/git/gitlab$ sudo -u git -H bundle install --deployment --without development test postgres sudo: unable to execute /usr/local/bin/bundle: No such file or directory
我以普通用户身份运行(sudo
和rvm
组),git
用户不是sudo
。
我认为第2步中的行sudo gem install bundler
没有授予git
用户正确执行包的权限,但我不知道如何解决这个问题。
我可能做错了但却无法弄清楚它是什么,因为我试图尽可能地遵守标准说明。
有关此问题的任何线索?谢谢,我失去了希望......
有关信息,我已经写过GitLab邮件列表,但是没有得到任何答案。此外,上次我在ServerFault上问了类似的东西时,我被建议在StackOverflow上发帖...因此这个问题:)
答案 0 :(得分:1)
当我
$ which bundle
时,我得到/usr/local/rvm/gems/ruby-1.9.3-p392/bin/bundle
已使用git
标记创建--disabled-login
用户,因此我无法以git
身份登录以运行bundle
。
当我$ sudo -u git bundle
时,我得到了
sudo: unable to execute /usr/local/bin/bundle: No such file or directory
这意味着git用户的PATH中没有/usr/local/rvm/gems/ruby-1.9.3-p392/bin,因此您无法修改其.profile
或.bashrc
--disabled-login
旗帜。
似乎运行
sudo -i -u git bundle
而不是sudo -u git bundle
可以解决问题
这是最安全的路由,并将以git的形式执行命令,但会使用用户{{1}中PATH
和.profile
中定义的.bashrc
首先模拟初始登录}}。
有关详情,请参阅“How does sudo
search the path for executable?”。
答案 1 :(得分:0)
在从6.4升级到7.7后我的本地机器上出现了这样的问题。
ruby的编译是在root帐户下进行的。
因此需要权限来读取已编译的ruby和已安装的bundle。
chmod ugo+rx /usr/local/bin/bundle
chmod -R ugo+rX /usr/local/lib/ruby/
在生产模式中你可能会更严格。