在 Linux 用户之间共享 Ruby 程序

在 Linux 用户之间共享 Ruby 程序

我们的 Linux (Mint) 系统有 2 个管理员用户 - mint 和 admin。我们需要做什么才能让 admin 和 mint 共享宝石?

Mint 在目录中通过 bundler 安装了 chef、berkshelf 和 knife-ec2 /home/mint/rbenv/。切换到管理员时,找不到这些程序:

程序“knife”当前未安装。要运行“knife”,请让管理员安装软件包“chef”

两个用户如何共享已安装的软件包/程序?

答案1

正如@AWippler 在他的评论中所述,将 rbenv 安装在用户主目录以外的位置。安装在 /var/opt/rbenv 目录中。

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

调整所有用户权限非常重要。有多种方法可以实现这一点。我将用户添加到名为 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/

接下来还需要共享 $RBENV_PATH。在 /etc/profile.d 中创建一个 rbenv.sh 脚本。

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

最后,安装 rbenv 和您喜欢的版本。

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

注意:通过 bundler 安装 gems 时,一定要bundle install --system与所有用户共享。

相关内容