捆绑程序:不支持在使​​用系统 gem 时使用自定义路径

2024-03-16

我在用GitLab-CI/CD建立我的Rails应用。我注意到我的构建失败了Using a custom path while using system gems is unsupported错误,之前工作得很好。

尝试检查较新的更新版本,但没有发现任何问题。有人对最近的更新或上述问题有任何了解吗?

贝娄是我的gitlab-ci.yml

variables:
  GIT_SUBMODULE_STRATEGY: recursive

cache:
  key: ${CI_JOB_NAME}
  paths:
    - vendor/ruby

before_script:
    - apt-get update -qq
    - ruby -v
    - which ruby
    - gem --version
    - git --version
    - gem update --system 2.7.6
    - gem install bundler -v 2.0.1
    - bundle -v
    - bundle config ${REPO_URL} ${BUNDLE_GITLAB__TOKEN}
    - bundle config --global disable_shared_gems true
    - bundle install --jobs $(nproc)  "${FLAGS[@]}" --path vendor 

rubocop:
  tags:
    - rubocop
  script:
    - bundle exec rubocop

# rspec:
#   stage: test
#   script:
#     - bundle exec rspec

下面是我遇到的简短错误

$ apt-get update -qq
$ ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]
$ which ruby
/usr/local/bin/ruby
$ gem --version
3.0.3
$ git --version
git version 2.20.1
$ gem update --system 2.7.6
Updating rubygems-update
Successfully installed rubygems-update-2.7.6
Installing RubyGems 2.7.6
Bundler 1.16.1 installed
RubyGems 2.7.6 installed
Regenerating binstubs



------------------------------------------------------------------------------

RubyGems installed the following executables:
    /usr/local/bin/gem
    /usr/local/bin/bundle

RubyGems system software updated
$ gem install bundler -v 2.0.1
Successfully installed bundler-2.0.1
1 gem installed
$ bundle -v
Bundler version 2.0.1
$ bundle config https://gitlab.com/dharshannn/test-star.git ${BUNDLE_GITLAB__TOKEN}
$ bundle config --global disable_shared_gems true
$ bundle install --jobs $(nproc)  "${FLAGS[@]}" --path vendor
Using a custom path while using system gems is unsupported.

path:
Set for your local app (/usr/local/bundle/config): "vendor"

path.system:
Set via BUNDLE_PATH__SYSTEM: true

disable_shared_gems:
Set for the current user (/root/.bundle/config): true
ERROR: Job failed: exit code 1

今天我也发生了同样的事情。我很确定没有更新bundler or gem。然而 Docker 镜像已经更新(我正在使用ruby:2.6.3)。当这种情况开始发生时,我还添加了一个新的依赖项,因此我怀疑它依赖于已安装在系统路径中的 gem,因此出现错误消息。

您可以通过在您的文件中指定以下配置变量来解决这个问题.gitlab-ci.yml:

variables:
  BUNDLE_DISABLE_SHARED_GEMS: "true"
  BUNDLE_PATH__SYSTEM: "false"

这会将 Bundler 配置为不使用共享 gem 并完全禁用系统 gem。

See https://bundler.io/v2.0/bundle_config.html https://bundler.io/v2.0/bundle_config.html

disable_shared_gems (BUNDLE_DISABLE_SHARED_GEMS):阻止 Bundler 访问安装到 RubyGems 正常位置的 gem。

and

path.system (BUNDLE_PATH__SYSTEM):Bundler 是否将 gems 安装到默认系统路径 (Gem.dir)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

捆绑程序:不支持在使​​用系统 gem 时使用自定义路径 的相关文章

  • Rails - 从对象哈希创建选择标签

    我需要根据哈希中的可用值创建一个选择框 例如 我有一个 事物 该 事物 有多种状态字段 1 gt State A 2 gt State B 通过事物上的方法可用 我如何从中构建一个选择标签 正如施罗克韦尔所说 Hash each a 返回以
  • Rails:基于关联值的ActiveRecord查询

    我有 2 个型号 Report and Server具有belongs to 和has many 关系 我使用创建了一个访问器方法delegate这允许Report来查找其关联的Server company id 现在 我想运行一个查询Re
  • Mysql2::错误:字符串值不正确

    我有一个在生产模式下运行的 Rails 应用程序 但是今天当用户尝试保存记录时突然出现此错误 Mysql2 Error Incorrect string value 更多详细信息 来自生产日志 Parameters utf8 gt lt 9
  • jQuery 绑定 ajax:成功无法在 Rails 3 应用程序中为新创建的(ajax)项目工作

    编辑这篇文章是因为我发现问题实际上在于rails无法绑定到ajax success函数 使用导轨3 2 3 感谢您花时间阅读并尝试提供帮助 我在 ajax success 删除项目上添加一个简单的淡出功能 如下所示 document rea
  • Rails 6 + Capistrano - 没有这样的 puma.sock 文件

    拜托 我有一个大问题10多个小时了 每当我使用 Capistrano 和 Puma 在 Rails 中运行应用程序部署并重新启动 nginx 时 当我尝试访问我的 Web 时 我会看到此错误 在此输入图像描述 https i stack i
  • 绕过标记为公开的特定记录的设计授权的最佳方法是什么

    我在 Rails 3 2 项目中使用 devise 和 cancan 我有一个event模型与一个 布尔标志public 如果事件被标记为公开 gt 真实那么我希望任何人 无论登录还是无法访问记录 GET events id 如果它被标记为
  • 是否可以在一台机器上使用 GitHub 和 GitLab?

    我的账户位于GitHub and GitLab 我生成了 RSA 密钥并将其添加到我的帐户中GitLab 但现在我需要与GitHub在第二个项目上 我知道GitLab和GitHub都使用git 请告诉我是否可以在一台机器上使用 GitHub
  • Rails form_for :remote=>true 没有调用 js 方法

    我不知道为什么这不起作用 我正在学习 Rails 我正在关注一本书 它说要这样做 div class field div div class field div
  • Unit::Test 与 Rspec 之间的区别 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对感兴趣Test Unit and Rspec 有人可以向我解释一下两者之间的主要区别是什么 就它们的运作原理而言 测试 单位更类似于 JUn
  • 如何检查gitlab中项目的id

    我想使用 GitLab API 来获取我的项目的内容 网址是这样的 https gitlab com api v4 projects id repository files file path private token xxxxx 我已经
  • Rails:如何将替代 Accept: content-types 视为 JSON?

    到目前为止我已经找到了两种方法request format json 在 Rails 中为 true 即传入请求被视为 JSON 一种是如果您请求资源并以 json另一个是如果您提供标头Accept application json在你的要
  • Errno::EIO:输入/输出错误 -

    class FaxFetchWorker include Sidekiq Worker sidekiq options retry gt false def perform job id 0 logger warn perform is i
  • Rails 加载完成后运行代码?

    我有一个定期任务需要每分钟执行一次 使用delayed job 我希望 Rails 在加载完成后立即自动将其排队 如果系统中尚不存在此类任务 对于我来说 在整个 Rails 引导流程结束时运行一些代码的好地方是什么 有人建议 config
  • Capistrano 无法部署到远程服务器

    SOLUTION 解决方案是将以下内容添加到 production rb 的顶部 unshift File expand path lib ENV rvm path Add RVM s lib directory to the load p
  • Rails 形式的当前日期

    我正在学习 Rails 并在书外进行一些探索 并随着知识的增长创建一个具有附加功能的简单应用程序 我正在编写一个简单的博客应用程序 我在表单中添加了一个名为 日期 的字段 我不希望这是一个字段 我希望它从服务器获取日期并将其自动放入数据库中
  • Capistrano 部署:从独角兽开始

    使用 capistrano 进行部署 一切都很顺利 然后当部署 启动 在部署 冷期间 时 它会产生错误 32m2013 03 14 15 03 05 executing deploy start 0m 33mexecuting etc in
  • Passenger 无法识别本地安装的 gem,可使用打包的 gem

    这是一个生产服务器 我已经安装了 Passenger 并且大部分情况下都可以正常工作 然而 我总是必须将宝石与项目打包在一起 如果不这样做 我会收到以下错误消息 Missing the Rails 2 3 8 gem Please gem
  • NoMethodError:未定义方法“needs_migration?”对于 ActiveRecord::Migrator:Class

    我收到以下错误消息 不知道如何解决它 有人可以帮忙吗 NoMethodError 未定义方法 needs migration 为了 ActiveRecord 迁移器 类 这是 config ru 代码 require config envi
  • 在Rails环境中执行Ruby Worker脚本

    我有以下案例 我希望能够将独立的 Ruby 脚本作为守护进程运行 我希望能够在我的 Rails 项目的上下文 环境中执行此脚本 例如 以便该脚本可以访问后端 我的 Rails 模型 有没有一种简单的方法可以实现这一点 Thanks Use
  • 如何在 Ruby on Rails 中读取远程文件的内容?

    这是我的文件 http example com test txt http example com test txt 我必须阅读以下内容http example com test txt http example com test txt

随机推荐