User-Management

在 Linux 使用者之間共享 Ruby 程序

  • March 24, 2014

我們的 Linux (Mint) 系統有 2 個管理員使用者 - mint 和 admin。admin 和 mint 需要做什麼才能共享 gem?

Mint 通過 bundler 在/home/mint/rbenv/目錄中安裝了 chef、berkshelf 和 knife-ec2。切換到 admin 時,找不到這些程序:

目前未安裝程序“刀”。要執行“刀”,請讓您的管理員安裝包“廚師”

兩個使用者如何共享已安裝的軟體包/程序?

正如@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與所有使用者共享。

引用自:https://serverfault.com/questions/580312