我想在我的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
我需要做些什么来安装它?
答案 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 rubygems ...
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-get
或aptitude
,就像使用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