如何在debian lenny上安装ruby 1.9.2?

时间:2011-01-14 11:09:56

标签: ruby debian

我想在我的debian lenny服务器上安装最新的ruby和rails。

我找到了包http://packages.debian.org/lenny-backports/ruby1.9.1-full但是当我尝试安装它时,我得到:

atlas:~# apt-get install ruby1.9.1-full
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Couldn't find package ruby1.9.1-full

我的sources.list看起来像这样:

atlas:~# cat /etc/apt/sources.list

deb http://ftp.se.debian.org/debian/ lenny main non-free contrib
deb-src http://ftp.se.debian.org/debian/ lenny main non-free contrib

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

我需要做些什么来安装它?

6 个答案:

答案 0 :(得分:17)

停止。回去。安装Ruby Debian的任何版本,可能是1.8.7或1.8.7。然后安装RVM。我对using RVM with Ubuntu有一些指示(抱歉,不是Debian,但它很接近)。说真的,RVM可以轻松安装任何版本的Ruby。然后,使用RVM安装Ruby 1.9.2,你不需要1.9.1。

这将取决于您想要使用Ruby的内容。出于开发目的,使用RVM非常有效。出于服务器目的,我认为可以使用它,但是您可能会遇到一些问题。我认为RVM为您提供了一些脚本,您可以使用它们来运行带有init脚本和cron作业的Ruby脚本。

或者,您只需从源代码安装即可。这并不难,也不是debian方式,但它会完成工作。这可能比安装一些第三方软件包更好,您可能不知道他们在编译期间做了什么,以及如何在出现安全漏洞的情况下获得快速更新。使用RVM或从源手动安装,您可以随时更新。

答案 1 :(得分:8)

首先运行:

apt-get update

然后安装Ruby

apt-get install ruby

然后你需要rubygems

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz

Untar ruby​​gems ...

tar xvf rubygems-1.3.5.tgz
cd rubygems-1.3.5
ruby setup.rb
ln -s /usr/bin/gem1.8 /usr/bin/gem

现在更新rubygems

gem update --system

现在我们可以安装rails

gem install rails

您可以使用以下命令检查安装是否成功:

ruby -v
rails -v
gem -v

如果您需要更多帮助,请告诉我们!

如果您想要Ruby 1.9.2,请替换以下命令:

apt-get install ruby

apt-get install ruby1.9

如果你需要dev头文件,你可以安装ruby1.9-dev。

apt-get install ruby1.9-dev

如果你不能以这种方式安装它们,你需要查看你的apt-get源。

apt-cache search ruby1.9

libhtree-ruby1.9 - HTML/XML tree library for Ruby 1.9
....
libinotify-ruby1.9 - Ruby interface to Linux's inotify system
....
libdbm-ruby1.9 - DBM interface for Ruby 1.9
libgdbm-ruby1.9 - GDBM interface for Ruby 1.9
....
**ruby1.9-dev** - Header files for compiling extension modules for the Ruby 1.9
ruby1.9-elisp - ruby-mode for Emacsen
ruby1.9-examples - Examples for Ruby 1.9
**ruby1.9** - Interpreter of object-oriented scripting language Ruby 1.9
libstfl-ruby1.9 - Ruby bindings for the structured terminal forms language/library

我希望这会有所帮助。我建议使用RVM(但我没有在这里介绍..)

答案 2 :(得分:4)

RVM是一个很好的解决方案,但不适用于生产环境。它的$ PATH魔法太挑剔而且经常打破。

我建议你自己建一个.deb。您从源代码编译Ruby,然后使用checkinstall安装它。然后,您可以将它创建的.deb分发到任何计算机,并使用dpkg 安装/卸载它,就像使用任何软件包一样

Here's a tutorial在Ubuntu中执行此操作;它应该很容易翻译成Debian。

答案 3 :(得分:3)

不要用Debian安装任何红宝石,最近主要维护者之一放弃了它们:http://www.lucas-nussbaum.net/blog/?p=617 Debian的红宝石过去很丑陋并且经常坏掉,所以安装它的最好方法是使用rvm,这是一个在同一台机器上管理gemset和不同版本的红宝石的小程序。

答案 4 :(得分:2)

如果您想从Lenny backports存储库安装软件包,您显然需要在sources.list中使用它:

deb http://Backports.Debian.Org/debian-backports lenny-backports main contrib non-free
deb-src http://Backports.Debian.Org/debian-backports lenny-backports main contrib non-free

由于backport不受其他软件包的正常严格质量审核,因此默认情况下会禁用它们。如果要从backports存储库安装包,则必须将分发显式传递给apt-getaptitude,就像使用experimental存储库一样:

apt-get -t lenny-backports install ruby191-full # or
aptitude -t lenny-backports install ruby191-full

由于默认情况下已禁用向后移植的软件包,因此除非您在/etc/apt/preferences中添加固定,否则您甚至无法获取它们的安全更新:

Package: *
Pin: release a=lenny-backports
Pin-Priority: 200

All of this is clearly spelled out on the Debian Backports website.

请注意,您应该注意不要混合包管理系统。您应该 通过RubyGems通过APT 安装所有Ruby库,但混合它们通常不是一个好主意。

另外,如果你使用Debian的RubyGems包,你应该只通过APT更新它,而不是通过RubyGems的内置更新机制(gem update --system)。实际上,我相信在当前版本中,Debian已经删除了更新机制以防止这种情况,但情况并非总是如此。

就个人而言,我在生产服务器上使用Debian Ruby包时没有问题,而且我根本不使用RubyGems ,我只使用Debian提供的Ruby库。

答案 5 :(得分:2)

只是要对原始问题添加评论,但我想我还没有获得那个特权...

无论如何,我发现这个有用的链接,并认为我会分享它:

http://blog.binarybalance.com.au/2010/08/28/compiling-ruby-1-9-2-on-debian-lenny