首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将rubygem从一个安装复制到另一个安装

如何将rubygem从一个安装复制到另一个安装
EN

Stack Overflow用户
提问于 2019-06-17 10:13:04
回答 2查看 228关注 0票数 0

在不使用gem命令的情况下,将已安装的gem从一个安装复制到另一个安装时,必须执行什么操作?

我必须在没有互联网连接的服务器上安装SQLite3。通常,我可以使用gem-file的副本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gem install --local sqlite3-1.4.0.gem --platform ruby

但对于SQLite3来说,它需要连接到互联网才能获得编译一些二进制文件的库。该安装在一台有互联网连接的计算机上运行良好。

所以我的想法是让我在相同的操作系统和相同的Ruby版本上成功安装,并复制所有相关的组件,但这并不起作用。

当我打电话的时候:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'sequel'
db = Sequel.sqlite

我得到了这个错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LoadError: The specified module could not be found
d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.1/lib/sqlite3/sqlite3_native.so 
(Sequel::AdapterNotFound)

在跟踪中是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': LoadError: 126: The specified module could not be found.   - d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.1/lib/sqlite3/sqlite3_native.so (Sequel::AdapterNotFound)
  from d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.1/lib/sqlite3.rb:6:in `rescue in <top (required)>'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.1/lib/sqlite3.rb:2:in `<top (required)>'
  from d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in `require'
  from d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:130:in `rescue in require'
  from d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:34:in `require'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/adapters/sqlite.rb:3:in `<top (required)>'
  from d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from d:/bin/Ruby26-x64/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/database/connecting.rb:88:in `load_adapter'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/database/connecting.rb:17:in `adapter_class'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/database/connecting.rb:45:in `connect'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/core.rb:121:in `connect'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/core.rb:399:in `adapter_method'
  from d:/bin/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sequel-5.17.0/lib/sequel/core.rb:406:in `block (2 levels) in def_adapter_method'
  from _ruby_version.rb:21:in `<main>'

但是文件是存在的:

我的错误是什么?

我使用的是Windows Server 2016。

我在GitHub issue中找到了一个适合我的precompiled version of SQLite3,但我想使用较新的版本。

EN

回答 2

Stack Overflow用户

发布于 2019-06-17 10:52:50

为此,请使用Bundler

简而言之:

在你正在using.

  • Maintain的每台机器上运行gem install bundler,当你的Gemfile改变时,列出所有的bundle installbundle update来更新到最新的版本。这将生成Gemfile.lock文件。
  • 使用bundle exec作为拼音执行的前缀,例如bundle exec ruby myscript或ruby

这是一个简短的总结,但请阅读有关Bundler的更多信息。它是现代Ruby部署中必不可少的一部分。

票数 1
EN

Stack Overflow用户

发布于 2019-06-17 11:16:15

您需要使用bundler的package选项。

首先,您需要使用以下命令将依赖项缓存到vendor/cache中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bundle package --all --all-platforms

这将在本地安装Gemfile的所有依赖项,然后将目录添加到源代码存储库。

部署时,请确保使用bundle install --local来使用本地版本。

有关详细信息,请参阅bundle packagedocumentation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56629180

复制
相关文章
java 把文件从一个目录复制到另一个目录
方法一:简单粗暴,直接使用copy(),如果目标存在,先使用delete()删除,再复制;
崔笑颜
2020/06/08
1.9K0
javaSE之如何将一个文件复制到另一个文件
1 /* 2 * (1). 文件字符输入,输出流 3 * 文件字节输入,输出流的read和write方法使用 4 * 字节数组读写数据,即以字节为单位处理数据,因此,字节流不能很好的操作Unicode字符 5 * ,比如,一个汉字在文件中占用2个字节,如果使用字节流,读取不当会出现“乱码”现象 6 * (2).字符输入流和输出流的read和write方法 7 * 使用字符数组读写数据,即以字符为基本单位处理数据 8 * 9
Gxjun
2018/03/22
1.7K0
安装另一个mysql
https://downloads.mysql.com/archives/community/
阿超
2022/08/21
1990
安装另一个mysql
golang把文件复制到另一个目录
//本程序 主要功能是把A文件夹下的文件与B目录下文件对比,如果找到就覆盖到B相应的目录下。 // 用法: merge A目录 B目录 // merge.go package main import ( "flag" "fmt" "os" "path/filepath" "strings" "time" "github.com/Unknwon/com" ) const ( IsDirectory =
李海彬
2018/03/27
1.2K0
golang把文件复制到另一个目录
//本程序 主要功能是把A文件夹下的文件与B目录下文件对比,如果找到就覆盖到B相应的目录下。 // 用法: merge A目录 B目录 // merge.go package main import ( "flag" "fmt" "os" "path/filepath" "strings" "time" "github.com/Unknwon/com" ) const ( IsDirectory =
李海彬
2018/03/27
2.1K0
将一个CentOS环境复制到另一个CentOS
「这是我参与2022首次更文挑战的第23天,活动详情查看:2022首次更文挑战」。
Java廖志伟
2022/03/07
5700
将一个CentOS环境复制到另一个CentOS
如何在SQL Server中将表从一个数据库复制到另一个数据库
在某些情况下,作为DBA,您需要将模式和特定表的内容从数据库复制到同一实例中或在不同的SQL实例中,例如从生产数据库中复制特定表到开发人员以进行测试或排除故障。 SQL Server提供了许多方法,可以用来执行表的数据和模式复制过程。为了研究这些方法中的每一个,我们将考虑下面的场景: 托管SQL服务器:localhost。这两个数据库都驻留在同一个SQL Server 2014实例中。 源数据库:AdventureWorks2012。 目标数据库:SQLShackDemo。 将从源数据库复制到目标数据库的表
程序你好
2018/07/20
8.3K0
将一个CentOS环境复制到另一个CentOS
将一个CentOS环境复制到另一个CentOs,实现环境迁移或备份的功能 将CentOS2复制一份新的CentOS3出来,步骤如下: 创建新的CentOS3 这里的名称改吃CentOS3,后面的文件改名就是对应的这个名称 ISO映像文件路径修改,每个CentOS单独用一个ISO映像文件 直接启动 修改网络ip cd /etc/sysconfig/network-scripts/ vi ifc
Java廖志伟
2022/09/29
1.6K0
将一个CentOS环境复制到另一个CentOS
HDFS——如何将文件复制到HDFS
在Hadoop中用作文件操作的主类位于org.apache.hadoop.fs包中。基本的文件操作有open、read、write和close。实际上,Hadoop的文件API是通用的,可用于HDFS以外的文件系统。
星哥玩云
2022/06/30
2K0
kettle实现从一个cassandra同步到另一个cassandra
1、拖拽cassandra input、cassandra output控件到工作区,如下图所示:
johnhuster的分享
2022/03/28
7300
kettle实现从一个cassandra同步到另一个cassandra
java从一个目录拷贝文件到另一个目录下
** * 复制单个文件 * @param oldPath String 原文件路径 如:c:/fqf.txt * @param newPath String 复制后路径 如:f:/fqf.txt * @return boolean */ public void copyFile(String oldPath, String newPath) { try { int bytesum = 0; int byteread = 0; File oldfile = new File(oldPath
shirayner
2018/08/10
9980
用 Python 批量把文件复制到另一个文件夹
大概是三个月前,有个人找我说要我帮忙写几行代码,功能是把一个文件夹里面的所有文件拆分成 200 个文件一个文件夹,很简单的。
伪君子
2019/08/21
3.1K0
【秋招】1:机械转码(如何从一个坑,跳到另一个)
一种是直接彻底的转,如果打算直接进军互联网行业,进大厂,拿机械一辈子也可能达不到的高薪并做好了996的准备,那就直接转。
周旋
2022/09/19
1.4K0
【秋招】1:机械转码(如何从一个坑,跳到另一个)
MySQL/Oracle怎么把一个表的数据复制到另一个表
创建新表复制原有表的结构和数据 create table new_table as select * from old_table; 复制一张表的数据到另一张表(表结构相同) INSERT into table1 select * from table2; 复制一张表的数据到另一张表(表结构相同) INSERT into table1(表中字段1,表中字段2) select 表中字段1,表中字段2 from table2;
共饮一杯无
2022/11/28
1.3K0
flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?
由于keys返回 map 键的Iterable<String>,因此您可以使用where方法检查所需的键,然后可以基于旧 map 值填充值。
徐建国
2021/08/30
1.4K0
使用VBA将图片从一个工作表移动到另一个工作表
今天跟大家分享的技巧来自thesmallman.com,一个分享Excel技巧技术的网站。
fanjy
2022/11/16
4K0
使用VBA将图片从一个工作表移动到另一个工作表
HDFS——如何将文件从HDFS复制到本地
复制文件到本地文件系统。可用-ignorecrc选项复制CRC校验失败的文件。使用-crc选项复制文件以及CRC信息。
星哥玩云
2022/06/30
6.9K0
Android如何将一个项目作为library导入另一个项目
当我第一次被要求用这样的方法将一个项目当做library导入另一个项目时,其实我是拒绝的,因为,你不能让我导,我就马上导,第一我要试一下,因为我不愿意导入完成后再加上一些特技上去,代码“DUANG~~”一下,很智能,很完美,这样程序猿出来一定会骂我,根本没有这样的代码!就证明我导入的library是假的。后来我也经过证实这种导入方法是简单而实用的,我用了大概一个月左右,感觉还不错,后来我在敲代码的时候也要求他们不要加特技,因为我要让程序猿们看到,我导入后是这个样子,你们导入后也是这个样子!
代码咖啡
2018/08/28
7350
Android如何将一个项目作为library导入另一个项目
点击加载更多

相似问题

rubygem安装SSL错误

10

安装rubygem时出错

11

将数据从一个DataGrip安装复制到另一个安装

16

将SQLLDR从一个Oracle安装复制到另一个Oracle安装

12

在Rubygem中安装RSpec

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文