我们的 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
与所有用户共享。