如何解决捆绑安装后,gem中的单个文件丢失,包括在使用gem安装时包含的文件
我遇到了一个我目前无法解释的怪异问题:
我正在构建一个gem并将其推送到一个私有gem存储库。使用gem install my-gem
从所述存储库安装gem时,一切正常。
但是,当我将此宝石包含在Gemfile中并运行bundle install
时,该宝石会安装,但 BUT 一个文件丢失了,我对丢失的内容有些不知所措见。
宝石的结构:
my-gem
├── my-gem.gemspec
├── lib
│ ├── my-gem.rb <== this one is simply missing after bundle install
│ ├── my-gem
│ │ ├── stuff_for_my_gem
├── ...
解决方法
Unpack the gem并验证文件是否实际包含在内。如果没有,那么您在构建过程中就会遇到问题。
,因此,此问题的根本原因是捆绑程序中存在vendor/cache
,其中包括带有错误名称的gem版本。由于在对问题进行故障排除时,gem版本没有受到影响,因此捆绑程序始终使用缓存的版本。
即使gem已从系统中完全卸载,它仍可在本地vendor/cache
中使用。在该文件夹中的bundle install
上,捆绑程序意识到它具有可用的gem,并从缓存中使用了它。
这就是为什么gem install
不会出现此问题的原因,因为捆绑创建的vendor/cache
被忽略了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。