Это ситуация: я использую Mac OS Mojave 10.14.3 - Кажется, что система работает под управлением ruby v2.3.0 и установила homebrew ruby 2.6.x, когда я пытаюсь запустить sass, я получаю следующую ошибку:
> Sass is watching for changes. Press Ctrl-C to stop.
Gem::MissingSpecError: Could not find 'ffi' (>= 0.5.0, < 2) among 20 total gem(s)
Checked in 'GEM_PATH=/Users/samuellarcher/.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', execute `gem env` for more information
Запуск gem env возвращает:
> RubyGems Environment:
- RUBYGEMS VERSION: 3.0.3
- RUBY VERSION: 2.6.2 (2019-03-13 patchlevel 47) [x86_64-darwin18]
- INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.6.0
- USER INSTALLATION DIRECTORY: /Users/samuellarcher/.gem/ruby/2.6.0
- RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
- GIT EXECUTABLE: /usr/bin/git
- EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.6.0/bin
- SPEC CACHE DIRECTORY: /Users/samuellarcher/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/2.6.2/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-18
- GEM PATHS:
- /usr/local/lib/ruby/gems/2.6.0
- /Users/samuellarcher/.gem/ruby/2.6.0
- /usr/local/Cellar/ruby/2.6.2/lib/ruby/gems/2.6.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/opt/ruby/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
Теперь, когда я делаю:
whereis ruby
возвращает:
/usr/bin/ruby
и
echo $PATH
возвращает
/usr/local/opt/ruby/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Кроме того, приоритет пути в / private / etc / paths установлен на:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
что мне кажется правильным. Файл .bash_profile содержит:
export PATH="/usr/local/opt/ruby/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
Проверка каталогов gem:
ls /usr/local/lib/ruby/gems/2.6.0/gems/
возвращает
ffi-1.10.0 rb-fsevent-0.10.3 rb-inotify-0.10.0 sass-3.7.3 sass-listen-4.0.0 test-unit-3.3.0
с пропавшим драгоценным камнем, к которому мы стремимся.
ls .gem/ruby/2.3.0/cache/
возвращает
CFPropertyList-3.0.0.gem faraday-cookie_jar-0.0.6.gem mini_magick-4.5.1.gem simctl-1.6.5.gem
addressable-2.6.0.gem faraday_middleware-0.13.1.gem multi_json-1.13.1.gem slack-notifier-2.3.2.gem
atomos-0.1.3.gem fastimage-2.1.5.gem multi_xml-0.6.0.gem terminal-notifier-1.8.0.gem
babosa-1.0.2.gem fastlane-2.117.1.gem multipart-post-2.0.0.gem terminal-table-1.8.0.gem
bundler-2.0.1.gem gh_inspector-1.1.3.gem nanaimo-0.2.6.gem tty-cursor-0.6.1.gem
claide-1.0.2.gem google-api-client-0.23.9.gem naturally-2.2.0.gem tty-screen-0.6.5.gem
colored-1.2.gem google-cloud-core-1.3.0.gem os-1.0.0.gem tty-spinner-0.9.0.gem
colored2-3.1.2.gem google-cloud-env-1.0.5.gem plist-3.5.0.gem uber-0.1.0.gem
commander-fastlane-4.4.6.gem google-cloud-storage-1.16.0.gem public_suffix-2.0.5.gem unf-0.1.4.gem
declarative-0.0.10.gem googleauth-0.6.7.gem representable-3.0.4.gem unf_ext-0.0.7.5.gem
declarative-option-0.1.0.gem highline-1.7.10.gem retriable-3.1.2.gem unicode-display_width-1.5.0.gem
digest-crc-0.4.1.gem http-cookie-1.0.3.gem rouge-2.0.7.gem word_wrap-1.0.0.gem
domain_name-0.5.20180417.gem httpclient-2.8.3.gem rubygems-update-3.0.2.gem xcode-install-2.3.0.gem
dotenv-2.7.1.gem jwt-2.1.0.gem rubygems-update-3.0.3.gem xcodeproj-1.8.1.gem
emoji_regex-1.0.1.gem memoist-0.16.0.gem rubyzip-1.2.2.gem xcpretty-0.3.0.gem
excon-0.62.0.gem mime-types-3.2.2.gem security-0.1.3.gem xcpretty-travis-formatter-1.0.0.gem
faraday-0.15.4.gem mime-types-data-3.2018.0812.gem signet-0.11.0.gem
без пропавших без вести ffi gem
Я мог бы пропустить что-то фундаментальное, но в идеале мне хотелось бы, чтобы при запуске sass запускалась версия 2.06x для доморощенного рубина. Так откуда же?
По предложению М. Зиновского я удалил доморощенный рубин и установил rbenv через доморощенный. Я следовал инструкциям добавил
eval "$(rbenv init -)"
to .bash_profile - проверьте, что установка прошла нормально.
SamuelserBook15:~ samuellarcher$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /usr/local/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20190314)
Counting installed Ruby versions: 2 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
Локальная и глобальная версия установлена на недавно установленную rbenv 2.6.2
samuellarcher$ rbenv version
2.6.2 (set by /Users/samuellarcher/.ruby-version)
samuellarcher$ ruby -v
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]
Однако - когда я запустил sass - та же самая старая ошибка - все еще ссылается на 2.3.0 и ffi gem отсутствует. Итак ... абсолютно min-bobbeling .. 2.6.2 работает, почему он по-прежнему указывает на файлы gem 2.3.0 ???