Ruby on rails CircleCI说您的包在您的文件中列出的任何源中都找不到

Ruby on rails CircleCI说您的包在您的文件中列出的任何源中都找不到,ruby-on-rails,github,rubygems,bundler,circleci,Ruby On Rails,Github,Rubygems,Bundler,Circleci,CircleCI安装依赖项错误: Your bundle is locked to my_cool_gem (0.7.2), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of my_cool_gem (0.7.2) has removed it. You'll need

CircleCI安装依赖项错误:

Your bundle is locked to my_cool_gem (0.7.2), but that version could not be
found in any of the sources listed in your Gemfile. If you haven't changed
sources, that means the author of my_cool_gem (0.7.2) has removed it. You'll
need to update your bundle to a version other than my_cool_gem (0.7.2) that
hasn't been removed in order to install.
CircleCI输出的屏幕截图:

CircleCI找不到我发布到GitHub包中的gem,但我在本地开发中没有这样的问题

根据GitHub的文档,我有RubyGems和Bundler的合格版本——我相信我已经按照说明发布和使用了上述已发布的gems。。。而且,同样地,使用在本地起作用,但在CircleCI中失败

RubyGems版本:

-bash> gem --version
3.0.9
捆绑程序版本:

-bash> bundle --version
Bundler version 1.17.3
Gemfile:

source 'https://rubygems.org'                                                   
source 'https://rubygems.pkg.github.com/my_cool_org'

gem 'my_cool_gem', '0.7.2'
请注意,我也尝试过:

source 'https://rubygems.org'                                                   
source 'https://rubygems.pkg.github.com/my_cool_org'

source 'https://rubygems.pkg.github.com/my_cool_org' do
  gem 'my_cool_gem', '0.7.2'
end

尝试运行
bundle update my_cool\u gem
,如果它修改了
Gemfile.lock
,应该可以修复它。

您是否验证了它在源代码中仍然可用?我知道你说它在本地工作,但那可能是因为本地缓存版本的gem。Bundle不会尝试安装已经存在的东西


您可以通过在本地卸载并再次运行bundle install来验证这一点。

确保已正确设置环境变量,以便使用
rubygems.pkg.github.com
进行身份验证


(虽然可以设置变量,但值可能不正确-我就是这样。)

有趣的是,听起来像是一个图像错误。如果您尝试列出gem的所有可用版本,会发生什么<代码>gem搜索^gem\u name$--全部


您是否尝试过提前强制更新
sudo gem update——系统

对我来说,问题是本地机器和CI上的访问令牌不同。CI上的密钥是有效的,但它对包含请求的gem的特定存储库没有权限


尽管Github为每个组织提供了单一的注册中心,但gems与公司的存储库相关联。注册表中的包将可见或不可见,这取决于访问令牌的这些存储库的权限。例如,用户可以访问组织的某些存储库,而不必访问其他存储库-如果使用该用户的个人访问令牌,则只有与允许的存储库关联的gem才可见。其他版本将被隐藏,因此错误为“找不到该版本”。

感谢您尝试帮助我。不幸的是,
bundle update
无效(未更改任何文件)。我怀疑是这样的结果,因为我已经运行了
bundle install
并提交了对
Gemfile
Gemfile.lock
的更改(因为我将gem从
0.7.1
更新为
0.7.2
,以尝试调试这种情况。我不知道还有什么可以尝试的。再次感谢。在本地,它什么都没有做(锁文件未更改)。在CI上,它显示错误:
无法在集合中找到满足我的\u cool\u gem(~>2.0)的规范。可能锁文件已损坏?
我真的只想(从任何人那里)得到答案-我不关心“信誉良好的源”-我想下次我会选择“提请注意这个问题”。抱歉!感谢您尝试帮助我。是的,我已验证gem在源代码中可用。它列在
https://github.com/orgs/my_cool_org/packages
(我将URL格式化为代码,因为我不希望它变成链接,因为我使用的是
my\u cool\u gem
存根)。谢谢,但我碰巧已经找到了答案-根据我上面的回答…虽然设置了变量,但它是无效的(我相信是因为创建身份验证令牌的用户已从组织中删除)。对我来说,
gem search
with
--all
仅搜索rubygems.org,因此没有该gem,无论是本地还是本地(在
bundle install
工作的地方)和在CI上(不工作的地方)。
sudo gem update--system
没有帮助。在这种情况下,我得到了
错误的用户名或密码。
错误。如果未设置密码(删除
~/.bundle/config
),错误可能是rubygems.pkg.github.com需要身份验证。。因此不太可能是原因。很可能该项是有效的,但它没有该存储库的权限。github在每个存储库的注册表中分隔gem,尽管每个组织有一个注册表URL。