如果我跑
docker run -it --rm --entrypoint=/bin/bash fedora:latest
dnf install moreutils
有用。
如果我运行:
19:57:34:~/ $ docker run -it --rm --entrypoint=/bin/bash public.ecr.aws/lambda/provided:al2023
bash-5.2# dnf install moreutils
dnf install moreutils
Downloading metadata...
error: No package matches 'moreutils'
bash-5.2#
但事实并非如此。为什么呢?
这些说明参考了 AL2:https://stackoverflow.com/questions/37951437/installing-moreutils-on-ec2-instance并且不适用于 Al2023,并且启用建议的 repo 似乎也没有任何用处:
22:46:20:~/ $ docker run -it --rm --entrypoint=/bin/bash public.ecr.aws/lambda/provided:al2023
bash-5.2# dnf --enablerepo epel install moreutils
dnf --enablerepo epel install moreutils
error: repo epel not found
bash-5.2#
答案1
AL2023 基于 Fedora。您链接的问题实际上指的是基于 RHEL 6 的 AL1。似乎没有任何版本的 AL 包含 moreutils,这就是为什么另一个问题建议从 EPEL 获取它。EPEL 不明确支持 AL,但有时可以在 AL1 和 AL2 上运行,因为它们大致基于 RHEL。 AL2023 差异太大,EPEL 软件包无法工作。
这amazon-linux-2023 GitHub 存储库接受问题报告并有一个包请求模板。已经有一个请求更多工具。因此,您此时的选择是:
- 等待该请求得到满足
- 在 AL2023 上重建 Fedora moreutils SRPM 并自行维护(根据需要修复错误或进行安全更新时再次重建)
- 切换到具有更多可用实用程序的发行版,例如 Fedora、CentOS Stream 或 RHEL