我在我的一些項目中使用了libxml-ruby
和libxslt-ruby
。在目標系統上,我使用debian 7.4版本中的ruby 1.9.3p194
。 Bundler通過rubygems安裝。將libxslt與bundler和debian打包的ruby一起使用1.9.3
當我require "xslt"
發生這種情況:
/var/lib/gems/1.9.1/gems/libxslt-ruby-1.1.1/lib/libxslt.rb:11:in `require': libxml_ruby.so: cannot open shared object file: No such file or directory - /var/lib/gems/1.9.1/gems/libxslt-ruby-1.1.1/lib/libxslt_ruby.so (LoadError)
from /var/lib/gems/1.9.1/gems/libxslt-ruby-1.1.1/lib/libxslt.rb:11:in `rescue in <top (required)>'
from /var/lib/gems/1.9.1/gems/libxslt-ruby-1.1.1/lib/libxslt.rb:7:in `<top (required)>'
from /var/lib/gems/1.9.1/gems/libxslt-ruby-1.1.1/lib/xslt.rb:11:in `require'
from /var/lib/gems/1.9.1/gems/libxslt-ruby-1.1.1/lib/xslt.rb:11:in `<top (required)>'
from test.rb:1:in `require'
from test.rb:1:in `<main>'
的test.rb
:
的Gemfile中:
source "https://rubygems.org"
gem "libxml-ruby"
gem "libxslt-ruby"
的命令是bundle exec ruby test.rb
或ruby test.rb
如寶石被安裝到系統目錄。
向bundler傳遞--path
的行爲方式相同。
我已經設置了測試項目https://github.com/krissi/test-xslt-require。爲了便於複製,請使用(清潔)vagrantbox chef/debian-7.4
,並按照這個命令:
sudo apt-get update
sudo apt-get install git
git clone https://github.com/krissi/test-xslt-require
cd test-xslt-require
sudo ./install.sh
./run.sh
作爲一種變通方法人們可以設置LD_LIBRARY_PATH
到libxml-ruby/lib
:
LD_LIBRARY_PATH="/var/lib/gems/1.9.1/gems/libxml-ruby-2.7.0/lib" ./run.sh
我失去了這個重要的東西?我想問問維護人員關於這個問題,但我真的不知道這可能是誰:debian,rubygems,ruby,libxml,libxslt?
長話短說:我很感謝您的任何幫助或提示。
由於提前, krissi
的which ruby
輸出:
/usr/bin/ruby
的gem env
輸出:
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.23
- RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-linux]
- INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
- RUBY EXECUTABLE: /usr/bin/ruby1.9.1
- EXECUTABLE DIRECTORY: /usr/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /var/lib/gems/1.9.1
- /home/vagrant/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
的gem list
輸出:
*** LOCAL GEMS ***
bundler (1.7.2)
libxml-ruby (2.7.0)
libxslt-ruby (1.1.1)
你可以發佈命令輸出命令是:** which ruby ** and ** gem env | grep'RUBY EXECUTABLE'** – 2014-09-09 07:01:49
還讓我們知道您使用的是哪個寶石版本。 – 2014-09-09 07:27:16
添加了請求的信息 – krissi 2014-09-09 08:08:19