捆绑安装后 gem 中的单个文件丢失,使用 gem 安装时包含
Single file from gem missing after bundle install, included when using gem install
我 运行 遇到了一个我目前无法解释的奇怪问题:
我正在构建一个 gem 并将其推送到私有 gem 存储库。当使用 gem install my-gem
从所述存储库安装 gem 时,一切都按预期进行。
但是,当我在 Gemfile 中包含此 gem 和 运行 bundle install
时,gem 安装,BUT 缺少一个文件,并且我有点不知所措。
gem 的结构:
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
没有出现问题的原因,因为这样一来,bundle 创建的 vendor/cache
就被忽略了。
我 运行 遇到了一个我目前无法解释的奇怪问题:
我正在构建一个 gem 并将其推送到私有 gem 存储库。当使用 gem install my-gem
从所述存储库安装 gem 时,一切都按预期进行。
但是,当我在 Gemfile 中包含此 gem 和 运行 bundle install
时,gem 安装,BUT 缺少一个文件,并且我有点不知所措。
gem 的结构:
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
没有出现问题的原因,因为这样一来,bundle 创建的 vendor/cache
就被忽略了。