chruby, а Ruby gems "не может загрузить такой файл -" - PullRequest
0 голосов
/ 08 ноября 2018

Я недавно перешел на новый iMac и сделал чистую установку. Следовательно, не все работает так, как на моем MBP. Я сделал несколько изменений, предложенных @awsmsce, и включил их в следующее. Все еще есть проблема.

Сценарий ruby, использующий gem mini_exiftool, выдает ошибку при запуске из TextMate (та же ошибка при запуске из командной строки). Вот начало сценария.

#!/usr/bin/env ruby
require 'rubygems'
require 'fileutils'
include FileUtils
require 'find'
require 'yaml'
require "time"
require 'shellwords'
require 'mini_exiftool'

отчеты TextMate LoadError: cannot load such file — mini_exiftool и

method require in kernel_require.rb at line 55

Путь к kernel_require.rb равен /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb, что, возможно, указывает на проблему. Не работает тот же рубин, что и у драгоценных камней. Но с изменениями, рекомендованными @awsmsce, теперь в /Users/gscar/.rubies/ruby-2.5.1/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb, так что это не проблема

Терминал chruby >> * ruby-2.5.1

ruby -v >> ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]

gem list >> mini_exiftool (2.9.0)

exiftool -ver >> 11.17

TextMate PATH переменная $PATH:$HOME/.rubies/ruby-2.5.1/bin:$HOME/.rubies/ruby-2.5.1/shims:/usr/local/bin:/usr/texbin:/opt/local/bin

system('gem env')

RubyGems Environment:
  - RUBYGEMS VERSION: 2.5.2.3
  - RUBY VERSION: 2.3.7 (2018-03-28 patchlevel 456) [universal.x86_64-darwin17]
  - INSTALLATION DIRECTORY: /Users/gscar/.gem/ruby/2.5.1/gems
  - USER INSTALLATION DIRECTORY: /Users/gscar/.gem/ruby/2.3.0
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/gscar/.gem/ruby/2.5.1/gems/bin
  - SPEC CACHE DIRECTORY: /Users/gscar/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-17
  - GEM PATHS:
     - /Users/gscar/.gem/ruby/2.5.1/gems
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Users/gscar/Library/Application Support/TextMate/Managed/Bundles/Bundle Support.tmbundle/Support/shared/bin
     - /Users/gscar/.rubies/ruby-2.5.1/bin
     - /Users/gscar/.rubies/ruby-2.5.1/shims
     - /usr/local/bin
     - /usr/texbin
     - /opt/local/bin

Gem.path: ["/Users/gscar/.gem/ruby/2.5.1/gems"]

Я обновляю это после месяца поездки и все еще нуждаюсь в этом сценарии. Я изменил порядок драгоценных камней, показывает, что некоторые загружают, но не другие. gem list показывает mini_exiftool (2.9.0) среди других. Если я жестко запишу код require '/Users/gscar/.gem/ruby/2.5.1/gems/mini_exiftool-2.9.0/lib/mini_exiftool.rb', то скрипт завершится неудачно аналогично для другого гема.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Теперь это работает. К сожалению, я не совсем уверен, что это было за исправление, и, возможно, было бы несправедливо называть это ответом по этой причине, и что у меня все еще есть проблемы при запуске сценариев Ruby из TextMate. Я на

chruby ruby-2.6.2

TM_PATH - это $HOME/.rubies/ruby-2.6.2/bin/ruby

PATH является $PATH:/usr/local/bin:/usr/texbin:/opt/local/bin

TM_RUBY является $HOME/.rubies/ruby-2.6.2/bin/ruby

Работает с GEM_PATH и GEM_HOME не задано. Однако, когда они установлены, я получаю эту ошибку:

/Library/Ruby/Site/2.3.0/rubygems.rb:283:in `find_spec_for_exe': can't find gem rspec-core (>= 0.a) with executable rspec (Gem::GemNotFoundException)
from /Library/Ruby/Site/2.3.0/rubygems.rb:262:in `bin_path'
from /usr/local/bin/rspec:22:in `<main>'` 

, что, скорее всего, связано с моей настройкой PATH. Я публикую это сейчас, так как вернулась к вопросу. Я могу запустить сценарии Ruby из командной строки, что является обходным решением.

0 голосов
/ 08 ноября 2018

Хорошо, я думаю, что у меня есть это сейчас. Собираюсь качаться:

установите ваш PATH на следующее:

export PATH=$PATH:$HOME/.rubies/ruby-2.5.1/bin:$HOME/.rubies/ruby-2.5.1/shims:/usr/local/bin:/usr/texbin:/opt/local/bin

установите переменную TM_RUBY на:

$HOME/.rubies/ruby-2.5.1/bin/ruby

Я думаю, что в настоящее время к пути добавлен рубин, но не двоичные файлы или прокладки.

Если это не работает, попробуйте puts Gem.path и убедитесь, что он указывает на правильное местоположение.

Убедитесь, что камень, который вы пытаетесь назвать, находится там, где вы ожидаете gem which mini_exiftool

Если они не правы, возможно, вам придется установить эти

export GEM_HOME=[WHATEVER YOUR GEM DIR IS] export GEM_PATH=[WHATEVER YOUR GEM DIR IS]

...