Linux知识库
Linux基础知识!
Linux格式化硬盘以及格式化分区
linux基础常用知识
linux更换yum源
linux挂载windows SMB共享目录
linux开机启动级别
linux网卡配置
linux配置SMB服务
CentOS 8 firewalld配置
Linux软件管理:RPM软件包与YUM管理
Linux用户与组概念
Linux文件与目录权限基础
Linux计划任务管理
Linux中文本文件内容的查看
Linux基础-服务(service)和systemd管理服务
Vim编辑器基本操作
apt更换国内源
Linux程序服务!
Code-server在线编程服务器部署
Cloudreve网盘搭建
Emby多媒体影音系统搭建
chevereto图床搭建教程
Frp内网穿透服务器搭建
FTP服务器搭建
gitlab服务器搭建
Plex搭建
syncthing同步服务器搭建
Wordpress博客搭建
Typecho博客搭建
zabbix搭建(失败)
Aria2离线下载服务器搭建
KMS激活服务器搭建
CentOS搭建NTP服务
Grafana部署与Zabbix集成,部署开源IT系统监控平台
Linux应用环境搭建配置!
nginx编译安装
PHP8编译安装
Linux 关闭selinux
yum安装redis数据库
宝塔环境无法删除.user.ini
宝塔面板安装
mysql8.0.29编译安装
nginx安装(yum方式)
Linux系统基础知识
Linux命令行基础知识
使用Cerbot申请免费证书
ModSecurity 安装编译与连接nginx
Zabbix6.4.8安装部署
本文档使用 MrDoc 发布
-
+
首页
Linux软件管理:RPM软件包与YUM管理
# linux 软件 大家有想过平时我们使用的软件原本的样子都是什么嘛,像.exe 运行程序还有 linux 上的可执行文件,其实按照我的理解都是文件,使用想要规范的文本编写,然后经过编译的一个符合不同平台规范的可执行程序,本质就是文件。 Linux 上的软件安装也是如此,Linux 中一切皆文件。 软件管理大概流程:编写一个**纯文本文件**(需要不同编程软件可视化),然后经过编码编码等成为一个**可执行文件**,里面包含了相关依赖脚本及依赖信息,加上一些**与程序相关的信息(厂家、更新日期、版本、安装位置等等)**,建立成一个数据库信息,类似与 window 于 windows 的程序与功能面板。Linux 上就使用上述机制进行软件管理,分别是**RPM**和 debian 的**dpkg**,我这边主要使用 centos,因此主要了解 RPM 的使用与管理 rpm 工具。 ## 1、RPM 基础 RPM 全名是(RedHat Package Manager),最初是 Red Hat 发展出来的,是一种以数据库记录方式将所需要的软件安装到 Linux 系统的一套软件管理机制。 大概步骤: 1、要安装的软件经过编译打包成为 rpm 机制的文件,打包好的软件里面默认记录的软件安装时必须具备的依赖属性的软件。 2、当你的主机需要安装这个 rpm 软件时,rpm 机制会依照软件记录的数据查询当前主机是否满足依赖软件,满足则安装,否则不予安装,如果安装则将该软件信息写入 linux 的 rpm 数据库,以便未来的查询、验证、安装、卸载。 3、你要安装的 rpm 软件是经过相同系统进行编译打包,因此一般不同的系统打包的 rpm 不能通用,也就是不同发行版 Linux 发布的 RPM 不能用在其他的发行版 Linux 上,如 Centos6 和 Centos7 使用不同的 RPM 源。 4、rpm 软件包以.rpm 结尾 5、系统rpm数据库位置:/var/lib/rpm ,不同发行版可能不一样 示例: ```linux mysql-server-8.0.26-1.module_el8.4.0+915+de215114.x86_64 # 以 - 区分不同部分 mysql-server:软件名称 8.0.26:软件版本 1.module_el8.4.0: RPM包的版本号,它包括主版本号(1)、模块版本号(module)、发行版版本号(el8.4.0) +915+de215114: 这部分是构建版本号,通常由编译时的配置和一些其他信息组成。 .x86_64: 这表示的是该RPM包适用于x86_64架构的处理器。 ``` ## 1.1、使用rpm进行安装安装 ```linux rpm -ivh mysql-server -i: install 安装 -v: 查看更详细的安装信息 -h: 显示安装进度 --force:强制安装,可能出现问题 --prefix 目录路径:强行安装到rpm非指定目录下 --test:测试是否能够安装,rpm -ivh mysql --test ``` ## 1.2、升级: ```linux rpm [-Uvh/Fvh] mysql-server -Uvh: 后面接的软件没有安装过则直接安装,安装过则更新至最新版 -Fvh: 只会更新,不会新安装 ``` ## 1.3、查询: 查询Linux系统上安装的rpm软件信息。 如果通过编译方式就无法通过 rpm 以及 yum 查看信息。 ```linux # query查询,使用rpm查询都需要参数-q rpm -qa: 已安装在系统上软件 rpm -q: 仅查询 rpm -qf: rpm文件,查看rpm文件 rpm -qi: 列出软件的详细信息 rpm -ql: 列出软件的目录和文件 rpm -qc: 列出软件在/etc上的配置文件 rpm -qR: 列出软件依赖软件包含的文件 ``` ## 1.4、验证: 用于验证现在软件文件是否被修改,就是与rpm记录的原始状态相比是否有改变,如配置文件位置,文件名称,文件大小等 ```linux rpm -V mysql-server -V: 被修改过才会出现 -Va: 列出所有可能被修改的文件 -Vp: 文件名 列出文件是否被修改 -Vf: 显示某个文件是否被修改 # 显示结果 [root@localhost rpm]# rpm -V mysql-server .......T. c /etc/my.cnf.d/mysql-default-authentication-plugin.cnf S.5....T. c /etc/my.cnf.d/mysql-server.cnf 上面结果显示文件的大小和MD5校验值已经被修改了。 S 文件的大小改变 M rwx属性被修改 5 MD5校验值被修改 D 设备的主次代码被修改 L 链接路径改变 U 用户的所属用户改变 G 文件的所属组改变 T 文件的建立时间被改变 P 功能被改变 后面文件类型: c 配置文件 d 数据文件 g 幽灵文件 l 许可文件 r 自述文件 ``` 通过 rpm -V 可以检查软件或者所属的文件是否被修改 ## 1.5、卸载: 通过-e 参数进行卸载,但是经常会出现依赖无法卸载,强行卸载有风险。 ```linux rpm -e mysql # 由于rpm经常会安装、删除、升级等可能导致/var/lib/rpm内文件损坏,可以进行数据库信息重建 rpm --rebuilddb 重建数据库 ``` ## 2、YUM软件管理工具 rpm管理的缺点: - 依赖问题 - 卸载问题 - 无法跨平台使用 - 对于大型软件包的安装速度较慢 **yum(全称为Yellow dog Updater, Modified)**是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。YUM是C/S架构设计,本地电脑为客户端,从官方或者第三方提供yum服务器作为服务器端。 1、整理本地rpm数据库信息 2、从官方yum服务器获取rpm软件信息 3、需要下载的软件缓存在/var/cache/yum,新版可能在/var/cache/dnf 4、需要下载更新软件时只要联网从服务器一次性下载依赖和软件进行安装 yum使用方法: ```linux yum [option] 查询软件 相关参数 参数: -y: 自动选择yes --installroot=/some/pat: 指定安装路径,不使用默认路径 # option search: 搜索 list: 目前yum服务器所管理的所有软件与版本,类似rpm -qa info: 列出软件的详细信息以及是否安装 类似rpm -qai provides: 从文件查找软件 rpm -qf yum list updates: 查看目前yum可以更新的软件及仓库名 ``` 安装与升级软件: ```linux yum install/update 软件 install: 安装软件 update: 升级软件,若要整个系统升级直接yum update 不跟具体软件即可 ``` 删除卸载软件: ```linux yum remove nginx ``` yum 配置文件 默认配置文件路径`/etc/yum.repos.d/` 在一个 `xxx.repo` 文件里面定义 yum 源,通过 enabled 启用和禁用 ```linux [base] name=CentOS-8.5.2111 - Base - mirrors.aliyun.com baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/BaseOS/$basearch/os/ gpgcheck=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official #additional packages that may be useful [extras] name=CentOS-8.5.2111 - Extras - mirrors.aliyun.com baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/extras/$basearch/os/ http://mirrors.aliyuncs.com/centos-vault/8.5.2111/extras/$basearch/os/ http://mirrors.cloud.aliyuncs.com/centos-vault/8.5.2111/extras/$basearch/os/ gpgcheck=0 gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official [base]:软件源的名字,中括号,不能相同 name:名称随意 baseurl:使用的镜像站,可以多个 mirrorlist:有一些为这个名字,意思一样 gpgcheck=0: 是否检查RPM签名,0关闭,1开启 gpgkey:签名文件路径 enabled=0:0禁用,默认启用或者设置为1 ``` 查看所有软件源 ```linux yum repolist all # 仓库 id 仓库名称 状态 AppStream CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 启用 PowerTools CentOS-8.5.2111 - PowerTools - mirrors.aliyun.com 禁用 base CentOS-8.5.2111 - Base - mirrors.aliyun.com 启用 centosplus CentOS-8.5.2111 - Plus - mirrors.aliyun.com 禁用 docker-ce-nightly Docker CE Nightly - x86_64 启用 docker-ce-nightly-debuginfo Docker CE Nightly - Debuginfo x86_64 禁用 ``` yum 文件必须以.repo 结尾。 yum 下载软件源列表到/var/cache/yum,新版可能在/var/cache/dnf ```linux yum clean xxx packages 将已下载的安装文件删除 headers 将已下载的软件源数据删除 all 将所有已下载过的软件源数据删除 # 更新缓存 yum makecache # 更新缓存 yum update -y # 升级软件源 ``` 指定 Yum 源安装,前提是已经配置好 yum 源 ```linux yum --enabledrepo=epel install netcdf R ``` 更新系统 yum 源为阿里云源: ```linux # yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo # epel源 阿里云:https://mirrors.aliyun.com/epel/ yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel* ``` 总结: Centos使用rpm软件包机制进行软件的安装、升级与卸载,rpm包包括了需要安装的软件与依赖,不同发行版的rpm不能通用。离线rpm包的下载和复制较麻烦,因此出现了C/S架构的yum管理工具,通过读取本地rpm数据库形成yum数据库信息,配置yum源服务器信息从服务器下载更新软件。 下面是相关的yum源服务器: - CentOS系统的官方yum源地址:http://mirror.centos.org/ - 阿里云的CentOS yum源地址:http://mirrors.aliyun.com/centos/ - 网易的CentOS yum源地址:http://mirrors.163.com/centos/ - 搜狐的CentOS yum源地址:http://mirrors.sohu.com/centos/
Chuck
2023年12月11日 12:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码