软件管理
软件管理
- rpm安装
- yum安装
- 源码编译安装
rpm安装
- rpm包介绍
- rpm管理软件包
认识rpm软件包
rpm软件包的文件名组成:
- 软件包的报名
- 软件包版本
- 修订次数,编译平台
- 处理器架构
rpm管理软件包
rpm命令
常用参数组合:
安装软件:
-ivh 安装软件显示详细信息和进度
-Uvh 更新或安装软件,软件可以没有安装过
-Fvh 更新安装软件,软件需要安装过旧版本
-qa 列出安装的软件名
-qi 列出软件的详细信息
-ql 列出软件相关的文件与目录位置
-qc 列出软件的所有配置文件
-qd 列出软件的说明文件,与man相关的文件
-qR 列出与该软件相关的依赖软件所含的文件
-qf 后面接文件名,找出该文件属于哪一个软件
-qp 查找软件包文件的相关信息
--nodeps 忽略依赖关系进行安装
--force 相当于--replacefiles与--replacepkgs的结合体
--replacefiles 覆盖文件,忽略冲突使用场景:安装过程出现某个文件已 经安装,或者出现版本不合的信息
--replacepkgs 重新安装已经安装过的软件,使用场景:提出某软件已安 装
--oldpackage 安装旧版的软件包
--test 测试是否可以安装
--justdb 更新软件在数据库内的信息,当RPM数据库损坏或错误时
--nosignature 跳过数字签名的检查
--prefix 指定安装路径
--noscripts 使用场景:不想在安装过程中自动自行某些命令
-a 查询、列出所有已经安装的套件。
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+ 设置包装套件的完成阶段,并指定套件档的文件名称。
-c 只列出组态配置文件,本参数需配合"-l"参数使用。
-d 只列出文本文件,本参数需配合"-l"参数使用。
-e<套件档>或--erase<套件档> 删除指定的套件。
-f<文件>+ 查询拥有指定文件的套件。
-h或--hash 套件安装时列出标记。
-i 显示套件的相关信息。
-i<套件档>或--install<套件档> 安装指定的套件档。
-l 显示套件的文件列表。
-p<套件档>+ 查询指定的RPM套件档。
-q 查询软件包是否安装。 rpm -q 包名
-R 显示套件的关联性信息。
-s 显示文件状态,本参数需配合"-l"参数使用。
-U<套件档>或--upgrade<套件档> 升级指定的套件档。
-v 显示指令执行过程。
-vv 详细显示指令执行过程,便于排错。
-addsign<套件档>+ 在指定的套件里加上新的签名认证。
--allfiles 安装所有文件。
--allmatches 删除符合指定的套件所包含的文件。
--badreloc 发生错误时,重新配置文件。
--buildroot<根目录> 设置产生套件时,欲当作根目录的目录。
--changelog 显示套件的更改记录。
--checksig<套件档>+ 检验该套件的签名认证。
--clean 完成套件的包装后,删除包装过程中所建立的目录。
--dbpath<数据库目录> 设置欲存放RPM数据库的目录。
--dump 显示每个文件的验证信息。本参数需配合"-l"参数使用。
--excludedocs 安装套件时,不要安装文件。
--excludepath<排除目录> 忽略在指定目录里的所有文件。
--force 强行置换套件或文件。
--ftpproxy<主机名称或IP地址> 指定FTP代理服务器。
--ftpport<通信端口> 设置FTP服务器或代理服务器使用的通信端口。
--help 在线帮助。
--httpproxy<主机名称或IP地址> 指定HTTP代理服务器。
--httpport<通信端口> 设置HTTP服务器或代理服务器使用的通信端口。
--ignorearch 不验证套件档的结构正确性。
--ignoreos 不验证套件档的结构正确性。
--ignoresize 安装前不检查磁盘空间是否足够。
--includedocs 安装套件时,一并安装文件。
--initdb 确认有正确的数据库可以使用。
--justdb 更新数据库,当不变动任何文件。
--nobulid 不执行任何完成阶段。
--nodeps 不验证套件档的相互关联性。
--nofiles 不验证文件的属性。
--nogpg 略过所有GPG的签名认证。
--nomd5 不使用MD5编码演算确认文件的大小与正确性。
--nopgp 略过所有PGP的签名认证。
--noorder 不重新编排套件的安装顺序,以便满足其彼此间的关联性。
--noscripts 不执行任何安装Script文件。
--notriggers 不执行该套件包装内的任何Script文件。
--oldpackage 升级成旧版本的套件。
--percent 安装套件时显示完成度百分比。
--pipe<执行指令> 建立管道,把输出结果转为该执行指令的输入数据。
--prefix<目的目录> 若重新配置文件,就把文件放到指定的目录下。
--provides 查询该套件所提供的兼容度。
--queryformat<档头格式> 设置档头的表示方式。
--querytags 列出可用于档头格式的标签。
--rcfile<配置文件> 使用指定的配置文件。
--rebulid<套件档> 安装原始代码套件,重新产生二进制文件的套件。
--rebuliddb 以现有的数据库为主,重建一份数据库。
--recompile<套件档> 此参数的效果和指定"--rebulid"参数类似,当不产生套件档。
--relocate<原目录>=<新目录> 把本来会放到原目录下的文件改放到新目录。
--replacefiles 强行置换文件。
--replacepkgs 强行置换套件。
--requires 查询该套件所需要的兼容度。
--resing<套件档>+ 删除现有认证,重新产生签名认证。
--rmsource 完成套件的包装后,删除原始代码。
--rmsource<文件> 删除原始代码和指定的文件。
--root<根目录> 设置欲当作根目录的目录。
--scripts 列出安装套件的Script的变量。 安装软件时执行的脚本
--setperms 设置文件的权限。
--setugids 设置文件的拥有者和所属群组。
--short-circuit 直接略过指定完成阶段的步骤。
--sign 产生PGP或GPG的签名认证。
--target=<安装平台>+ 设置产生的套件的安装平台。
--test 仅作测试,并不真的安装套件。
--timecheck<检查秒数> 设置检查时间的计时秒数。
--triggeredby<套件档> 查询该套件的包装者。
--triggers 展示套件档内的包装Script。
--verify 此参数的效果和指定"-q"参数相同。
--version 显示版本信息。
--whatprovides<功能特性> 查询该套件对指定的功能特性所提供的兼容度。
--whatrequires<功能特性> 查询该套件对指定的功能特性所需要的兼容度。
RPM软件包的安全机制——数字签名
数字签名:非对称加密技术
RPM包坐着生成一对公私钥,使用私钥加密---签名,公钥、rpm包会给用户下载。
生产环境需要校验软件包的安全性
-
导入 GPG秘钥 rpm --import pubkey
-
检验已经安装的软件包
- rpm -V 包名
- rpm -Vp RPM包
- rpm -K RPM包
-
安装之前检验
- rpm -qa |grep pubkey 查看秘钥
- rpm -e pubkey 卸载秘钥
- rpm -K RPM包 检验可靠性
rpm拆包,提取文件
rpm2cpio RPM包 |cpio -id
yum安装
yum 能够解决软件的依赖关系
将软件包放在目录下,生成软件包的索引——repodata,来解决依赖关系
yum仓库命名 *.repo
[仓库名]
name=描述
baseurl=仓库的路径repodata所在的目录路径,支持file,http,ftp等
gpgcheck=是否验证秘钥 1启用校验, 0 不校验
enabled=是否启用仓库 1启用 0关闭
gpgkey=GPG秘钥位置的路径
yum clean all
yum makecache
yum repolist
yum命令
yum install
yum group install "包组名" 安装包组
yum reinstall
yum remove
yum group remove
yum update
#查询
yum repolist all 列出所有仓库的信息
yum list [all...] 列出仓库里面所有的软件包
yum list available|updates|installed 列出可用的|可更新|已安装的软件包
yum info package 查看软件包的信息
yum group info packagegroup 查看包组信息
yum group list [hidden] 列出所有的包组
#搜索文件和软件包
yum provides filename 查找文件来自哪个包
yum search keyword 查找与keyword相关的软件包
#查询软件包的历史记录
yum history
yum的日志:/var/log/dnf.rpm.log
yum与dnf
RHEL7之前 yum yum只能同时有一个yum进程
RHEL8开始使用 dnf
创建私有yum源
- 将rpm包放在一个目录下面
- 将该目录通过http或者ftp共享出去
- 安装creatrepo_c软件包,并执行creatrepo -v /packagedir
- 会生成一个repodata的子目录
- 软件包的所有元数据信息都放在repodata目录下
yum install -y createrepo_c
yum install -y --downloadonly --downloaddir=/tmp/myrepo httpd -y
createrepo /tmp/myrepo
下载rpm包:
yum install --downloadonly --destdir=路径 包名
管理软件包的模块流
模块流:一组独立的rpm包
yum module list [模块]
yum module info 模块名[:模块版本]
--profile 查看所安装的软件包信息
#安装和移除模块流
yum module install name[:版本]
yum module remove name
#安装模块流会自动启用模块流,移除模块流,模块流依然处于启用状态,需要禁用模块流才能安装其他版本的模块流
#开启和禁用模块流
yum module enable name
yum module disable name
切换模块流
1.删除模块流
yum module remove
2.重置模块流,会删除模块配置文件
yum module reset
3.安装启用其他模块流
yum module install
源码编译安装
编译安装需要编译环境:gcc make 等
- 下载源码包
- 解压源码包
- 配置源码配置文件./configure
- 预编译make
- 编译安装make install