Как использовать указанную версию Ruby для скрипта оболочки с rbenv?

Как использовать указанную версию Ruby для скрипта оболочки с rbenv?

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

Я буду использовать скрипт во многих средах. Я использую rbenv в средах, но не уверен, какая версия ruby ​​установлена.

Скрипт должен завершиться ошибкой, если указанная версия Ruby не установлена.

Как мне это сделать? Есть ли хороший способ, которому мне следует следовать?

решение1

Согласноофициальные документыпохоже, вам просто нужно ставить префиксы к своим скриптам следующим образом:

#!/usr/bin/env ruby

А затем выполните одно из следующих действий, чтобы узнать, rbenvкакую версию Ruby использовать:

отрывок:https://github.com/sstephenson/rbenv

Выбор версии Ruby

При запуске оболочки rbenvопределяется, какую версию Ruby использовать, считывая ее из следующих источников в следующем порядке:

  1. Переменная окружения RBENV_VERSION, если указана. Вы можете использовать rbenvкоманду shell, чтобы задать эту переменную окружения в текущем сеансе оболочки.

  2. Первый .ruby-versionфайл, найденный путем поиска в каталоге исполняемого скрипта и в каждом из его родительских каталогов до достижения корня вашей файловой системы.

  3. Первый .ruby-versionфайл, найденный путем поиска в текущем рабочем каталоге и каждом из его родительских каталогов до достижения корня вашей файловой системы. Вы можете изменить файл .ruby-versionв текущем рабочем каталоге с помощью rbenvлокальной команды.

  4. Глобальный ~/.rbenv/versionфайл. Вы можете изменить этот файл с помощью rbenvкоманды global. Если файл глобальной версии отсутствует, rbenvпредполагается, что вы хотите использовать «системный» Ruby — т. е. любую версию, которая бы запускалась, если бы rbenvне была в вашем пути.

Затем вы можете использовать эту команду для создания .ruby-versionфайла в каталоге вместе со скриптом Ruby.

$ rbenv local 1.9.3-p327

Связанный контент