1

Railsアプリケーションを実行するようにサーバーをセットアップしており、最近、展開用にCapistranoの構成を開始しました。デプロイ自体は順調に進んでいるように見えますが、実行しようとすると失敗しますbundle install --deployment。ログからの抜粋:

 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'ルート以外のユーザーとして失敗することです(sudo権限があっても)。root ユーザーとして機能します。

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 install --deployment。私はいたるところを見てきましたが、役立つものは何も見つかりませんでした。

おそらくrootユーザーとしてrubyがインストールされていることが関係しているのではないかと感じました。つまり、サーバーにアクセスしたときにはすでにインストールされていました。RVM を使用して ruby​​ を再インストールしようとしました (root 以外のユーザーとして、どちらの方法でも同じ結果が得られました)。

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 を実行しています。

助けてくれてありがとう!

4

3 に答える 3

0

再インストールする代わりに、ruby を完全に削除して rvm で再インストールしてみましたか?

于 2013-08-09T14:56:25.000 に答える
0

理解した。

ここでいくつかのことが問題であることがわかりました。

  1. cPanel サーバーに RVM をインストールすることはできません
  2. sudoroot ユーザーでない場合 (cPanel サーバー上) 、コマンドなしで gem をインストールすることもできません。

ここで問題のユーザーとしてルビーをインストールすることになり(このガイドに従って)、多かれ少なかれ私が望むものを手に入れました。

私はそれを本当に機能させるためにやる必要がありsudo bundle install --deploymentましたが、それはさておき、それが私にとってうまくいったことです.

皆様、ご協力ありがとうございました!

于 2013-08-14T23:28:48.540 に答える