Gem gem 安装好后,如何导出给另一相同环境但没有网络的系统使用?

sevk · March 05, 2020 · Last by jasl replied at March 06, 2020 · 3641 hits

gem 安装好后,如何导出给另一相同环境但没有网络的系统使用?

找到它的.gem 文件,搞出来,在目标机器上直接安装一下就好啦。加一个 -l 参数: gem install xxx-0.0.1 -l

Reply to qichunren

如果有依赖呢?

试试在有网络的环境上使用 rbenv gem install 完,然后把整个 ~/.rbenv 目录复制过去。我自己没这样处理过,不知道 build native extension 的 gem 会不会有问题。

最好的方法当然是接上网络。

Reply to sevk

有依赖就安装咯,一样的方法。

docker 最方便了。

OS 完全一致的话,可以试试 https://bundler.io/guides/deploying.html 坑主要是二进制,需要你两台机器都提前装好依赖,版本尽量一致

Reply to jasl

该方法应该可行。最简单的应该就是通过bundle install --deployment 安装好相关的包,然后把整个目录 copy 过去。不过可能也会有问题,像 mysql,pg 这些相关的 gem 包编译的时候会依赖系统级别的的相关库,如果这些库没有安装的话就算把 Gem 包 copy 过去也无法使用相关的数据库服务。要一步步来解决这些依赖问题跟构建一个 docker 镜像的感觉差不多,还是挺麻烦的。 😅

当然有条件的话 虚拟机镜像 或者 Docker 分发还是最靠谱的选择

You need to Sign in before reply, if you don't have an account, please Sign up first.