Linux procps-ng 包详解

简介

procps-ng 包是用于监视和管理 Linux 上的进程和系统性能的实用程序集合。它与 /proc 文件系统交互以检索实时系统信息。procps-ng 中的实用程序包括 pstopfreeuptime 等命令。

安装 procps-ng

使用包管理工具安装
  • Debian/Ubuntu
sudo apt update
sudo apt install procps
  • RHEL/CentOS
sudo yum install procps-ng
  • Fedora
sudo dnf 
<think>好的,我需要帮用户在基于RockyLinux 8.5的Docker容器中安装指定的软件。首先,我得确认用户的需求是什么。他们想使用dnf命令安装net-tools、vim-enhanced、tree、bash-completion、iproute、procps-ng和psmisc这几个软件。根据之前的对话,用户可能已经知道容器里默认有/etc/yum.repos.d目录,但可能遇到了仓库配置的问题。 查看用户提供的引用内容,引用1、2、3提到了删除容器内的yum.repos.d目录,然后将宿主机的目录复制进去,再安装软件。这可能是因为容器内的默认仓库配置有问题,比如网络不可达或者缓存问题。用户之前的问题中也提到了如果遇到错误可能需要替换仓库源,比如使用阿里云的镜像。 首先,我需要确定默认情况下,RockyLinux 8.5的容器是否可以直接使用dnf安装软件。根据之前的回答,是的,但可能需要正确的仓库配置。如果用户遇到问题,可能需要按照引用中的步骤操作,即替换仓库文件。 然后,用户想安装的软件都是常见的工具,比如net-tools是网络工具,vim-enhanced是增强版vim,tree显示目录结构等。这些在默认仓库中应该都有,但需要确保仓库配置正确。 接下来,考虑用户可能的操作步骤。如果直接运行dnf install命令,可能会因为容器内的缓存或仓库配置问题导致失败。所以可能需要先清理缓存,或者替换仓库配置文件。 根据引用中的方法,用户可能需要先删除容器内的/etc/yum.repos.d,然后从宿主机复制配置进去。但需要注意,宿主机的仓库配置是否适用于容器环境,特别是如果宿主机是其他发行版的话,比如CentOS或Ubuntu,这可能会导致兼容性问题。正确的做法应该是使用适用于RockyLinux的仓库文件,比如引用2中提到的阿里云镜像。 另外,用户可能在创建容器时使用docker run命令,或者在已有容器中执行命令。需要分步骤说明这两种情况。 可能的错误点括:仓库配置错误,缓存问题,网络连接问题,或者软件名称错误。需要给出相应的解决方法,比如替换仓库源、清理缓存、检查网络,或者确认名正确。 最后,用户可能需要将这些步骤保存为Dockerfile,以便后续构建镜像时使用,这样更加高效和可重复。需要给出相应的Dockerfile示例,并提醒用户构建时的注意事项,比如使用合适的镜像源,清理缓存以减少镜像大小。 总结步骤应该是:启动容器,确保仓库配置正确,执行安装命令,处理可能出现的错误,最后保存为镜像或直接使用。同时,提供优化建议,如使用国内镜像源,分阶段构建等。</think>#### 基于 Rocky Linux 8.5 容器的软件安装流程 --- ##### **步骤 1:启动 Rocky Linux 8.5 容器** ```bash docker run -itd --name my_rocky rockylinux:8.5 ``` - `-itd`:以交互模式后台运行容器 - `--name my_rocky`:指定容器名称 --- ##### **步骤 2:验证仓库配置** Rocky Linux 8.5 默认含仓库配置文件(`/etc/yum.repos.d/*.repo`),但需确保配置可用。 **若遇到仓库失效**(如引用[1][3]中的问题),需替换为国内镜像源(如阿里云): ```bash # 进入容器 docker exec -it my_rocky /bin/bash # 备份原仓库配置 mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ # 下载阿里云 Rocky Linux 8 仓库配置 curl -o /etc/yum.repos.d/Rocky-Base.repo https://mirrors.aliyun.com/rockylinux/rocky.repo # 退出容器 exit ``` --- ##### **步骤 3:执行软件安装** ```bash docker exec -it my_rocky dnf install -y \ net-tools \ vim-enhanced \ tree \ bash-completion \ iproute \ procps-ng \ psmisc ``` **关键参数**: - `-y`:自动确认安装 - `procps-ng`:提供 `ps`、`top` 等工具 - `iproute`:替代已废弃的 `ifconfig`(但 `net-tools` 仍含 `ifconfig`) --- ##### **步骤 4:验证安装结果** ```bash docker exec -it my_rocky rpm -q \ net-tools \ vim-enhanced \ tree \ bash-completion \ iproute \ procps-ng \ psmisc ``` 预期输出显示所有软件版本信息。 --- ##### **步骤 5:优化镜像构建(可选)** 若需将容器保存为镜像(引用[3]方法): ```bash docker stop my_rocky docker commit my_rocky my_custom_rocky:latest docker rm my_rocky ``` --- #### **常见问题与解决方案** | 问题场景 | 解决方案 | |---------|----------| | **`Error: Failed to download metadata`** | 1. 检查容器网络连通性<br>2. 替换为国内镜像源(步骤2)<br>3. 清理缓存:`dnf clean all && rm -rf /var/cache/dnf` | | **`Package not found`** | 1. 确认软件名称拼写<br>2. 启用 `PowerTools` 仓库:`dnf config-manager --set-enabled powertools` | | **容器启动后立即退出** | 添加 `tail -f /dev/null` 保持前台进程:<br>`docker run -itd --name my_rocky rockylinux:8.5 tail -f /dev/null` | --- #### **高效实践建议** 1. **使用 Dockerfile 固化配置**(引用[3]扩展): ```Dockerfile FROM rockylinux:8.5 RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \ -i.bak /etc/yum.repos.d/Rocky-*.repo && \ dnf install -y net-tools vim-enhanced tree bash-completion iproute procps-ng psmisc && \ dnf clean all ``` - 通过 `sed` 直接替换镜像源,无需手动下载 - 清理缓存以减小镜像体积 2. **最小化安装原则**:仅安装必要工具,避免镜像臃肿。 --- #### 相关问题 1. 如何为 Docker 容器配置永久有效的 YUM 仓库? 2. Rocky Linux 容器中 `dnf` 和 `yum` 命令有何区别? 3. 如何通过 Dockerfile 优化容器镜像体积?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值