【问题标题】:How to install ruby 1.9.2 on debian lenny? [closed]如何在 debian lenny 上安装 ruby​​ 1.9.2? [关闭]
【发布时间】:2011-01-14 11:09:56
【问题描述】:

我想在我的 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

我需要做什么才能安装它?

【问题讨论】:

  • superuser 可能是更好的提问地点。
  • @vikingosegundo:我同意。这与编程无关。基本上是“我如何使用我的操作系统”,这是一个SuperUser 类型的问题,虽然它可能更适合Unix & Linux StackExchange,但目前没有办法将问题迁移到那里。
  • 嗯,好的,直到现在还没有听说过超级用户,谢谢指出。
  • @jorg unix.SE 最近上线了;你能再检查一下吗?

标签: ruby debian


【解决方案1】:

停下来。回去。安装任何版本的 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 或从源代码手动安装,您可以随时更新。

【讨论】:

  • 我从源代码尝试了 2 天。 Ruby 不是问题,但是我总是遇到 ruby​​gems 或其他问题,当我终于让 gem 工作并安装东西时,当我想运行脚本时它总是说:“gem_prelude.rb:114:in push_gem_version_on_load_path': undefined method ' 对于 nil:NilClass (NoMethodError)"
  • 这很奇怪......我已经从源代码安装了很多次 Ruby(现在只使用 RVM,我真的不能再推荐它了),我从来没有遇到过这样的事情。但首先,您是否尝试安装 1.9.1?因为 1.9.1 从未真正得到广泛支持(它是一个实验性分支),如果你想要 Ruby 1.9.x,你应该使用 Ruby 1.9.2。另请注意,Ruby 1.9.2 已经安装了 Rubygems,因此如果您尝试安装它,您只会遇到更多问题。您应该只需要安装 Ruby 1.9.2,然后 sudo gem install rails。就是这样。
  • 我认为问题在于,如果我从源代码安装它,我不知道它安装在哪里,因此不要使用正确的 gem 命令或其他东西。经过两天的尝试,到处都有更多相同名称的版本;)
  • 我的服务器需要这个,我想将乘客及其 apache-module 与 1.9.2 和 rails 3 一起使用,这可能吗?我在他们的网站上阅读了有关 rvm 的信息,他们到处都说它是每个控制台。
  • 我觉得我应该为未来的读者指出这一点——Debian 中的 ruby​​1.9.1 包实际上包含 Ruby 1.9.2。
【解决方案2】:

首先运行这个:

apt-get update

然后安装 Ruby

apt-get install ruby

那么你需要红宝石

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

解压红宝石...

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

现在更新 ruby​​gems

gem update --system

现在我们可以安装导轨了

gem install rails

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

ruby -v
rails -v
gem -v

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

如果你想要 Ruby 1.9.2 替换以下命令:

apt-get install ruby

apt-get install ruby1.9

如果您需要开发头文件,您可以安装 ruby​​1.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(但我没有在这里介绍..)

【讨论】:

  • 这将安装 ruby​​ 1.8,我需要 ruby​​ 1.9.2
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      如果你想从 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
      

      由于向后移植不像其他软件包那样受到正常的严格质量审查,因此默认情况下它们被禁用。如果你想从 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.

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

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

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

      【讨论】:

        【解决方案6】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2023-04-05
          • 1970-01-01
          • 2011-12-16
          • 1970-01-01
          • 1970-01-01
          • 2016-01-29
          • 1970-01-01
          • 1970-01-01
          • 2011-09-29
          相关资源
          最近更新 更多