1、Linux系统中软件包分类
㈠ 软件包类型
① 二进制包
什么是二进制包?有什么特点?
1. 二进制包,指的是已经 1 好了的软件包,只需要直接安装就可以使用。
2. 二进制包,不需要编译,直接下载安装即可
3. 二进制包,需要根据自己的计算机CPU以及操作系统去选择合适的
4. 二进制包,命名方式一般为: xlockmore-5.31-2.el6.x86_64.rpm
② 源码包
什么是源码包?有什么特点?
1. 源码包,指的是程序员写的原始的程序代码文件,不能够直接在计算机上运行。
2. 源码包,需要进行编译,变成二进制的软件包后,才可安装使用
3. 源码包,一般可以在任何的计算机上安装使用
4. 源码包,命名方式一般为:
软件包名.tar.gz
软件包名.tar.bz2
软件包名.tar.xz
软件包名.zip
③ 二进制源码包(了解)
什么是二进制源码包?有什么特点?
1. 二进制源码包,是一个半成品,安装后不能直接使用
2. 二进制源码包,需要使用 rpmbuild 工具重建成真正的 rpm 包或者重建成源码包才可安装使用
3. 二进制源码包,命名方式一般为:
mysql-community-5.7.25-1.el6.src.rpm
mysql-community-5.7.25-1.el7.src.rpm
㈡ 常见的二进制包
㈢ 总结二进制包和源码包区别
2、Linux系统中软件包安装方式
㈠ 二进制包
① rpm工具安装
首先,需要下载好rpm包到本地
然后,直接使用rpm工具安装
② yum/dnf工具安装
首先,需要配置软件仓库(里面存放很多软件包,但不一定在本地)
然后,使用yum/dnf工具安装
㈡ 源码包
① 根据需求配置
功能的定制
② 编译
使用编译器编译成二进制的软件包
③ 安装
将软件包安装到指定位置
④ 源码包安装优点
1. 可以在任意平台上编译安装,编译出来的软件包非常适应所在机器。
2. 可以在编译的时候,通过配置,对某些功能进行定制,开启或关闭相应的功能。
3、二进制rpm包如何管理(重点)
㈠ 如何获取rpm包
Linux只是内核,Linux发行版本:GNU/Linux
1. RedHat/Centos光盘
2. 推荐网站
www.rpmfind.net
rpm.pbone.net
3. 相应软件官方网站
http://www.mysql.com
http://nginx.org/packages/
㈡ 如何选择合适的rpm包
1. 选择适合当前系统的版本号
找不到适合的,才去尝试别的系统版本号
el6兼容el5;el5无法安装 el6
2. 选择适合当前计算机cpu的架构
x86_64包,只能安装在64位的系统上
i386,i586,i686的软件包可以安装在32和64位系统上
noarch表示这个软件包与硬件构架无关,可以通用
32位系统不能安装64位包
建议: 建议不要跨大版本号去安装软件包,尽量使用当前版本自带软件包安装
㈢ 如何管理rpm包
1)rpm工具管理
① rpm工具安装rpm包
# rpm -ivh 软件包
注意:软件包的名字必须写全,xxx.rpm
② rpm工具卸载rpm包
# rpm -e 软件包名字
注意:卸载软件只需要跟软件包名字即可
③ rpm包的升级rpm包
# rpm -Uvh 软件包
或者
# rpm -Fvh 软件包
选项说明:
-v:输出详细信息
-h:打印散列标记,一般和-v一起使用
-U:升级软件包,如果该软件包没安装,会自动帮你安装
-F:升级软件包,如果该软件包没安装,不会自动帮你安装
④ 查看rpm包相关信息
查看已经安装的软件的文件列表
rpm -ql 软件包名
查看未安装的rpm包里的文件列表
rpm -qlp 软件包(xxx.rpm)
查看已经安装的所有rpm包
rpm -qa 软件包名
rpm -aq|grep 软件包名字
查看已经安装软件的文档列表
rpm -qd 软件包名
查看已经安装软件的配置文件
rpm -qc 软件包名
查看已经安装软件的详细信息
rpm -qi 软件包名
查看指定文件来自哪个rpm包
rpm -qf 文件名
⑤ rpm工具其他安装选项
--force 表示强制
rpm -ivh 软件包 --force 强制安装软件包
rpm -e 软件包名 --force 强制卸载软件包
--nodeps 忽略依赖关系
rpm -ivh 软件包 --nodeps 忽略依赖关系安装
rpm -e 软件包 --nodeps 忽略依赖关系卸载
其他了解:
rpm --import key_file 导入公钥用于检查rpm文件的签名
rpm --checksig package.rpm 检查rpm包的签名
rpm工具管理rpm软件包
安装、卸载、升级、查看
缺点:有依赖关系需要我们人肉去解决 A---->B和C
2)yum(dnf)工具管理
yum/dnf优点:能够自动解决依赖关系
核心:需要有一个软件仓库,软件仓库指的是来存放软件包和软件包之间的依赖关系地方。
1. 需要有软件仓库
仓库可以在本地——>本地yum源
仓库可以在远程——>网络yum源——>网络必须ok
2. 需要告诉yum工具到哪个仓库里找
默认有一个地方,存放了xxx.repo文件——>定义了去哪个仓库里找
① 配置本地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
enabled=1
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
步骤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
仓库标识 仓库名称 状态
AppStream AppStream 4,672
BaseOS BaseOS 1,658
② yum(dnf)工具使用
安装软件包
# yum -y install 软件包1 软件包2
# yum -y groupinstall "包组名"
注意:
1.其中,-y选项表示取消交互
2.包组里面包含很多的软件包。
卸载软件包
# yum -y remove 软件包名
# yum -y groupremove "包组名"
升级rpm包
# yum update 软件包名