私はpHashライブラリをコンパイルする必要があるphashionをインストールしようとしています。 pHashはlibjpegに依存します。どのように宝石のインストールプロセスを続けることができます
私はMacPorts経由でlibjpegをインストールしましたが、gem install phashion
を実行すると、不足しているlibjpegについて不平を言ってプロセスが失敗します。
これは私が取得エラーです:
gcc -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -I/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/include -L/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/lib -x c++ -c phashion_ext.c
cc -arch i386 -arch x86_64 -pipe -bundle -undefined dynamic_lookup -o phashion_ext.bundle phashion_ext.o -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/lib -L/Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/lib -L. -arch i386 -arch x86_64 -lruby -lpthread -lpHash_gem -lstdc++ -ljpeg
ld: library not found for -ljpeg
collect2: ld returned 1 exit status
ld: library not found for -ljpeg
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//ccCwUAM1.out (No such file or directory)
make: *** [phashion_ext.bundle] Error 1
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/phashion-1.0.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/phashion-1.0.4/ext/phashion_ext/gem_make.out
のlibjpegは/opt/local/lib
です。そこで、私はgemのmakefileを見て、ldflagsにライブラリパスを追加しました。今すぐ実行してライブラリをコンパイルするようだ。
今何ですか? gem install phashion
を再度実行すると、私のmakefileが上書きされます。
どうすれば宝石の変更を失うことなくインストールプロセスを再開できますか?
PS:私は宝石のディレクトリに変更してrake
を実行しようとしましたが、それは、このエラーメッセージで失敗します。
WARNING: rake-compiler found compiled files in 'ext/phashion_ext' directory. Please remove them.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -I"lib:lib:test" -I"/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib" "/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb" "test/**/test_*.rb"
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `gem_original_require': no such file to load -- phashion_ext (LoadError)
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require'
from ./lib/phashion.rb:33
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:29:in `require'
from ./test/helper.rb:3
from /Library/Ruby/Gems/1.8/gems/phashion-1.0.4/test/test_phashion.rb:1:in `require'
from /Library/Ruby/Gems/1.8/gems/phashion-1.0.4/test/test_phashion.rb:1
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:10:in `require'
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:10
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9:in `each'
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:9
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4:in `select'
from /Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb:4
rake aborted!
ダイアログ。私の提案: 'gem uninstall phasion'と' gem install phasion' ...あなたはネイティブ拡張の構築というメッセージを受け取りますか?これはしばらく時間がかかります...? – hagope
はい、宝石を取り出して再インストールしましたが運はありません。 OSバージョン(Lion 10.7.3)を入手して追加したときにエラーが発生したため、質問を更新しました。 libjpegをインストールする必要がありましたか?MacPorts(またはBrew)を使用しましたか? – Wukerplank