Como usar especificar a versão do ruby para shell script com rbenv?

6

Vou escrever um pequeno script em ruby. E eu quero especificar a versão em ruby por shebang ou de outra maneira.

Vou usar o script em muitos ambientes. Estou usando o rbenv nos evironments, mas não tenho certeza de qual versão do ruby está instalada.

O script deve falhar se a versão de especificação do ruby não estiver instalada.

Como posso fazer isso? Existe uma boa maneira que eu deveria seguir?

    
por ironsand 08.10.2013 / 14:35

1 resposta

5

De acordo com os documentos oficiais , parece que você precisa prefixar seus scripts como este :

#!/usr/bin/env ruby

E, em seguida, faça uma das seguintes ações para informar rbenv qual versão do Ruby usar:

trecho: link

Choosing the Ruby Version

When you execute a shim, rbenv determines which Ruby version to use by reading it from the following sources, in this order:

  1. The RBENV_VERSION environment variable, if specified. You can use the rbenv shell command to set this environment variable in your current shell session.

  2. The first .ruby-version file found by searching the directory of the script you are executing and each of its parent directories until reaching the root of your filesystem.

  3. The first .ruby-version file found by searching the current working directory and each of its parent directories until reaching the root of your filesystem. You can modify the .ruby-version file in the current working directory with the rbenv local command.

  4. The global ~/.rbenv/version file. You can modify this file using the rbenv global command. If the global version file is not present, rbenv assumes you want to use the "system" Ruby—i.e. whatever version would be run if rbenv weren't in your path.

Você pode usar este comando para criar um arquivo .ruby-version no diretório junto com o script Ruby.

$ rbenv local 1.9.3-p327
    
por 08.10.2013 / 16:04

Tags