Linux 下的软件仓库及相关知识
常见软件包类型
在 Linux 系统中,常见的软件包类型主要包括 .deb
和 .rpm
。.deb
是 Debian 及其衍生版本(如 Ubuntu)使用的软件包格式,而 .rpm
则是 Red Hat 及其衍生版本(如 CentOS、Fedora)所采用的标准格式1。
RPM 命令详解
RPM(RedHat Package Manager)是一种用于管理和维护基于 RPM 的软件包的工具。以下是常用的 rpm
命令及其功能:
-
查询已安装的软件包
使用-q
参数可以查询指定名称的软件包是否已安装:Bash
rpm -q package_name
-
列出所有已安装的软件包
使用-qa
参数可显示当前系统中所有的已安装软件包列表:Bash
rpm -qa
-
查看软件包的信息
使用-qi
参数可以获得关于某个特定软件包的详细信息:Bash
rpm -qi package_name
-
验证软件包的完整性
使用-V
参数可以检查已安装软件包的内容是否有被修改的情况:Bash
rpm -V package_name
-
安装新的软件包
使用-i
或者直接执行rpm
命令即可完成新软件包的安装操作:Bash
rpm -ivh package_file.rpm
-
升级现有软件包
如果需要更新现有的软件包,则可以通过以下方式实现:Bash
rpm -Uvh package_file.rpm
-
卸载软件包
删除不再需要的软件包可通过下面这条指令达成目的:Bash
rpm -e package_name
本地软件仓库构建方法
为了能够离线管理大量依赖关系复杂的软件集合,通常我们会创建自己的本地 YUM 软件库。具体步骤如下所示:
- 准备 ISO 文件或者 DVD 光盘作为初始数据源;
- 创建目标挂载点并将其关联至实际介质设备;例如
/mnt/cdrom
就是一个典型的选择; - 编写相应的 repo 配置文档存放在路径
/etc/yum.repos.d/
中定义好 BaseURL 地址指向刚才设置好的共享位置; - 测试连接有效性确认无误之后便完成了整个流程3。
示例代码片段展示如何编辑 westos.repo 文件:
ini
网络软件仓库构建方法
除了通过物理媒介之外还可以借助 HTTP(S)/FTP 协议远程分发二进制文件给客户端机器使用。这里简单概述几个要点:
- 设置 Web/Ftp Server 提供在线服务接口;
- 修改对应节点主机上的 yum.conf 加入新增加的服务地址链接;
- 客户端重新加载缓存同步最新元数据以便正常工作4。
DNF 命令使用
DNF 是新一代替代传统 YUM 的包管理系统,默认集成到了较新版 Fedora/CentOS7+ 当中去掉了部分冗余选项更加简洁高效同时也兼容旧版语法结构保持向后兼容特性不变。下面是几个常用场景举例说明:
-
更新操作系统整体环境到最新稳定状态:
Bash
dnf update
-
查找符合条件的目标程序是否存在可用版本号可供选择下载安装:
Bash
dnf search keyword
-
显示某单一项目的全貌描述包括但不限于作者版权许可声明等等附加资料详情记录:
Bash
dnf info program-name
-
批量处理多条命令串连在一起一次性提交减少交互次数提高效率:
Bash
echo 'yes'|dnf remove conflicting-packages --setopt=deltarpm=false && dnf clean all || exit 1