Я получаю сообщение об ошибке, которое не могу объяснить попыткой запустить гем fxruby, собранный локально.
Основанием для этого является то, что гему fxruby нужны файлы разработки инструментария FOX, установленные для FOX версии 1.6, но системаЯ использую (Manjaro) только предоставляет FOX 1.7 в своем хранилище, поэтому я скачал исходный код FOX 1.6 с его домашнего сайта (www.fox-toolkit.org) и собрал его в своем каталоге HOME.
Iзатем побежал gem install fxruby --user-install
, и после длительного периода сбивания он наконец закончился, по-видимому, успешно, так как gem list
показывает fxruby (1.6.39)
.
Пока все хорошо.Но когда я запускаю программу ruby, содержащую require 'fox16'
, я получаю ошибку во время выполнения:
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
Так как же решить эту ошибку во время выполнения?