目录
【学习目标】
• 了解Linux软件包管理的发展过程。
• 掌握Deb软件包的安装方法。
• 掌握高级软件包管理工具的使用。
• 掌握Snap包的安装方法。
6.1 项目陈述
在系统的使用和维护过程中,安装和卸载软件是必须掌握的技能。
Linux软件的安装需要考虑软件的依赖性问题,目前在Linux系统上安装软件已经变得与Windows系统上一样便捷。
可供Linux安装的开源软件非常丰富,Linux提供了多种软件安装方式,从最原始的源码编译到最高级的在线自动安装和更新。
本章在简单介绍Linux软件包管理知识的基础上,重点讲解Ubuntu系统的软件安装方式和方法,除了传统的Deb软件包安装,还讲解APT高级软件包工具以及Snap软件包安装,这种方式提供了更好的隔离性和安全性,是未来软件包安装的发展方向。
因此,作为Linux操作系统的管理员,必须学会软件的安装、升级、卸载和查询的方法,以维护系统的管理与使用。
6.2 必备知识
6.2.1 Linux软件包管理
Linux软件开发完成之后,如果仅限于小范围使用,可以直接使用二进制文件分发。如果要对外发布兼顾到用户不同的软件硬环境,这就需要制作成软件包分发给用户。
使用软件包管理器可以方便地安装卸载和升级软件包。
Linux软件安装从最初的源代码编译安装发展到了现在的高级软件包管理。
1.源代码安装软件
早期linux操作系统软件安装方式,将源代码编译成二进制文件,并对系统进行相关配置,有时甚至需要修改源代码。
优点:有较大自由度,用户可自行设置编译选项,选择所需要的功能和组件,或者针对硬件平台进行优化。
缺点:安装耗时,对大部分用户来说难度太大。
2.软件包安装软件
软件包将应用程序的二进制文件、配置文档和帮助文档等合并打包在一个文件中,用户只需要使用相应的软件包管理器执行软件的安装、卸载、升级和查询等操作即可。
软件包重在考虑适用性,通常不会针对某种硬件平台进行优化,所包含的功能和组件也是通用的。
目前主流的软件包格式有两种:RPM和Deb。
(1)RPM软件包
红帽管理器(RPM)是由Red Hat公司开发的软件包安装和管理程序,使用RPM的用户可以自行安装和管理Linux中的应用程序和系统工具。其文件扩展名为 .rpm。
RPM是以数据库记录的方式来将需要的软件安装到Linux操作系统中的一套管理机制。RPM最大的特点是将要安装的软件编译好,并打包成RPM机制的安装包,通过软件默认的数据库记录这个软件安装时必须具备的依赖属性软件。
在安装时, RPM会先检查是否满足安装所需的依赖属性软件,满足则安装,反之则拒绝安装。
RPM软件包中包含什么呢?其中包含可执行的二进制程序,这个程序和Windows的软件包中的EXE文件类似,是可执行的;RPM软件包中还包含程序运行时所需要的文件,这也和Windows的软件包类似, Windows程序的运行,除了需要EXE文件外,还需要其他的文件。
对于一个RPM软件包中的应用程序而言,除了自身所带的附加文件保证其正常运行外,有时还需要其他特定版本的文件,这就是软件包的依赖关系。
依赖关系并不是Linux软件特有的,Windows软件之间也存在依赖关系。例如,若要在Windows操作系统中运行3D游戏,则在安装的时候,系统可能会提示要安装Direct X9。 Linux和Windows的原理是差不多的。所以,被打包的二进制应用程序除了包括二进制文件外,还包括库文件、配置文件(可以实现软件的一些设置)、帮助文件。
RPM保留了一个数据库,这个数据库包含了所有软件包的资料。通过这个数据库,用户可以进行软件包的查询,卸载时也可以将软件安装在多处目录下的文件删除,因此初学者应尽可能使用RPM形式的软件包。
RPM 可以让用户直接以二进制方式安装软件包,并可帮助用户查询是否已经安装了有关的库文件,在使用RPM删除程序时,它会询问用户是否要删除有关程序;如果使用RPM来升级软件,则RPM会保留原先的配置文件,这样用户无须重新配置新的软件。
(2)Deb软件包
apt install vim
Deb软件包采用 .deb作为文件扩展名。配合高级软件包工具(APT)软件管理系统,成为当前在Linux中非常流行的一种安装包。
获得Deb安装包后,可以直接使用dpkg工具进行离线安装,无需联网,这是Ubuntu传统的软件安装方式,也是安装软件的一种简易方式,其不足之处是要自行处理软件依赖性问题。
Deb软件包需要使用dpkg工具进行管理,该工具功能非常丰富,可以用于安装、更新、卸载Deb软件包,以及提供与Deb软件相关的信息。
现在的软件依赖性越来越强,使用这种软件包进行安装,不但安装效率很低,而且难度不小,为此推出了高级软件包管理工具。
注意:Ubuntu的软件包格式是Deb,不能直接安装RPM软件包。如果要安装RPM软件包,则需要先用alien工具将RPM格式转换成Deb格式。
Deb软件包的命名格式如下:
软件包名称_软件版本-修订版本_体系架构.deb
6.2.2 高级软件包管理工具
高级软件包管理工具能够通过Internet主动获取软件包,自动检查和修复软件包之间的依赖关系,实现软件的自动安装和更新升级,大大简化了Linux系统上安装、管理软件的过程。
这种工具需要通过Internet从后端的软件库下载软件,适合在线使用。目前主要的高级软件包管理工具有YUM和APT两种,还有一些商业版工具由Linux发行商提供。
1.YUM软件包管理器
YUM (Yellowdog Updater Modified) 是 Red Hat、 CentOS、Fedora和SUSE中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器中自动下载并安装RPM软件包,可以处理依赖关系,并可以一次安装所有依赖的软件包,而无需一次次下载、安装软件包。
YUM能够更加方便的添加、删除、更新RPM软件包,自动解决软件包之间的依赖问题,方便系统更新及软件管理。
YUM通过资源库进行软件的下载、安装等,资源库可以是一个HTTP或FTP站点,也可以是一个本地软件池。
资源库可以有多个,在/etc/yum.conf文件中进行相关配置即可。
YUM的资源库包含RPM的头文件,头文件中包含软件的功能描述、依赖关系等。通过分析这些信息,YUM可获取依赖关系并进行相关的升级、安装、删除等操作。
2.APT高级软件包工具
Debian Linux首先提出软件包的管理机制--Deb软件包,它将应用程序的二进制文件、配置文档、man/info帮助页面等合并打包在