【发布时间】: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
然后我将简单地压缩 ruby193 并分发到我的所有服务器。但是我正在寻找与所需的额外 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