释放 gem 时,rake release 挂起

Posted

技术标签:

【中文标题】释放 gem 时,rake release 挂起【英文标题】:rake release hangs when releasing a gem 【发布时间】:2013-07-04 07:51:31 【问题描述】:

我正在尝试将我的第一个 gem 发布到 Ruby Gems。 gem 在本地运行良好。

我使用以下方式发布它:

$rake release

这在控制台中给了我这个:

example_gem 0.0.3 built to pkg/example_gem-0.0.1.gem 
Tagged v0.0.1
Pushed git commits and tags

然后进程挂起。我等了 20 分钟,然后取消了。

当我再次尝试释放时,我得到了:

rake aborted!
This tag has already been committed to the repo.

所以我认为 gem 已成功提交,但是 16 小时后,gem 不在我在 Ruby Gems 上的帐户下。

所以我升级了版本并再次尝试使用--trace,但进程挂在同一个地方,只有以下添加到输出:

** Invoke release (first_time)
** Execute release
example_gem 0.0.3 built to pkg/example_gem-0.0.3.gem
Tagged v0.0.3
Pushed git commits and tags

出了什么问题?

【问题讨论】:

【参考方案1】:

为了 Google 搜索和存档:我遇到了同样的问题,但原因不同。当我使用推荐的命令下载我的 RubyGems 凭据文件时:

curl -u pond https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials

...我一定是输入了错误的密码,因为该文件实际上包含文本“HTTP Basic: Access denied.”。没有错误输出到控制台。重复curl 命令并更加小心地输入密码会生成一个合理的credentials 文件,并且下一次运行rake release 的尝试成功了。

如果您收到有关现有标签的投诉,您可能只需要在本地将其删除即可;使用:

git tag

...查看其中的内容,一旦您确定了基于版本的标签(例如“v2.0.0”),请使用以下命令将其删除:

git tag -d <tag_name>

【讨论】:

如何在窗口上执行此操作?..我试过这个,但结果是“系统找不到指定的路径。” 我对 Windows 无能为力,抱歉,我不使用它。我通常发现软件开发只有在 OS X 或 Linux 主机上才真正可行,除非你在他们的 IDE 中做 100% 以微软为中心的事情。也许你是在直接复制我的命令——~/.gem/credentials 是一个类 Unix 路径名。 ~ 表示“您的主文件夹”。您需要在其中放置等效的 Windows 路径...C:\blah\blah\blah 或其他更先进的东西; Windows 非常奇怪。【参考方案2】:

撞了版本,再试一次。这次奏效了。我所做的唯一更改是从 git 中删除 Gemfile.lock。

【讨论】:

以上是关于释放 gem 时,rake release 挂起的主要内容,如果未能解决你的问题,请参考以下文章

为新gem加载rake任务的路径是什么

ruby Gem或项目语义版本控制rake任务

Gem::LoadError: You have already activated rake

如何在 ruby​​ on rails 的亚马逊 aws 服务器中使用 gem 执行 rake 任务?

整理Ruby相关的各种概念(rvm, gem, bundle, rake, rails等)

Ruby on Rails:运行 rake 命令时出现错误消息