【问题标题】:How to install some ruby versions via rbenv in an isolated network environment如何在隔离的网络环境中通过 rbenv 安装一些 ruby​​ 版本
【发布时间】:2017-07-16 20:12:34
【问题描述】:

环境

  • CentOS 6.8
  • 我已经在上面安装了最新的 rbenv
  • 与 Internet 或离线环境隔离
  • 我可以带一些文件scp

问题

我想在 rbenv 上安装一些 ruby​​ 版本。但是,由于该服务器无法直接连接到 Internet,我无法使用 rbenv install 命令安装某些 ruby​​ 版本。你能想出一些方法来安装一些 ruby​​ 版本吗?我不介意是否使用 ruby​​-build。

[更新] - 到目前为止我尝试了什么

使用vagrant init bento/centos-6.7 创建了一个VM,并将rbenv.zip 和ruby-1.9.3-p286.tar.gz 发送到它的/home/vagrant/ 目录。

yum instll -y vim zip tree gcc

sudo su -
cd /home/vagrant
unzip rbenv.zip && mv rbenv /opt/.rbenv

echo 'export PATH="/opt/.rbenv/bin:/opt/.rbenv/libexec:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

exec $SHELL -l

mkdir /opt/.rbenv/versions

cd /root/vagrant/
tar zxvf ruby-1.9.3-p286.tar.gz && cd ruby-1.9.3-p286
./configure --prefix=/opt/.rbenv/versions/ruby-1.9.3-p286
make install

rbenv rehash
rbenv versions # -> Warning: no Ruby detected on the system
exec $SHELL -l
rbenv versions # -> Warning: no Ruby detected on the system

rbenv -v # -> rbenv 1.1.0

cd /opt/.rbenv/versions
tree -L 2 # -> The result is below
.
└── ruby-1.9.3-p286
    ├── bin
    ├── include
    ├── lib
    └── share

【问题讨论】:

  • 如果您有可用的 HTTP 代理,您可以设置 http_proxy 环境变量。
  • 如果您希望在完全离线的环境中做事,您可能希望使用类似Docker 的东西来准备一个完全打包、打补丁、准备就绪并可以部署的 VM 容器作为图像。另一种方法是源安装,忘记rbenv,但撤消可能会很麻烦。

标签: ruby rbenv


【解决方案1】:

[注意 - 此答案是在上次更新原始问题之前发布的]

根据rbenv documentation,你应该可以自己编译一个Ruby安装,然后链接到rbenv文件夹:

安装 Ruby 版本

除了安装命令之外,您还可以手动下载和编译 Ruby,并将其作为 ~/.rbenv/versions/ 的子​​目录。该目录中的条目也可以是指向安装在文件系统其他位置的 Ruby 版本的符号链接。 rbenv 不在乎;它只会将versions/目录中的任何条目视为单独的Ruby版本。

【讨论】:

  • 感谢您的回复。我也尝试过手动安装,但没有出现一些错误。我更新了我的问题,附上了我到目前为止所做的事情。似乎 rbenv 无法识别我手动安装的 ruby​​。
  • 似乎 rbenv 可能存在问题,或者说明中缺少某些内容。我会在 github 上开一张票,然后问发生了什么事。如果您找到解决方案,也请在此处更新解决方案。
  • 谢谢!如果我也发现了,我会在这里写解决方案:)
猜你喜欢
  • 1970-01-01
  • 2022-06-12
  • 2018-01-03
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多