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

mic*_*ack 5 ruby amazon-web-services aws-code-deploy ubuntu-20.04

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

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

./install auto
Run Code Online (Sandbox Code Playgroud)

我知道 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)
Run Code Online (Sandbox Code Playgroud)

如果有人有小费就好了。

最好的,谢谢

小智 15

显然 CodeDeploy 尚不兼容 Ubuntu 20.04,因为后者带有 ruby​​ 2.7,而 CodeDeploy 支持最大 2.5。这里有一个解决方案它重新打包 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
Run Code Online (Sandbox Code Playgroud)


小智 5

不确定 20.04,但我确实有针对 22.04 的修复,以防有人需要。这里是,

在 ubuntu 22.04 EC2 实例上安装代码部署代理

来源:- Github 讨论

!/bin/bash

# This installs the CodeDeploy agent and its prerequisites on Ubuntu 22.04.

sudo apt-get update

sudo apt-get install ruby-full ruby-webrick wget -y

cd /tmp

wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/releases/codedeploy-agent_1.3.2-1902_all.deb

mkdir codedeploy-agent_1.3.2-1902_ubuntu22

dpkg-deb -R codedeploy-agent_1.3.2-1902_all.deb codedeploy-agent_1.3.2-1902_ubuntu22

sed 's/Depends:.*/Depends:ruby3.0/' -i ./codedeploy-agent_1.3.2-1902_ubuntu22/DEBIAN/control

dpkg-deb -b codedeploy-agent_1.3.2-1902_ubuntu22/

sudo dpkg -i codedeploy-agent_1.3.2-1902_ubuntu22.deb

systemctl list-units --type=service | grep codedeploy

sudo service codedeploy-agent status

Run Code Online (Sandbox Code Playgroud)