Vou escrever um pequeno script em Ruby. E quero especificar a versão Ruby por shebang ou de outra forma.
Usarei o script em muitos ambientes. Estou usando o rbenv nos ambientes, mas não tenho certeza qual versão do Ruby está instalada.
O script deverá falhar se a versão especificada do Ruby não estiver instalada.
Como eu posso fazer isso? Existe um bom caminho que devo seguir?
Responder1
De acordo comdocumentos oficiaisparece que você só precisa prefixar seus scripts assim:
#!/usr/bin/env ruby
E então faça uma das seguintes coisas para saber rbenv
qual versão do Ruby usar:
excerto:https://github.com/sstephenson/rbenv
Escolhendo a versão Ruby
Quando você executa um shim,
rbenv
determina qual versão do Ruby usar lendo-a das seguintes fontes, nesta ordem:
A
RBENV_VERSION
variável de ambiente, se especificada. Você pode usar orbenv
comando shell para definir esta variável de ambiente em sua sessão shell atual.O primeiro
.ruby-version
arquivo encontrado pesquisando o diretório do script que você está executando e cada um de seus diretórios pais até chegar à raiz do seu sistema de arquivos.O primeiro
.ruby-version
arquivo encontrado pesquisando o diretório de trabalho atual e cada um de seus diretórios pais até chegar à raiz do seu sistema de arquivos. Você pode modificar o.ruby-version
arquivo no diretório de trabalho atual com orbenv
comando local.O arquivo global
~/.rbenv/version
. Você pode modificar este arquivo usando orbenv
comando global. Se o arquivo da versão global não estiver presente,rbenv
assume que você deseja usar o "sistema" Ruby - ou seja, qualquer versão que seria executada serbenv
não estivesse em seu caminho.
Você pode então usar este comando para criar um .ruby-version
arquivo no diretório junto com o script Ruby.
$ rbenv local 1.9.3-p327