在Linux中有软件管理三种方式:
- rpm
- yum/dnf
- 源码(安装)
rpm
全称:redhat package manager ,redhat公司提出的软件包管理标准
包的后缀名:.rpm
软件包的命名格式:软件名-版本号-发行号.操作系统版本.硬件平台类型.rpm
例如:
mongodb-enterprise-server-4.4.4-1.el7.x86_64.rpm
mongodb-enterprise-server -->软件名
4.4.4 -->版本号
1 -->发行次数
el7 -->发行商
x86 -->cpu平台架构
64 -->支持系统位数
缺点:
不能主动解决依赖关系,比如windows安装ensp -->提示下载wireshark(ensp 依赖于wireshark,pcap)
rpm安装
- -i : install 安装
- –nodeps 不验证软件依赖(安装一个软件时可能需要牵扯到其他软件)
- -v : verbose 输出安装的信息
- -h : hash 软件包安装时会列出hash标记
安装例子:
当出现error: Failed dependencies:这个错误时表示软件依赖失败
加上–nodeps忽略依赖即可
[root@redhat Packages]# rpm -ivh zziplib-utils-0.13.68-8.el8.x86_64.rpm
warning: zziplib-utils-0.13.68-8.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
error: Failed dependencies: //失败的依赖
libzzip-0.so.13()(64bit) is needed by zziplib-utils-0.13.68-8.el8.x86_64
libzzipfseeko-0.so.13()(64bit) is needed by zziplib-utils-0.13.68-8.el8.x86_64
libzzipmmapped-0.so.13()(64bit) is needed by zziplib-utils-0.13.68-8.el8.x86_64
zziplib(x86-64) = 0.13.68-8.el8 is needed by zziplib-utils-0.13.68-8.el8.x86_64
[root@redhat Packages]# rpm -ivh --nodeps zziplib-utils-0.13.68-8.el8.x86_64.rpm //加上--nodeps忽略依赖
warning: zziplib-utils-0.13.68-8.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:zziplib-utils-0.13.68-8.el8 ################################# [100%]
rpm查询
- -a : 查询所有已安装的软件包
- -f : 查询文件所属软件包
- -i : 显示已安装的软件包信息
- -l : 和p搭配时使用显示未安装的相关文件列表
- -p : package :查询未安装的包
- -q : query 查询
rpm软件包升级
-Uvh :
- u:upgrade 升级的意思
- v: verbos 打印信息
- h: 列出hash标记
rpm卸载
- -e : erase 擦除
- –nodeps : 不验证软件依赖
rpm查看签名
rpm -k 软件包名
导入密钥 : rpm --import[密钥文件]
yum
相较于rpm ,可以自动的解决依赖软件的安装 yellow dog updater,Modified :
在线安装,也能本地安装(需要有本地安装的软件仓库)
功能:能在线下载,安装,卸载,升级rpm软件包,并且能够自动查找并解决rpm包之间的依赖关系
一次性完成所有具有依赖的rpm包的安装,不需要手动一个一个的安装
yum功能的依赖:
- 需要一个包含各种rpm包的软件仓库(yum源)
- 软件仓库的仓库数据库
- 软件仓库的地址
redhat8版本中,讲yum替换成dnf,现在的yum指向我们的dnf(软链接)
[root@redhat ~]# which yum
/usr/bin/yum
[root@redhat ~]# ls -l /usr/bin/yum
lrwxrwxrwx. 1 root root 5 Jul 29 2020 /usr/bin/yum -> dnf-3
配置yum源(软件仓库):vim /etc/yum.repos.d/redhat.repo
本地仓库分类:
- BaseIOS存储库:
提供一套核心的底层操作系统功能,为基础软件安装库
redhat8.iso -->操作系统里已经自带了一些软件
- AppStream存储库:
包含额外的用户空间应用程序,运行时语言和数据库 两种格式:rpm格式和rpm格式的扩展
iso镜像挂载到目录:iso镜像中包含BaseOS,AppStream目录 mount /dev/cdrom /media/cdrom/
本地仓库的配置
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
gpgcheck=0
在线仓库配置
[baseOS]
name=baseOS
baseurl=https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/ https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
https://mirrors.163.com/centos/8/BaseOS/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/ https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/
https://mirrors.163.com/centos/8/AppStream/x86_64/os/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
yum命令的使用
yum安装
- yum install 包名
- yum -y install 包名:-y :在交互的时候,都要输入yes
- yum groupinstall 包组名 安装一个组
- yum install -y 包名 指定的软件包
更新
yum update [-y] 包名
删除
yum remove [-y] 包名
查询
- yum provides 文件名: 查找指定的文件属于哪个包
- yum info 包名 查看指定软件包的详细信息
- yum repolist: 查看系统中yum源的仓库配置
- yum search 模糊包名: 查看模糊包名的软件包
- yum grouplist 查看系统中所有的包组
- yum groupinfo 包组名:查看指定包组名的信息
- yum groupinstall 包组名:安装指定包组中的所有包
- yum list all: 列出软件仓库中所有可安装的软件包
- yum list installed: 列出已安装的
- yum clean packages|all: 清除下载到本机的指定的软件包|所有包的缓存
- yum whatprovides 文件名:查询文件所属的包
- yum makecche
源码安装
./configure --> 环境配置
make 将源代码文件变成二进制的可执行程序
make install 将编译好的文件复制到系统中