【问题标题】:compile ruby 1.9.3 along with required gems to make it as like package bundle编译 ruby​​ 1.9.3 以及所需的 gem,使其像包包一样
【发布时间】:2017-04-28 02:23:54
【问题描述】:

我们没有适用于 CentOS 5.x 的 ruby​​ 1.9.3 rpm,我希望从源代码编译这个 ruby​​ 版本。我可以使用以下步骤编译它,

cd /usr/src wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz tar zxf ruby-1.9.3-p0.tar.gz cd ruby-1.9.3-p0 ./configure --prefix=/usr/local/ruby193 --disable-install-doc --with-opt-dir=/usr/local/lib make && make install

然后我将简单地压缩 ruby​​193 并分发到我的所有服务器。但是我正在寻找与所需的额外 gem 一起编译的方法,因此在我捆绑它之后以及在安装时不需要安装任何额外的 gem。

所以我可以简单地复制 zip 文件并将其解压缩到所有应该可以工作的服务器上,而无需安装任何额外的安装要求。通过这种方式,我可以在运行 CentOS 5、CentOS 6 和 SunOS 的所有设备上制作独特的 ruby​​ 版本。但不确定这是否也适用于 CentOS 4,由于某些应用程序要求,我仍在为少数服务器使用此操作系统版本。

更新:

终于可以通过下面的方式实现了,

  • 编译红宝石
  • 安装了必要的 gem
  • 制作成 tar gz 文件

复制到另一台服务器,它工作正常。但唯一的问题是 libyaml,

[root@server-test bin]# ruby --version
ruby 1.9.3p551 (2014-11-13) [x86_64-linux]
[root@server-test bin]# gem list
/usr/local/dops/tools/ruby193/lib/ruby/1.9.1/yaml.rb:84:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

*** LOCAL GEMS ***

bigdecimal (1.1.0)
ffi (1.9.18)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
rubygems-update (2.6.11)

我在编译 ruby​​ 之前从源代码编译了 yaml,但不确定为什么当我复制到其他服务器时仍然出现此错误。但它在我编译的服务器上运行良好。

请给个意见..

更新 2:

经过更多调试发现库 libyaml-0.so.2 不存在。

LoadError: libyaml-0.so.2: cannot open shared object file: No such file or directory

我无法在所有服务器上编译 yaml,然后它会再次手动编译。如果我只是将文件libyaml-0.so.2从工作服务器复制到/lib下的新文件并运行ldconfig,它会工作吗?

【问题讨论】:

    标签: rubygems ruby-1.9.3


    【解决方案1】:

    最后我从源代码编译并创建为 tar 包。我必须从源代码编译 yaml 并包含 lib 文件夹以使其工作。

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2013-01-13
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多