首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >macOS中带有chruby和TextMate首选项的gem位置

macOS中带有chruby和TextMate首选项的gem位置
EN

Stack Overflow用户
提问于 2019-04-17 04:20:37
回答 1查看 285关注 0票数 0

我很难让Ruby与TextMate (TM)和chruby在macOS上正常工作。

大约六个月前,在2017年的iMac上安装了Mojave (现在的10.14.4版)。

尝试使用Ruby-2.6.2,尽管已经安装了早期版本。System是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的偏好。首先,我有以下几点:

GEM_HOME是未设置的,因为我不明白为什么需要它,尽管我经常阅读来设置它,如图所示或类似的。PATH被定义为

GEM_PATH提供了可以找到宝石的位置(可能有几个)。

GEM_HOME是安装gems的地方(默认情况下)。

问题是,当我在TM中运行这个脚本(在错误不包括之后)

代码语言:javascript
复制
#!/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'

结果是:

代码语言:javascript
复制
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将其放在输出的右上角

第19行是require 'mini_exiftool'

mini_exiftool在gem列表中,但是为什么会出错呢?

如果我使用system运行脚本(默认情况下,在TM中没有设置)

脚本运行时具有以下输出:

代码语言:javascript
复制
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,但其他脚本可能不行。

谢谢你的帮助。

此公告是对earlier posting from me的简化。我想我已经把这个问题理清了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-14 05:08:42

根据从终端运行时显示的变量复制这些变量,将GEM_HOMEGEM_PATH更改为$HOME/.gem/ruby/2.6.2:$HOME/.rubies/ruby-2.6.2/lib/ruby/gems/2.6.0。陆先生的评论让我更难了解报道的内容。基本上,我在第二个路径(在冒号之后)缺少了$HOME/。我已经摆弄了好几个月了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55719818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档