Ruby on rails 捆绑包安装--部署无法使用“gcc:权限被拒绝”

Ruby on rails 捆绑包安装--部署无法使用“gcc:权限被拒绝”,ruby-on-rails,ruby,capistrano,Ruby On Rails,Ruby,Capistrano,我一直在设置服务器以在其上运行Rails应用程序,最近开始配置Capistrano进行部署。部署本身似乎相当一致,但在尝试运行bundle安装-部署时失败。日志摘录: Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb creating Makefile make compiling crypt_blowfish.

我一直在设置服务器以在其上运行Rails应用程序,最近开始配置Capistrano进行部署。部署本身似乎相当一致,但在尝试运行bundle安装-部署时失败。日志摘录:

 Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
 /usr/local/bin/ruby extconf.rb
 creating Makefile
 make
 compiling crypt_blowfish.c
 make: execvp: gcc: Permission denied
 make: *** [crypt_blowfish.o] Error 127
 Gem files will remain installed in /home/.../public_html/v4/shared/bundle/ruby/2.0.0/gems/bcrypt-ruby-3.0.1 for inspection.
 Results logged to /home/.../public_html/v4/shared/bundle/ruby/2.0.0/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
 An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot
 continue.
 Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling.
值得一提的是,gem install bcrypt ruby-v“3.0.1”作为非root用户失败,即使具有sudo权限。它确实作为根用户工作

gem_make.out日志显示:

/usr/local/bin/ruby extconf.rb
creating Makefile

make
compiling crypt_blowfish.c
make: execvp: gcc: Permission denied
make: *** [crypt_blowfish.o] Error 127
拒绝许可。这很有趣,因为我认为这就是使用bundle安装-部署的要点。我到处都找了,没有找到任何有用的东西

我有一种感觉,这可能与ruby可能是作为root用户安装的这一事实有关。也就是说,当我到达服务器时,它已经安装好了。我尝试以非root用户的身份使用RVM重新安装ruby,但无论哪种方式,我都得到了相同的结果,并得到:

Searching for binary rubies, this might take some time.
Installing requirements for centos, might require sudo password.
Installing required packages: gcc-c++, libyaml-devel, libffi-devel...................................................................................
Error running 'requirements_centos_libs_install gcc-c++ libyaml-devel libffi-devel',
please read /home/.../.rvm/log/ruby-2.0.0-p247/1376056268_package_install_gcc-c++_libyaml-devel_libffi-devel.log
那里的日志上写着

Transaction Check Error:
  package libgcc-4.4.7-3.el6.x86_64 is already installed
  package glibc-2.12-1.107.el6_4.2.x86_64 is already installed
  package gmp-4.3.1-7.el6_2.2.x86_64 is already installed
  package mpfr-2.4.1-6.el6.x86_64 is already installed
  package nss-softokn-freebl-3.14.3-3.el6_4.x86_64 is already installed
  package libstdc++-4.4.7-3.el6.x86_64 is already installed
  package libffi-3.0.5-3.2.el6.x86_64 is already installed
  file /sbin/ldconfig from install of glibc-2.12-1.107.el6_4.2.x86_64 conflicts with file from package glibc-2.12-1.107.el6_4.2.i686
  file /sbin/sln from install of glibc-2.12-1.107.el6_4.2.x86_64 conflicts with file from package glibc-2.12-1.107.el6_4.2.i686
  file /usr/sbin/iconvconfig from install of glibc-2.12-1.107.el6_4.2.x86_64 conflicts with file from package glibc-2.12-1.107.el6_4.2.i686
长话短说,我有点不知所措

运行CentOS 6.4/cPanel


提前感谢您的帮助

您是否尝试过完全删除ruby并用rvm重新安装,而不是仅仅重新安装它?

找到了答案

事实证明,这里有几个问题:

无法在cPanel服务器上安装RVM 如果您不是cPanel服务器上的root用户,那么在没有sudo命令的情况下也无法安装gems。 我最终安装了ruby,作为这里讨论的用户,并且或多或少得到了我想要的

我需要进行sudo bundle安装-部署,才能真正让它工作,但除此之外,这对我来说是有效的

谢谢大家的帮助

您可以尝试通过以下方式修复rvm权限:

rvmsudo rvm cleanup all

从理论上讲,在使用rvm时决不需要sudo。

您尝试过sudo bundle安装-部署吗?尝试过,但没有成功。sudo-i bundle安装错误:未使用RVM Ruby,请先运行RVM use 2.0.0```sudo bundle安装sudo:bundle:command not found`谢谢!我已经尝试过了,但是我仍然得到了glibc-2.12-1.107.el6_4.2.x86_64包,等等。然后出现错误。尝试删除glibc-2.12-1.107.el6_4.2.i686并重新执行该过程。给出了一个go-错误:尝试删除受保护的yum,这将完全终止调用。