- 嵌入式Linux开发技术
- 廖建尚等编著
- 1349字
- 2022-05-06 19:03:48
2.1.2 Linux的软件包管理机制
2.1.2.1 软件包管理机制简介
大多数类UNIX操作系统都提供了一个集中的软件包管理机制,用于帮助用户搜索、安装和管理软件,软件通常以包的形式存储在软件包仓库中。
软件包的管理通常不仅涉及软件的安装,还涉及对已安装软件进行升级的工具。软件包仓库有助于确保代码已经在使用的系统上进行了审核,并由软件开发者或软件包维护者进行管理。大多数软件包管理系统是建立在包文件上的集合,包文件通常包含已编译好的二进制文件和其他资源组成,如软件、安装脚本、元数据及其所需的依赖列表。
虽然大多数流行的Linux发行版本在软件包管理工具、方式和形式上都大同小异,但还有一些差异,如表2.2所示。
表2.2 常用Linux发行版本在软件包管理方面的差异
软件包的命名方式为Filename_Version-Reversion_Architecture.deb,其中,Filename为软件包名称,Version表示软件版本,Reversion表示修订版本,Architecture表示体系结构。
根据用户交互方式的不同,可以将软件包管理工具分为三类,如表2.3所示。
表2.3 根据用户交互方式进行的软件包管理工具分类
2.1.2.2 deb软件包管理工具与常用命令
Debian Linux首先提出“软件包”的管理机制,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用户可以通过软件包管理工具直接操作软件包,完成软件的获取、安装、卸载、查询等操作。
deb软件包基于tar包,因此本身会记录文件的权限以及所有者/用户组。由于类UNIX操作系统对权限、所有者、组有严格的要求,而deb软件包又经常涉及底层的操作,所以对权限的设置尤其重要。
deb软件包本身由三部分组成:第一部分是数据包,包含实际安装的程序数据,文件名为data.tar.XXX;第二部分是安装信息及控制脚本包,包含deb软件包的安装说明、标识、脚本等,文件名为control.tar.gz;第三部分是deb软件包的一些二进制数据,包含文件头等信息。
Ubuntu有两种类型的软件包:二进制软件包和源代码包。
(1)二进制软件包(Binary Packages):包含可执行文件、库文件、配置文件、man/info页面、版权声明和其他文件。
(2)源代码包(Source Packages):包含软件源代码、版本修改说明、构建命令和编译工具等。源代码包先由tar工具归档为.tar.gz文件,再打包成.dsc文件。
dpkg软件包管理工具的命令如表2.4所示。
表2.4 dpkg软件包管理工具的命令
Debian作为Ubuntu、Linux Mint和Elementary OS等Linux操作系统的母板,具有功能强大的软件包管理工具,它的每个组件和应用程序都内置在系统的安装包中。Debian使用一套名为apt(Advanced Packaging Tool)的软件包管理工具来管理安装包中的组件和应用程序。注意,不要和apt命令混淆。
在基于Debian的Linux发行版本中,有各种工具可以与apt软件包管理工具进行交互,方便用户安装、删除和管理软件。apt-get便是其中一款广受欢迎的命令行工具,另外一款较为流行的命令行工具是aptitude(可以与GUI兼容)。
apt-get软件包管理工具的常用命令如表2.5所示。
表2.5 apt-get软件包管理工具的常用命令
2.1.2.3 rpm软件包管理工具与常用命令
rpm是RedHat Package Manager的缩写,SuSE Linux、Turbo Linux等Linux发行版本都采用rpm软件包管理工具。rpm软件包管理工具将编译好的应用程序的组成文件打包成一个或几个程序包,可方便快捷地实现应用程序的安装、卸载、查询、升级和校验等操作。
rpm软件包管理工具的常用命令如表2.6所示。
表2.6 rpm软件包管理工具的常用命令
2.1.2.4 yum软件包管理工具与常用命令
yum软件包管理工具是Fedora、RedHat和SuSE Linux中的Shell前端软件包管理工具,提供查找、安装、删除某个或某组甚至全部软件包的功能,其命令简洁、好记。yum软件包管理工具的常用命令如表2.7所示。
表2.7 yum软件包管理工具的常用命令