RHEL8.0快速入门系列笔记–软件包管理(十一)
一、软件包管理
1、Linux系统中软件包管理
(一)软件包类型
[1] 二进制包
- 什么是二进制包?有什么特点?
1.二进制包,指的是已经编译好的软件包,只需要直接安装就可以使用
2.二进制包,不需要编译,直接下载安装
3.二进制包,需要根据自己的计算机CPU以及操作系统去选择合适的
4.二级制包,命名方式一般为:xlackmore-5.31-2.e16.x86_64.rpm
[2] 源码包
- 什么是源码包?有什么特点?
1.源码包,指的是程序员写的原始的程序代码文件,不能够直接在计算机上运行。
2.源码包,需要进行编译,变成二进制的软件包后,才可安装使用
3.源码包,一般可以使用在任何计算机上安装使用
4.源码包,命名方式一般为:(软件包名.tar.gz)(软件包名.tar.bz2)(软件包名.tar.xz)(软件包.zip)
[3] 二进制源码包(了解)
- 什么是二进制源码包?有什么特点?
1.二进制源码包,是一个半成品,安装后不能直接使用
2.二进制源码包,需要使用rpmbuild工具重建成真正的rpm包或者重建成源码包才可以安装使用
3.二进制源码包,命名方式一般为:(mysql-community-5.7.25-1.el6.src.rpm)
(二)常见的二进制包
系统平台 | 包类型 | 工具 | 在线安装 |
---|---|---|---|
RedHat/CentOS/Fedora/SUSE | rpm | rpm、rpmbuild | yum/dnf |
Ubuntu/Debian | deb | dpkg | apt |
(三)总结二进制包和源码包区别
软件包类型 | 是否编译 | 安装难易程度 | 可定制性 |
---|---|---|---|
二进制包 | 否 | 易(直接安装) | 差 |
源码包 | 是 | 难(配置 --》编译–》安装) | 好 |
2、Linux系统中软件包安装方式
(一)二进制包
[1] rpm工具安装
- 首先:需要下载好rpm包
- 然后:直接使用rpm包安装
[2] yum/dnf工具安装
- 首先:需要配置软件仓库(里面存放很多软件包,但不一定在本地)
- 然后:使用yum工具安装
(二)源码包
[1] 根据需求配置
功能的定制
[2] 编译
使用编译器编译成二进制的软件包
[3] 安装
将软件包安装到指定位置
[4] 源码包安装优点
1.可以在任意平台编译安装,编译出来的软件包非常适应所在机器。
2.可以在编译的时候,通过配置,对某些功能进行定制,开启或关闭相应功能
3、二进制rpm包如何管理(重点)
(一)如何获取rpm包
Linux只是内核,Linux发行版本:GNU/Linux
1.RedHat/CentOS光盘
2.推荐网站
3.相应软件官方网站
(二)如何选择合适的RPM包
1.选择适合当前系统的版本号
- 找不到合适的,才去尝试别的系统版本号
- el6兼容el5,el5无法安装el6
2.选择适合当前计算机cpu的架构
- x86_64包,只能安装在64位的系统
- i386,i586,i686的软件包可以安装在62位和64位系统上
- noarch表示这个软件包与硬件架构无关可以通用
- 32位系统不能安装64位包
建议:建议不要夸大版本去安装软件,尽量使用当前版本自带软件包装
(三)如何管理rpm包
[1] rpm工具安装rpm包
(1)rpm工具安装rpm包
# rpm -ivh 软件包
注意:软件包的名字必须写全,xxx.rpm
(2)rpm工具卸载rpm包
# rpm -e 软件包名
注意:卸载软件只需要软件包名字即可
(3)rpm工具升级rpm包
#rpm -Uvh 软件包
或者
#rpm -Fvh 软件包
选项说明:
-v:输出详细信息
-h:打印散列标记,一般和-v一起使用
-u:升级软件包,如果该软件包没有安装,会自动帮你安装
-F:升级软件包,如果该软件包没安装,不会自动帮你安装
(4)查看rpm包相关信息
查看已经安装的软件的文件列表
rpm -ql 软件包名
查看未安装的rpm包里的文件列表
rpm -qlp 软件包(xxx.rpm)
查看已安装的所有rpm包
rpm -qa 软件包
查看已安装软件的文档列表
rpm -qd 软件包名
查看已经安装软件的配置文件
rpm -qc 软件包名
查看已经安装软件的详细信息
rpm -qi 软件包名
查看指定文件来自哪个rpm包
rpm -qf 文件名
(5)rpm工具其他安装选项
--force 表示强制
rpm -ivh 软件包 --force 强制安装软件包
rpm -e 软件包名 --force 强制卸载软件包
--nodeps 忽略依赖关系
rpm -ivh 软件包 --nodeps 忽略依赖关系安装
rpm -e 软件包 --nodeps 忽略依赖关系卸载
其他了解
rpm --import key_file 导入公钥用于检查rpm文件签名
rpm -checksig packages.rpm 检查rpm包签名
rpm 工具管理rpm软件包
- 安装、卸载、升级、查看
- 缺点:有依赖关系需要我们人肉去解决 A–B和C
[2] yum(dnf)工具管理
yum/dnf优点:能够自动解决依赖关系。
**核心:**需要一个软件仓库,软件仓库指的是来存放软件包和软件包之间的依赖关系地方。
1.需要有软件仓库
- 仓库可以在本地---->本地yum源
- 仓库可以在远程---->网络yum源---->网络必须OK
2.需要告诉yum工具到哪个仓库里找
- 默认有一个地方,存放了xxx.repo文件---->定义了去哪个仓库里找
[1] 配置本地yum源
1.本地仓库分类
- BaseOS存储库
BaseOS存储库指在提供一套核心的底层操作系统的功能,为基础软件安装库 - AppStream存储库
- AppStream存储库中包括额外的用户空间应用程序。运行时语言和数据库,以支持不同的工作负载和用例。AppStream中的内容有两种格式----熟悉的RPM格式和称为模块的RPM格式扩展。
2.配置本地仓库
步骤1:挂载镜像到本地系统
[root@RedHat8 ~]# mount -o ro /dev/sr0 /mnt/
列出BaseOS和AppStream的内容如下说明仓库已准备好
[root@RedHat8 ~]# ls /mnt/BaseOS/
packages repodata
[root@RedHat8 ~]# ls /mnt/AppStream
packages repodata
步骤2:修改配置文件指定本地存储库
[root@RedHat8 yum.repos.d]# pwd
/etc/yum.repos.d
[root@RedHat8 yum.repos.d]# cat local.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta
步骤3:查看是否成功
清空yum源
[root@RedHat8 yum.repos.d]# yum clean all
创建yum缓存
[root@RedHat8 yum.repos.d]# yum makecache
查看仓库
[root@RedHat8 yum.repos.d]# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
上次元数据过期检查:0:00:44 前,执行于 2020年02月06日 星期四 15时11分27秒。
仓库标识 仓库名称 状态
AppStream AppStream 4,672
BaseOS BaseOS 1,658
[2] yum(dnf)工具使用
- 安装软件包
# yum -y onstall 软件包1 软件包2
# yum -y groupinstall "包组名"
注意:
1.其中 -y选项表示取消交互
2.包组里面包含很多软件包
- 卸载软件包
# yum -y remove 软件包名
# yum -y groupremove "包组名"
- 升级rpm包
# yum updata 软件包名