如何在Ubuntu上安装Ruby 2而不使用RVM

67

我希望安装Ruby2.0

sudo apt-get install ruby2.0

但是目前没有适用于ruby2.0的安装包。

我想像安装ruby 1.9.1一样使用apt-get install进行安装。

有什么建议吗?


3
据我所知,Ubuntu 12.04没有Ruby 2的软件包。你需要自己构建它,然后使用checkinstall安装它。 - toro2k
6个回答

102
sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
wget http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p451.tar.gz
tar -xvzf ruby-2.0.0-p451.tar.gz
cd ruby-2.0.0-p451/
./configure --prefix=/usr/local
make
sudo make install

来自这里

更新

对于ruby 2.1.5

sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
wget http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz 
tar -xvzf ruby-2.1.5.tar.gz
cd ruby-2.1.5/
./configure --prefix=/usr/local
make
sudo make install

如果您仍然看到旧版本的ruby,请检查符号链接 ls -la /usr/bin/ruby 来自hector的建议。


1
可选地,运行 make check 来检查编译的 Ruby 解释器是否正常工作。如果您看到消息“检查成功”,则表示您的 Ruby 工作正常。 - lightswitch05
1
安装过程很顺利,除了最后一个命令需要以sudo身份运行。另外,我仍然看到ruby版本为1.9.3。我该如何切换到ruby 2? - Randall Flagg
3
输入命令 which ruby,会返回 Ruby 解释器所在的路径(例如 /usr/bin/ruby)。通常该路径是一个符号链接,指向实际的 Ruby 可执行文件。输入命令 ls -la /usr/bin/ruby,可能会看到该路径被符号链接到 ruby1.9.x。如果是这种情况,请更新符号链接以指向新位置。 - Hector Correa
1
对于在Ubuntu 14.04.1 (x86_64)上使用Ruby 2.2.x的用户来说,这是非常重要的。在编译之前,您还必须安装libffi-dev。请查看https://github.com/sstephenson/ruby-build/issues/690。 - TheodorosPloumis
大家好,感谢这个不错的方式。首先,当我执行make check时,它抛出了22个失败和6个错误,这样在生产中使用可以吗?如果不行,我应该怎么做才能纠正它呢?其次,在长期内,我如何以干净的方式更新或删除Ruby?我猜更新需要在更新之前进行删除,然后相同的命令完成交易。但是如何删除它呢?我猜这不会像apt-get purge那样容易。 - Guillaume
显示剩余4条评论

57
sudo apt-add-repository ppa:brightbox/ruby-ng-experimental &&
sudo apt-get update &&
sudo apt-get install -y ruby2.0 ruby2.0-dev ruby2.0-doc

易于使用 ^ㅡ^


2
在终端输入 which ruby 时会输出什么? - Anton Dozortsev
3
这似乎安装了Ruby 1.9和Ruby 2,并将1.9设置为默认版本。我该如何将Ruby 2.0设置为默认版本? - Paul Grenyer
你犯了一个错误,应该是"apt-add-repository"而不是"add-apt"。 - Ba7a7chy
3
不是很。apt-add-repository 是一个符号链接,用于在 Ubuntu 11.04 中引入的 add-apt-repository。 - SáT

42
# Adds Ruby 2.2 to Ubuntu 14.04
sudo apt-add-repository ppa:brightbox/ruby-ng
# Adds Ruby v1.9/2.0/2.1/2.2 to Ubuntu 14.04/15.04
# sudo add-apt-repository ppa:brightbox/ruby-ng-experimental

sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev

# https://dev59.com/Q3I-5IYBdhLWcg3wW3Gp#1892889
# priority ruby: https://gist.github.com/brodock/7693207
sudo update-alternatives --remove ruby /usr/bin/ruby2.2
sudo update-alternatives --remove irb /usr/bin/irb2.2
sudo update-alternatives --remove gem /usr/bin/gem2.2

sudo update-alternatives \
    --install /usr/bin/ruby ruby /usr/bin/ruby2.2 50 \
    --slave /usr/bin/irb irb /usr/bin/irb2.2 \
    --slave /usr/bin/rake rake /usr/bin/rake2.2 \
    --slave /usr/bin/gem gem /usr/bin/gem2.2 \
    --slave /usr/bin/rdoc rdoc /usr/bin/rdoc2.2 \
    --slave /usr/bin/testrb testrb /usr/bin/testrb2.2 \
    --slave /usr/bin/erb erb /usr/bin/erb2.2 \
    --slave /usr/bin/ri ri /usr/bin/ri2.2

update-alternatives --config ruby
update-alternatives --display ruby

$ irb
irb(main):001:0> RUBY_VERSION
=> "2.2.0"

$ ruby --version
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux-gnu]

1
我的 Ruby 现在是 2 版本,但 irb 仍然是 1.9.3。我该怎么解决? - Daniil Shevelev
似乎可以跳过update-alternatives部分。在执行apt-get install之后,我得到了irb(main):001:0> RUBY_VERSION => "2.1.2" - Goran Miskovic

21

自从这个问题被回答后,我在这里找到了一个新的替代方案:

https://www.brightbox.com/docs/ruby/ubuntu/

简而言之:

# For ubuntu >= 14.04 install software-properties-common
# instead of python-software-properties
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update

sudo apt-get -y install ruby2.2 ruby-switch
sudo ruby-switch --set ruby2.2

我必须说,根据我的测试,这比这里展示的其他选项更快,因为跳过了编译步骤。


3
我可以确认这种方法更快、更简单,而且出错率更低。 - Micah Bolen
目前还没有Wily Werewolf版本可用 :( - Yvo
你可能需要运行 apt-get update && apt-get install software-properties-common 命令来使用 apt-add-repository。 - nelsonenzo
3
非常出色,这个答案值得置顶! - Kostas Demiris
我得到了“无效的解释器:ruby2.2”的错误,并且列表中只显示ruby1.9.1作为选项。 - RCross
@RCross,你可能需要问Brightbox的人。我没有创建那个教程,而且已经有一段时间没有使用这种方法了。 - kikito

0
在Ubuntu上安装Ruby的更好方法而不使用RVM是通过终端使用rbenv进行安装,具体步骤如下:
$ sudo apt-get update

使用apt-get安装rbenv和Ruby依赖项:

$ sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

现在按照以下方式运行这些命令:

$ cd
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
$ exec $SHELL

安装 Ruby 的时间:

$ rbenv install 2.3.3

选择最新且稳定的版本。

$ rbenv global 2.3.3

检查版本

$ ruby -v

为了禁用本地文档,因为这个过程可能会很长:

$ echo "gem: --no-document" > ~/.gemrc

安装bundler gem,以管理您的应用程序依赖项:

$ gem install bundler

本帖的标题是“如何在Ubuntu上安装Ruby 2,无需使用RVM”。请注意标题中的“无需使用RVM”。 - ChaosFreak

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接