Есть ли способ определить псевдоним, который выполняет bin из определенной папки в MacOS? - PullRequest
0 голосов
/ 04 марта 2019

В настоящее время я использую Macbook Pro с MacOS Mojave 10.14.3.Недавно я начал заниматься программированием на ruby, но мне кажется, что управление их пакетами gem немного сбивает с толку.Когда я gem install пакет, он устанавливает его в мою папку /usr/local/lib/ruby/gems/2.6.0/bin и, если я хочу выполнить гем или получить версию гема, например, solargraph гем, я должен ввести команду: /usr/local/lib/ruby/gems/2.6.0/bin/solargraph -v.Мне было интересно, есть ли способ определить псевдоним для пути /usr/local/lib/ruby/gems/2.6.0/bin, чтобы я мог напечатать что-то вроде gemexec solargraph -v, что дало бы тот же результат, что и /usr/local/lib/ruby/gems/2.6.0/bin/solargraph -v.Спасибо за вашу помощь.Кстати, я использую оболочку ZSH.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Вы можете создать функцию, которая сделает это за вас, и поместить ее в файл .zshrc.

function gemexec() {
    /usr/local/lib/ruby/gems/2.6.0/bin/"$1"
} 
0 голосов
/ 04 марта 2019

Вы можете использовать тот факт, что Ruby 'устанавливает' двоичный каталог в центральный каталог bin, расположенный по адресу /usr/local/lib/ruby/gems/RUBY_VERSION/bin.

. Используйте gem environment для определения вашего пути:

gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.7
  - RUBY VERSION: 2.5.3 (2018-10-18 patchlevel 105) [x86_64-darwin18]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.5.0
  - USER INSTALLATION DIRECTORY: /Users/alice/.gem/ruby/2.5.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.5.0/bin
  - SPEC CACHE DIRECTORY: /Users/alice/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/2.5.3_1/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-18
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/2.5.0
     - /Users/alice/.gem/ruby/2.5.0
     - /usr/local/Cellar/ruby/2.5.3_1/lib/ruby/gems/2.5.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

Тогда, вы можете добавить путь ruby ​​bin в ваш глобальный путь bin и получить то, что вы хотите -

PATH="/usr/local/lib/ruby/gems/2.5.0/bin:$PATH"
solargraph -v
0.31.3

Наконец, чтобы zsh использовал этот PATH каждый раз, когда вы открываете оболочку,добавьте эту строку в ваш файл .zsh_rc -

echo PATH="/usr/local/lib/ruby/gems/2.5.0/bin:$PATH" >> ~/.zshrc
...