如何在Ubuntu上安装Ruby 2和Ruby Gems与Ansible

前端之家收集整理的这篇文章主要介绍了如何在Ubuntu上安装Ruby 2和Ruby Gems与Ansible前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用Ansible为Ubuntu Server机器配置最新的 RubyRuby Gems版本.

我该如何做?

解决方案#1:使用APT和Symlinks

如果可以全面安装Ruby 2.0和Ruby Gems(适用于所有用户),我建议您使用此解决方案.如果要安装其他版本或将其与其他用户隔离 – 请参阅解决方案#2.

这是一个简单的Ansible手册,它将为您安装最新的Ruby 2.0和Ruby Gems:

Ubuntu 14.04(Trusty Tahr)

- name: Latest version of Ruby is installed
  apt: pkg={{ item }} state=latest
  with_items:
    - ruby2.0
    - ruby2.0-dev

- name: Symlink exists for Ruby 2.0
  file: src=/usr/bin/ruby2.0 dest=/usr/local/bin/ruby state=link

- name: Symlink exists for Ruby Gems 2.0
  file: src=/usr/bin/gem2.0 dest=/usr/local/bin/gem state=link

Ubuntu 13.10(Saucy Salamander)

- name: Latest version of Ruby is installed
  apt: pkg={{ item }} state=latest
  with_items:
    - ruby2.0
    - ruby2.0-dev

- name: Making Ruby 2.0 the default one
  command: update-alternatives --set ruby /usr/bin/ruby2.0

- name: Making Gem 2.0 the default one
  command: update-alternatives --set gem /usr/bin/gem2.0

提供的剧本必须用sudo执行:是的,原因很明显.

解决方案#2:使用RVM

RVM正在安装ruby,它是当前用户的本地gem.因此导致多用户环境中的问题.在我的用例中,由于某些原因它无法正常工作.所以我建议尽可能的坚持第一个解决方案.虽然,如果你知道你正在做什么,并且了解这里的复杂情况,那么RVM解决方案.

我建议创建一个简单的shell脚本来安装当前版本的Ruby和Ruby Gems与RVM,然后在配置的机器上调用它.

这是Bash脚本:

#!/usr/bin/env bash

# Checking if RVM is installed
if ! [ -d "~/.rvm" ]; then
    echo "Installing RVM..."
    \curl -sSL https://get.rvm.io | bash -s stable
    source ~/.rvm/scripts/rvm
    echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
else
    echo "Updating RVM..."
    rvm get stable
fi;

echo -n "RVM version is: "
rvm --version

echo "Installing Ruby..."
rvm install ruby

echo "Making installed Ruby the default one..."
rvm use ruby --default

echo "Installing latest version of Ruby Gems..."
rvm rubygems current

此脚本将安装RVM(或将其更新为最新的稳定版本,如果已经安装),它将安装最新的稳定版本的Ruby和Ruby Gems.

这里是将提供的脚本复制到配置机器并进行调用的手册:

- file: path=~/provision/ruby state=directory
- copy: src=../../files/ruby/install.sh dest=~/provision/ruby/install.sh mode=775

- name: Latest Ruby is installed
  shell: /usr/bin/env bash ~/provision/ruby/install.sh

只需将您的脚本放在Ansible的手册附近并更新路径.

我希望它会帮助某人.

猜你在找的Ubuntu相关文章