Linux | 软件仓库管理
一. 软件包
1.1 软件包的分类
- DEB:主要用于基于 Debian 的系统,如 Ubuntu。这种软件包格式具有良好的依赖管理机制,方便用户安装、升级和卸载软件。
- RPM:广泛应用于 Red Hat、CentOS、Fedora 等系统。RPM 包将软件打包成一个文件,包含了软件的二进制文件、配置文件和元数据等,便于软件的分发和管理。
- bz2/gz/xz 压缩包
- 这类软件包较为特殊,一部分需要进行源码安装,即通过编译的方式将源码转化为可执行文件。例如,在安装某些软件时,可能需要执行 “configure” 脚本进行配置,然后再编译安装。
- 另一部分则属于绿色软件,解压后可直接使用,无需复杂的安装过程。需要注意的是,在 RHEL8中,仅支持绿色软件、源码编译软件和 RPM 软件。
1.2 软件包的结构名称
QQ_3.2.16_250401_x86_64_01.rpm
# 1 2 3 4 5
# 1.软件名称 2.软件版本 3.软件的授权协议版本 4.软件架构 5.软件类型后缀
二. rpm命令
rpm -ivh | 安装软件包 |
rpm -a | 所有 |
rpm -f | 文件 |
rpm -p | 软件包 |
rpm -q | 查询 |
rpm -l | 软件安装文件列表 |
rpm -e | 卸载 |
rpm -c | 配置文件 |
rpm -d | 说明 |
rpm --info | 软件信息 |
rpm --force | 强制 |
rpm --nodeps | 忽略依赖性 |
rpm --script | 查询软件在安装/卸载过程中的运行脚本 |
rpm -Kv | 检测软件md5校检码 |
rpm -V | 检测已安装软件在系统中的文件被修改信息 |
三. 软件仓库
3.1 构建本地软件仓库
- 加载安装镜像
- 编写软件仓库文件
3.2 构建网络软件仓库
- 使用开机自运行脚本,添加命令
四. dnf命令
- 安装包管理
dnf repolist #列出仓库信息。
dnf clean all #清除系统中已经加载的仓库缓存信息(位于/var/cache/dnf)。
dnf list all #列出所有软件。
dnf list available #列出未安装软件。
dnf list installed #列出已安装软件。
dnf install #安装软件包。
dnf remove #卸载软件包。
dnf reinstall #重新安装软件包。
dnf search #搜索软件包。
dnf whatprovides #搜索包含指定文件的软件包。
- 软件组管理
dnf group list #列出软件组。
dnf group list --installed #列出已安装软件组。
dnf group list --available #列出未安装软件组。
dnf group list --hidden #列出隐藏软件组。
dnf group install #安装软件组。
dnf group info #查看软件组信息。
五. epel源的构建
epel(Extra Packages for Enterprise Linux)源提供了许多在官方软件源中没有的额外软件包
- 在阿里云中获取epel的下载链接
- 编辑epel.repo文件