Ubuntu 20.0LTS 上的 AWS CodeDeploy-Agent,Ruby 错误

AWS CodeDeploy-Agenten on Ubuntu 20.0LTS, Ruby errors

我在尝试通过以下方式安装 AWS 代码部署代理时遇到了一些错误:

wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install

./install auto

我知道 AWS 文档说的是 16.04 或 18.04。但是想知道我是不是第一个尝试过的人。

Traceback (most recent call last):
    8: from ./install:33:in `<main>'
    7: from ./install:33:in `new'
    6: from /usr/lib/ruby/2.7.0/logger.rb:389:in `initialize'
    5: from /usr/lib/ruby/2.7.0/logger.rb:389:in `new'
    4: from /usr/lib/ruby/2.7.0/logger/log_device.rb:18:in `initialize'
    3: from /usr/lib/ruby/2.7.0/logger/log_device.rb:83:in `set_dev'
    2: from ./install:21:in `method_missing'
    1: from ./install:21:in `map'
./install:22:in `block in method_missing': undefined method `path' for #<IO:<STDOUT>> (NoMethodError)

如果有人能给点小费就好了。

最好,谢谢

显然 CodeDeploy 尚不兼容 Ubuntu 20.04,因为后者随 ruby 2.7 一起提供,而 CodeDeploy 最多支持 2.5。有一个解决方案here重新打包deb包以强制检查通过:

sudo su
apt-get update
apt-get install -y ruby
wget https://aws-codedeploy-us-east-1.s3.amazonaws.com/releases/codedeploy-agent_1.0-1.1597_all.deb
mkdir codedeploy-agent_1.0-1.1597_ubuntu20
dpkg-deb -R codedeploy-agent_1.0-1.1597_all.deb codedeploy-agent_1.0-1.1597_ubuntu20
sed 's/2.0/2.7/' -i ./codedeploy-agent_1.0-1.1597_ubuntu20/DEBIAN/control
dpkg-deb -b codedeploy-agent_1.0-1.1597_ubuntu20
dpkg -i codedeploy-agent_1.0-1.1597_ubuntu20.deb
systemctl start codedeploy-agent
systemctl enable codedeploy-agent

要在 Ubuntu 20.04 上安装最新版本的 CodeDeploy 代理:

sudo ./install auto > /tmp/logfile

注意:将输出写入临时日志文件是一种解决方法,当 AWS 在 Ubuntu 20.04.

上解决安装脚本的已知错误时,应该使用该方法

来源:https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ubuntu.html