如何解决无法使用bash脚本点安装私有Github存储库
我正在尝试使用bash脚本安装私有github存储库。该脚本执行以下操作:
- 确保有一个ssh代理处于活动状态
- 从内存的持久性部分添加ssh密钥
- 尝试安装github存储库
这一切都是通过生命周期配置在SageMaker AWS EC2实例中发生的。实现看起来像这样:
HOME=/home/ec2-user/
ENVPIP=$HOME/anaconda3/envs/tensorflow2_p36/bin/pip
eval "$(ssh-agent -s)"
ssh-add ${HOME}SageMaker/Setup/id_rsa
yes | $ENVPIP install git+ssh://git@github.com/...
运行此命令,出现以下错误:
ERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com/...' /tmp/pip-req-build-ysacff_l Check the logs for full command output.
这是cloudwatch的所有相关输出:
Agent pid 5146
Identity added: /home/ec2-user/SageMaker/Setup/id_rsa (/home/ec2user/SageMaker/Setup/id_rsa)
2020-09-07T17:11:00.605-04:00
Collecting git+ssh://****@github.com/********1/*****-*****Library
Cloning ssh://****@github.com/********1/*****-*****Library to /tmp/pip-req-build-ysacff_l
2020-09-07T17:11:00.605-04:00
Copy
ERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com/********1/*****-*****Library' /tmp/pip-req-build-ysacff_l Check the logs for full command output.
this seems like an issue with the cloning protocol,但我找不到与ssh相关的任何东西。
P.s.
- 在终端中运行相同的几行
- 我很理智地检查了回购网址,然后按原样进行操作,因此
...
之后的任何内容我都认为没有问题
更新:
- 尝试使用
yum install git
更新git。显然我的版本是最新的,因此执行此操作会导致相同的错误。 - 我注释掉了pip安装,以便EC2实例能够成功启动,然后运行
curl http://www.google.com
,这产生了一堆html。这样看来,至少在EC2实例启动后,才允许出站流量。 - 在bash脚本(生命周期配置,已注释掉有问题的代码)中运行
curl http://www.google.com
会产生相同的html输出,并且实例可以完美启动。这使我相信,实例启动时确实存在出站流量 - 很多人都看过这个问题,没有人回答。我不喜欢尝试安装该存储库的特定方式,因此,如果有其他可行的选择,我会很乐意接受。
- 是否可能在其他系统上遇到了竞争状况?这是在实例启动时发生的。他们有什么办法检查所有依赖系统是否在运行?
- 在执行其他操作时,在控制台中出现了相同的错误。我重新初始化了ssh代理,添加了密钥,然后它起作用了。我想知道这是否是
eval "$(ssh-agent -s)"
和yes | $ENVPIP install git+ssh://git@github.com/...
之间的竞争条件吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。