'无法从远程存储库中读取'从GitHub公共回购安装NPM

时间:2017-04-12 04:20:21

标签: git github npm

我在安装一些NPM软件包时遇到问题。当从the repo安装NPM包(例如angular2-materialize)时会发生这种情况:

npm i InfomediaLtd/angular2-materialize

也有它的叉子。我试图用相同的结果创建自己的叉子。

安装它会导致错误,

 Error: Command failed: git -c core.longpaths=true clone --template=<...>\npm-cache\_git-remotes\_templates --mirror git@github.com:InfomediaLtd/angular2-materialize.git <...>\npm-cache\_git-remotes\git-github-com-InfomediaLtd-angular2-materialize-git-2ec1a411
 Cloning into bare repository '<...>\npm-cache\_git-remotes\git-github-com-InfomediaLtd-angular2-materialize-git-2ec1a411'...
 Host key verification failed.
 fatal: Could not read from remote repository.

 Please make sure you have the correct access rights
 and the repository exists.

回购是公开的,它肯定存在,可以用

克隆
git clone git://github.com/InfomediaLtd/angular2-materialize.git

另一方面,this fork没有错误(回购名称已被更改):

npm i thcheng/angular-plus-materialize

其他回购也可以毫无问题地安装:

npm i toddmotto/angular-component

我已尝试在Windows上使用所有NPM版本,也在Ubuntu服务器上尝试了相同的结果。我以管理员/ root身份运行NPM并尝试清理NPM缓存(正如相关问题通常所示)。

特别是这个回购有什么问题吗?那里发生了什么以及如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

in this issue所示,这可能是package.json dependencies中的一个问题。

请参阅kind of fix applied for the issue I mention,按版本替换ssh网址。

答案 1 :(得分:0)

问题似乎是由于package.json中没有version字段。虽然the fork that has no issue contains the field

这显然是在NPM 5.x中修复的错误。

答案 2 :(得分:0)

配置 ssh-agent 程序以使用SSH密钥:

确保您的id_rsa文件位于c:\users\$username\.ssh

文件夹中

打开控制台并运行start-ssh-agent。它会找到您的id_rsa并提示您输入密码

start-ssh-agent
Removing old ssh-agent sockets
Starting ssh-agent:  done
Enter passphrase for /c/Users/youruser/.ssh/id_rsa:
Identity added: /c/Users/youruser/.ssh/id_rsa (/c/Users/youruser/.ssh/id_rsa)

然后尝试再次运行npm install

注意: ssh-agent也可能已经在运行:

start-ssh-agent
Found ssh-agent at 402860
Found ssh-agent socket at /tmp/ssh-YT2trepckpeN/agent.431360

在这种情况下使用ssh-add它会找到您的id_rsa并提示您输入密码

ssh-add
Enter passphrase for /c/Users/youruser/.ssh/id_rsa:
Identity added: /c/Users/youruser/.ssh/id_rsa (/c/Users/youruser/.ssh/id_rsa)

答案 3 :(得分:-1)

您的计算机上没有ssh密钥。

如果您希望在没有ssh密钥的情况下克隆它,请使用https方法而不是git ://

如何将ssh密钥添加到github帐户?

  • 生成新的ssh密钥(如果已有密钥,则跳过此步骤)
    ssh-keygen

  • 获取密钥
    cat ~/.ssh/id_rsa.pub

  • 登录github帐户

  • 点击右上角的牧场主(设置)
    github account settigns
  • 点击SSH keys
    ssh key section
  • 点击Add ssh key
    Add ssh key
  • 粘贴您的密钥并保存

你们都准备出发了: - )