Compartilhe programas Ruby entre usuários do Linux

2

Nosso sistema Linux (Mint) tem dois usuários admin - mint & admin. O que precisamos fazer para admin & hortelã para poder compartilhar gemas?

A hortelã tem chef, berkshelf & knife-ec2 instalado via bundler no diretório /home/mint/rbenv/ . Ao mudar para o administrador, esses programas não são encontrados:

The program 'knife' is currently not installed. To run 'knife' please ask your administrator to install the package 'chef'

Como os dois usuários podem compartilhar os pacotes / programas instalados?

    
por csi 06.03.2014 / 19:27

1 resposta

1

Como @AWippler declarou em seu comentário, instale o rbenv em um local diferente do diretório inicial do usuário. Instale no diretório / var / opt / rbenv.

sudo git clone https://github.com/sstephenson/rbenv.git /var/opt/rbenv

É importante ajustar todas as permissões do usuário. Há várias maneiras de conseguir isso. Eu adiciono os usuários a um grupo chamado devops.

sudo groupadd devops
sudo usermod -a -G devops username
sudo chgrp -R devops /var/opt/rbenv/
sudo chmod 0775 /var/opt/rbenv
sudo chmod g+s -R /var/opt/rbenv/

Em seguida, o $ RBENV_PATH também precisa ser compartilhado. Crie um script rbenv.sh dentro de /etc/profile.d.

echo 'export RBENV_ROOT=/var/opt/rbenv' | sudo tee -a '/etc/profile.d/rbenv.sh'
echo 'export PATH=$RBENV_ROOT/bin:$PATH' | sudo tee -a '/etc/profile.d/rbenv.sh'
echo 'eval "$(rbenv init -)"' | sudo tee -a '/etc/profile.d/rbenv.sh'
sudo chgrp devops /etc/profile.d/rbenv.sh
sudo chmod 0660 /etc/profile.d/rbenv.sh
source /etc/profile.d/rbenv.sh

Por fim, instale o rbenv e a versão que você preferir.

cd /tmp
sudo git clone https://github.com/sstephenson/ruby-build.git
sudo ./ruby-build/install.sh
rbenv install ruby-version
rbenv shell ruby-version
rbenv global ruby-version
rbenv rehash

Observação: ao instalar gems via bundler, use bundle install --system para compartilhar com todos os usuários.

    
por 23.03.2014 / 12:45