Linux应用程序的安装与管理
一、Linux应用程序组成
1. 应用程序与命令的区别
特性 | Linux命令 | 应用程序 |
---|---|---|
存储位置 | /bin , /sbin | /usr/bin , /usr/sbin , /usr/local/bin |
安装方式 | 随OS安装 | 需额外安装 |
执行格式 | 统一格式:命令+选项+参数 | 格式由开发者定义 |
界面类型 | 字符界面 | 支持图形界面 |
2. 应用程序核心组件
组件类型 | 存储位置 | 说明 |
---|---|---|
可执行程序 | /usr/bin | 普通用户可执行 |
管理程序 | /usr/sbin | 仅管理员可执行 |
配置文件 | /etc/应用名/ | 自动创建同名子目录 |
日志文件 | /var/log/ | 运行记录 |
参考文档 | /usr/share/doc/ | 说明文档、许可证等 |
MAN手册 | /usr/share/man/ | 帮助文档 |
3. 软件包封装类型
类型 | 扩展名 | 适用系统 |
---|---|---|
RPM包 | .rpm | RHEL, CentOS, Fedora, SUSE |
DEB包 | .deb | Debian, Ubuntu |
源代码包 | .tar.gz | 需编译安装 |
二、RPM包管理详解
1. RPM包命名规范
coreutils-8.30-4.el7.x86_64.rpm
- coreutils:软件名称
- 8.30:主版本号
- 4:修订版本号
- el7:Red Hat Enterprise Linux 7 定制版
- x86_64:CPU架构(
noarch
表示通用包)
2. RPM命令操作指南
查询操作:
# 检查软件是否安装
rpm -q vsftpd
rpm -qa | grep vsftpd# 查看已安装包详细信息
rpm -qi vsftpd# 列出软件安装的文件
rpm -ql vsftpd# 定位文件所属包
rpm -qf /etc/vsftpd/vsftpd.conf# 查看未安装包信息(需完整路径)
rpm -qpi /path/to/package.rpm # 包信息
rpm -qpl /path/to/package.rpm # 文件列表
安装与卸载:
rpm
-i # 安装
-v # 显示详细过程
-h # 以“#”显示进度
-e # 卸载
-U # 更新
-F # 更新,如果未安装旧版本软件包,则放弃安装或更新
--force # 强制
--nodeps # 去除依赖性关系# 安装软件包
rpm -ivh package.rpm# 强制安装(忽略依赖)
rpm -ivh --nodeps --force package.rpm# 卸载软件
rpm -e package_name# 更新软件
rpm -Uvh new_package.rpm # 未安装则安装
rpm -Fvh new_package.rpm # 仅更新已安装版本
三、YUM仓库配置与使用
1. 仓库配置文件
路径:/etc/yum.repos.d/*.repo
示例配置 (server.repo
):
[base] # 仓库唯一ID
name=Base Repository # 仓库描述
baseurl=file:///mnt # 本地路径(支持http/ftp远程)
enabled=1 # 启用仓库
gpgcheck=0 # 关闭GPG验证(生产环境慎用)
# gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release # 启用验证需指定密钥
2. YUM核心命令
# 安装/卸载软件
yum -y install httpd
yum -y remove httpd# 更新操作
yum update httpd # 更新指定包
yum update # 更新所有包# 软件组管理
yum group list # 列出软件组
yum -y groupinstall "Development Tools" #安装软件包组
yum -y group remove "Development Tools" #卸载软件包组# 仓库与缓存
yum repolist # 查看启用仓库
yum clean all # 清理缓存
四、DNF的使用(YUM的现代替代)
命令兼容性
# 所有YUM命令可直接替换为DNF
dnf -y install httpd
dnf -y remove httpd
dnf group list
dnf -y update
关键改进
- 依赖解析:采用SAT求解器,速度提升50%+
- 事务历史:
dnf history
支持更细粒度的回滚 - 内存优化:比YUM减少约40%内存占用
- 模块支持:原生支持模块化软件包(如RHEL8的AppStream)