Местоположения драгоценных камней в macOS с настройками chruby и TextMate

У меня возникли проблемы с правильной работой Ruby gems с TextMate (TM) и chruby на macOS.

Чистая установка Mojave (сейчас v10.14.4) на iMac 2017 года выпуска около шести месяцев назад.

Пытаюсь использовать Ruby-2.6.2, хотя были установлены более ранние версии. Система Ruby v2.3.7

Я нашел драгоценные камни как минимум в трех местах:

~/.rubies/ruby-2.6.2/lib/ruby/gems/2.6.0/gems/
~/.gem/ruby/2.6.2/gems/
/Library/Ruby/Gems/2.3.0/gems/

TextMate полагается на свои настройки для местоположений gem и Ruby. Для начала у меня есть следующее: Местоположения драгоценных камней в macOS с настройками chruby и TextMate GEM_HOME не установлен, потому что я не понимаю, зачем это нужно, хотя я часто читал, чтобы установить его, как показано или подобное. GEM_HOME и GEM_PATH определяются как

GEM_PATH предоставляет места (их может быть несколько), где можно найти драгоценные камни.

GEM_HOME — это место, где будут установлены драгоценные камни (по умолчанию).

Проблема в том, что когда я запускаю этот скрипт (после ошибки не включается) в ТМ

#!/usr/bin/env ruby
system ('gem env') # for debugging
puts "\nGem.path: #{Gem.path}"
puts "\ngem list:"
system ('gem list') # for debugging 
require 'fileutils'
include FileUtils
require 'find'
require 'yaml'
require "time"
require 'irb'
require 'mini_exiftool'

Результат:

Running “PhotoName-GPScoord.rb”…
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]
Theme:  
RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.3
  - RUBY VERSION: 2.3.7 (2018-03-28 patchlevel 456) [universal.x86_64-darwin18]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.3.0
  - USER INSTALLATION DIRECTORY: /Users/gscar/.gem/ruby/2.3.0
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /Users/gscar/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-18
  - GEM PATHS:
     - /Library/Ruby/Gems/2.3.0
     - /Users/gscar
     - /.rubies/ruby-2.6.2/lib/ruby/gems/2.6.0
     - /.gem/ruby/2.6.2/gems/
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-document"
  - 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
     - /usr/local/bin
     - /usr/texbin
     - /opt/local/bin

Gem.path: ["/Users/gscar", "/.rubies/ruby-2.6.2/lib/ruby/gems/2.6.0", "/.gem/ruby/2.6.2/gems/", "/Users/gscar/.rubies/ruby-2.6.2/lib/ruby/gems/2.6.0"]

gem list:
<about 100 gems>
mimemagic (0.3.3)
mini_exiftool (2.9.0)
mini_magick (4.6.1)
<about 20 gems>

LoadError: cannot load such file — mini_exiftool

method require  in kernel_require.rb at line 54
method require  in kernel_require.rb at line 54
method <main>   in PhotoName-GPScoord.rb at line 19
  copy output 

TextMate помещает это в правый верхний угол вывода Местоположения драгоценных камней в macOS с настройками chruby и TextMate.

Строка 19 это require 'mini_exiftool'

mini_exiftool есть в списке самоцветов, но почему ошибка?

Если я запускаю скрипт, используя системный Ruby (принимая значения по умолчанию, ничего не устанавливая в TM) Местоположения драгоценных камней в macOS с настройками chruby и TextMate

Скрипт работает со следующим выводом:

Running “PhotoName-GPScoord.rb”…
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
Theme:  
RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.3
  - RUBY VERSION: 2.3.7 (2018-03-28 patchlevel 456) [universal.x86_64-darwin18]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.3.0
  - USER INSTALLATION DIRECTORY: /Users/gscar/.gem/ruby/2.3.0
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /Users/gscar/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-18
  - GEM PATHS:
     - /Library/Ruby/Gems/2.3.0
     - /Users/gscar/.gem/ruby/2.3.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-document"
  - 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

Gem.path: ["/Users/gscar/.gem/ruby/2.3.0", "/Library/Ruby/Gems/2.3.0", "/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0"]

gem list:

<long list of gems including mini_exiftool (2.9.0)>

Этот конкретный скрипт подходит для версии 2.3.7, а для других может и не подойти.

Спасибо за любую помощь.

Эта публикация является упрощением предыдущий пост от меня. Думаю, я упростил проблему.

Я подозреваю, что существует несоответствие между вашим Ruby и RubyGems. Во второй строке написано 2.6.2p47, но я вижу Ruby 2.3.7 в gem env.

Franklin Yu 13.06.2019 04:28

Спасибо за комментарии. Ruby 2.3.7 — это система macOS Ruby, но я думаю, что скрипт в верхнем примере работает в версии 2.6.2. TextMate вывешивает это в окно (Видимо, здесь нельзя добавить изображение, я обновлю оригинал.

Greg 13.06.2019 19:55
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
0
2
186
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Изменены GEM_HOME и GEM_PATH на $HOME/.gem/ruby/2.6.2:$HOME/.rubies/ruby-2.6.2/lib/ruby/gems/2.6.0 на основе копирования этих переменных из того, что отображается при запуске из терминала. Комментарий Лу заставил меня немного пристальнее взглянуть на то, о чем сообщалось. В основном мне не хватало $HOME/ во втором пути (после двоеточия). Я возился с этим в течение нескольких месяцев

Рад, что вы нашли решение. Придирка: $GEM_HOME должен содержать только один путь, а $GEM_PATH может содержать несколько (аналогично $PATH).

Franklin Yu 14.06.2019 07:44

Дело принято. Я читал это, но большинство людей используют одно и то же для обоих. Я изменился сейчас с GEM_HOME на $HOME/.gem/ruby/2.6.2. Я едва понимаю это и $PATH, и на самом деле у меня нет PATH, установленного в TextMate (хотя я много читал, как их установить).

Greg 14.06.2019 16:20

Другие вопросы по теме