无法在AWS EC2实例Ubuntu上安装来自amazon repo的软件包

时间:2018-05-14 09:21:10

标签: amazon-web-services ubuntu amazon-ec2 install.packages

我在AWS上拥有EC2实例,包含Ubuntu平台。

我无法从命令行工具sudo apt-get install <package>

安装任何内容

屏幕上弹出的结果就像

> ubuntu@ip-XX-XX-XX-XX:~$ sudo apt install awscli
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libuv1
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
  docutils-common liblcms2-2 libpaper-utils libpaper1 libwebp5 libwebpmux1 python3-botocore python3-colorama python3-dateutil python3-docutils python3-jmespath python3-pil python3-pygments python3-roman
  python3-rsa python3-s3transfer
Suggested packages:
  liblcms2-utils texlive-latex-recommended texlive-latex-base texlive-lang-french fonts-linuxlibertine | ttf-linux-libertine docutils-doc python-pil-doc python3-pil-dbg ttf-bitstream-vera
The following NEW packages will be installed:
  awscli docutils-common liblcms2-2 libpaper-utils libpaper1 libwebp5 libwebpmux1 python3-botocore python3-colorama python3-dateutil python3-docutils python3-jmespath python3-pil python3-pygments
  python3-roman python3-rsa python3-s3transfer
0 upgraded, 17 newly installed, 0 to remove and 42 not upgraded.
Need to get 3,260 kB of archives.
After this operation, 28.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
0% [Connecting to us-east-1.ec2.archive.ubuntu.com (54.165.17.230)]
0% [Connecting to us-east-1.ec2.archive.ubuntu.com (54.165.17.230)]
0% [Connecting to us-east-1.ec2.archive.ubuntu.com (54.165.17.230)]
0% [Connecting to us-east-1.ec2.archive.ubuntu.com (54.165.17.230)]
Err:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial/main amd64 liblcms2-2 amd64 2.6-3ubuntu2
  Could not connect to us-east-1.ec2.archive.ubuntu.com:80 (54.152.129.43), connection timed out [IP: 54.152.129.43 80]

Err:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial/universe amd64 python3-dateutil all 2.4.2-1
  Unable to connect to us-east-1.ec2.archive.ubuntu.com:http: [IP: 54.152.129.43 80]
..........
Err:14 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial/main amd64 libwebp5 amd64 0.4.4-1
  Unable to connect to us-east-1.ec2.archive.ubuntu.com:http: [IP: 54.152.129.43 80]
Err:15 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial/main amd64 libwebpmux1 amd64 0.4.4-1
  Unable to connect to us-east-1.ec2.archive.ubuntu.com:http: [IP: 54.152.129.43 80]
Err:16 http://security.ubuntu.com/ubuntu xenial-security/main amd64 python3-pil amd64 3.1.2-0ubuntu1.1
  Unable to connect to us-east-1.ec2.archive.ubuntu.com:http: [IP: 54.152.129.43 80]
Err:17 http://us-east-1.ec2.archive.ubuntu.com/ubuntu xenial/main amd64 python3-pygments all 2.1+dfsg-1
  Unable to connect to us-east-1.ec2.archive.ubuntu.com:http: [IP: 54.152.129.43 80]
0% [Connecting to security.ubuntu.com (91.189.88.162)]packet_write_wait: Connection to 54.152.110.91 port 22: Broken pipe

从输出中我所理解的就像AWS Ubuntu软件包回购没有响应。但是当在浏览器中访问repo的地址时它就在那里(但它没有包)。

更多关于我能够正确安装节点包(npm install <module>)。 在我尝试将loadbalancer添加到实例之前,它工作正常。 所有这些都在向我的服务器添加ssl证书。

任何人都可以清楚地解释如何处理这两个问题。

谢谢,提前。

2 个答案:

答案 0 :(得分:0)

最后,我发现了问题所在,安全组,我已禁用所有出站http并且只允许https。一旦我在Outbound中添加了所有这些,它就得到了解决。

感谢。

答案 1 :(得分:0)

EC2实例默认情况下允许出站流量,但是其他软件(例如Terraform)默认情况下将其禁用。如果使用Terraform,解决方案是将其添加到您的安全组中:

resource "aws_security_group" "instance" { 
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

此外,如果尚未将安全组添加到实例或启动配置中,则:

security_groups = [aws_security_group.instance.id]