Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 错误:没有这样的API密钥。请将其添加到您的配置中(在初始“gem push”时自动完成)。如何解决这个问题?_Ruby_Rubygems - Fatal编程技术网

Ruby 错误:没有这样的API密钥。请将其添加到您的配置中(在初始“gem push”时自动完成)。如何解决这个问题?

Ruby 错误:没有这样的API密钥。请将其添加到您的配置中(在初始“gem push”时自动完成)。如何解决这个问题?,ruby,rubygems,Ruby,Rubygems,我想在Rubygems上推一块宝石。但我总是得到这样的信息: C:\ruby\my_gem>gem push my_gem-0.0.1.gem -k rubygems_api_key Pushing gem to https://rubygems.org... ERROR: No such API key. Please add it to your configuration (done automatically on initial `gem push`). 我在C:\Docum

我想在Rubygems上推一块宝石。但我总是得到这样的信息:

C:\ruby\my_gem>gem push my_gem-0.0.1.gem -k rubygems_api_key
Pushing gem to https://rubygems.org...
ERROR:  No such API key. Please add it to your configuration (done automatically on initial `gem push`).
我在
C:\Documents and Settings\User\.gem\credentials

---
rubygems_api_key: e06b38 ...
:rubygems_api_key: e06b38 ...
---
:rubygems_api_key: e06b38 ...
:someother_api_key: 43240230...
:secret: 08n23u30...
我从Rubygems的个人资料页面复制/粘贴它。所以它是正确的。但是我犯了一个错误。
有什么问题?如何解决它?

我认为您的凭证文件中的第二行不正确。在我的文件中,第一行是三个破折号,第二行以冒号开头。所以我认为应该是:

---
:rubygems_api_key: e06b38 ...

如果你转到rubygems.org上的个人资料页面,你会发现一个
curl
命令,你可以剪切并粘贴到你的命令行,该命令行将为你创建这个文件。

键名的前缀应该是冒号。Ruby导入yaml文件时,前面没有冒号的键被解释为字符串;以冒号为前缀的键被解释为符号。下面是一个例子:

{"string_key" => "value 1", :symbol_key => "value 2"}.to_yaml
输出如下:

---
string_key: value 1
:symbol_key: value 2

出于某种原因,rubygems从
rubygems\u api\u键
中删除
api\u键
部分。但是,您可以将任何其他密钥添加到凭据文件中,并使用它按其全名引用它

如果您在
.gem/credentials

---
rubygems_api_key: e06b38 ...
:rubygems_api_key: e06b38 ...
---
:rubygems_api_key: e06b38 ...
:someother_api_key: 43240230...
:secret: 08n23u30...
你应该能跑

gem push my_gem-0.0.1.gem -k rubygems
# this is the same as not using the -k/--key arg
gem push my_gem-0.0.1.gem


是否需要安装
curl
?我在Windows上。不,剪切和粘贴应该可以。删除你的第二行。我也在windows上。我只是假设Linux,因为世界上大多数地方都是:-)@Green:你发现问题了吗?