Tornando o ruby disponível para todos os usuários

6

Eu pretendo usar o Ruby quando estiver programando o meu Raspberry Pi que está rodando o Occidentals baseado no Debian. Via SSH, executei:

curl -L https://get.rvm.io | bash -s stable --ruby

que baixou a fonte ruby e a compilou. É uma ferramenta de cerca de 2 horas para ser concluído. Eu gostaria de usar o ruby via WebIDE da AdaFruit - link . No entanto, a instalação do ruby que realizei via SSH criou uma pasta chamada .rvm no diretório do usuário pi , enquanto o WebIDE usa a conta de usuário webide .

Qual é a melhor maneira de permitir o acesso da conta de usuário webide ao ruby? Tentei mover a pasta .rvm de /home/pi para /etc/share , mas isso não funcionou - ao tentar usar o ruby em um terminal, recebi o erro "ERRO: Arquivo de ambiente RVM ausente: '/ home / pi / .rvm / environments / ruby-2.0.0-p353 '"então eu devo ter quebrado algum link.

Estou atrasando a execução de outra instalação de 2 horas para o usuário da web, já que tenho certeza de que há uma maneira melhor!

    
por barry 26.11.2013 / 22:34

2 respostas

13

Não descartar o valor do RVM

Você pode usar a versão do repositório do Ruby, mas eu recomendo ir de outra maneira e usar o RVM para gerenciar Ruby. Eu percebo que isso pode parecer que está atrasando você, mas a versão do Ruby que é implantada através dos repositórios, embora usável, muitas vezes leva a problemas no futuro. Geralmente, é melhor criar versões dedicadas de intérpretes e quaisquer bibliotecas necessárias (Gems) que possam ser dedicadas a um aplicativo e / ou caso de uso específico.

O RVM fornece a capacidade de instalar para um único usuário (que é o que você fez), bem como fazer uma instalação multiusuário.

$ curl -L https://get.rvm.io | sudo bash -s stable

A execução da instalação desta maneira ativará automaticamente o RVM para fazer uma instalação multiusuário que instalará o software em /usr/local/rvm . A partir daqui, o software pode ser acessado por qualquer pessoa que esteja no grupo Unix rvm .

$ sudo usermod -a -G rvm <user>

Em que <user> seria o usuário webide .

Instalando um Ruby

Agora adicione o seguinte a cada usuário $HOME/.bashrc . Eu geralmente coloco isso no final do arquivo:

[[ -s /usr/local/rvm/scripts/rvm ]] && source /usr/local/rvm/scripts/rvm

Com isso, você vai querer sair e fazer login novamente.

NOTA 1: Não é suficiente iniciar outra aba no gnome-terminal, ela precisa ser uma sessão recém-conectada. Isto é para que o grupo que você acabou de adicionar este usuário, seja pego.

NOTE2: Você provavelmente não precisará adicionar o acima ao seu $HOME/.bashrc se achar que já tem o seguinte arquivo instalado aqui, isso faz o que foi mencionado acima e mais para todos os usuários que estão no grupo rvm no sistema.

$ ls -l /etc/profile.d/rvm.sh 
-rwxr-xr-x 1 root root 1698 Nov 27 21:14 /etc/profile.d/rvm.sh

Uma vez logado, você precisará instalar um Ruby. Você pode fazer isso usando as seguintes etapas, como usuário webide .

Quais versões disponíveis para instalação?

$ rvm list known | less
...
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p374]
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p320]
[ruby-]1.9.3[-p484]
[ruby-]2.0.0-p195
[ruby-]2.0.0[-p353]
[ruby-]2.1.0-preview2
[ruby-]2.1.0-head
ruby-head
...

OBSERVAÇÃO: Na primeira vez que você instalar um Ruby, deverá fazer isso com um usuário que tenha sudo direitos para que as dependências possam ser instaladas. Por exemplo, no Ubuntu, você verá esse tipo de atividade. Depois que estes forem instalados, outros usuários, como webide , poderão instalar Rubis adicionais também, no diretório /usr/local/rvm .

Installing requirements for ubuntu.
Updating system..............................................................................................................
Installing required packages: libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, libffi-dev...............................................................................................
Requirements installation successful.

Exibindo versões instaladas

$ rvm list

rvm rubies

 * ruby-1.9.3-p484 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Instalando um 2º Ruby

$ whoami
webide

$ rvm install 2.0.0-p195
...
ruby-2.0.0-p195 - #validate binary
ruby-2.0.0-p195 - #setup
Saving wrappers to '/usr/local/rvm/wrappers/ruby-2.0.0-p195'........
ruby-2.0.0-p195 - #importing default gemsets, this may take time..................

Agora, quando listamos o que está instalado:

$ rvm list

rvm rubies

 * ruby-1.9.3-p484 [ x86_64 ]
   ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Do acima, podemos ver que o usuário webide conseguiu instalar um Ruby.

Definindo um padrão para todos os usuários de rvm

$ rvm use ruby-2.0.0-p195 --default
Using /usr/local/rvm/gems/ruby-2.0.0-p195

$ rvm list

rvm rubies

   ruby-1.9.3-p484 [ x86_64 ]
=* ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Efetuando login como outro usuário que está no grupo rvm , podemos ver os efeitos de tornar ruby-2.0.0-p195 o padrão.

$ rvm list

rvm rubies

=> ruby-1.9.3-p484 [ x86_64 ]
 * ruby-2.0.0-p195 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Portanto, esse usuário está usando ruby-1.9.3-p484 e agora está configurado para usar ruby-2.0.0-p195 como padrão.

Baixos downloads / instalações

Se você tiver um download lento, convém usar o método de instalação off-line. Isso permitirá que você faça uma reinstalação mais tarde. Ou talvez o download por meio desse sistema seja problemático, e você poderia fazer o download do instalador do RVM em um sistema e depois usar scp para copiar o instalador para este sistema posteriormente.

$ curl -L https://github.com/wayneeseguin/rvm/tarball/stable -o rvm-stable.tar.gz

Veja aqui, RVM no modo offline para obter detalhes completos.

Referências

por 26.11.2013 / 23:39
1

desde que você está executando uma distribuição baseada no Debian, a maneira mais simples de instalar o Ruby é executar o seguinte como root (por exemplo, usando sudo ou qualquer método que você preferir):

 aptitude install ruby
    
por 26.11.2013 / 22:38