我收到一个错误,我无法解释尝试运行本地构建的fxruby gem。
此操作的背景是fxruby gem需要为FOX 1.6版安装的FOX工具包开发文件,但是我正在使用的系统(Manjaro)在其存储库中仅提供了FOX 1.7,因此我从以下位置下载了FOX 1.6源代码它的主页(www.fox-toolkit.org)并将其构建在我的HOME目录下。
然后我跑了gem install fxruby --user-install
,经过长时间的搅动,终于成功完成了,显然是成功的,因为gem list
显示了fxruby (1.6.39)
。
到目前为止,太好了。但是,当我运行包含require 'fox16'
的ruby程序时,出现运行时错误:
193 maia$ ./recepsum
Traceback (most recent call last):
6: from ./recepsum:13:in `<main>'
5: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
4: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
3: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
2: from /home/william/.gem/ruby/2.5.0/gems/fxruby-1.6.39/lib/fox16.rb:2:in `<top (required)>'
1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': libFOX-1.6.so.0: cannot open shared object file: No such file or directory - /home/william/.gem/ruby/2.5.0/gems/fxruby-1.6.39/lib/fox16_c.so (LoadError)
那么,此共享库文件是否存在?显然是:
194 maia$ ls -l /home/william/.gem/ruby/2.5.0/gems/fxruby-1.6.39/lib/fox16_c.so
-rwxr-xr-x 1 william william 11747288 Sep 24 17:37 /home/william/.gem/ruby/2.5.0/gems/fxruby-1.6.39/lib/fox16_c.so
据我所知,gem环境看起来还不错:
195 maia$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.7
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /home/william/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /home/william/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/2.5.0
- /home/william/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--document rdoc,ri --user-install"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/bin
- /usr/bin
- /bin
- /usr/local/sbin
- /usr/lib/jvm/default/bin
- /usr/bin/site_perl
- /usr/bin/vendor_perl
- /usr/bin/core_perl
- /home/william/bin
- /home/william/.gem/ruby/2.5.0/bin
那么如何解决此运行时错误?