软件包(SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类。应用软件包与特定的应用领域有关,又可分为通用包及专用包两类。通用软件包根据社会的一些共同需求开发,专用软件包则是生产者根据用户的具体需求定制的,可以为适合其特殊需要进行修改或变更。
软件包这一术语出现于20 世纪60年代。20 世纪60年代初,IBM公司曾将IBM1400 系列上的应用程序库改造成更为灵活易用的软件包形式。Informatics公司根据用户需求,以包的形式设计并开发了自动流程图生成包AUTOFLOW。1969年,软件开始从计算机系统中分离出来成为独立成分,软件包这个术语开始广泛使用。
在Linux、BSD系统中,软件包主要以两种形式出现:二进制包以及源代码包。主要的二进制包格式有:rpm、deb、Autopackage。
源代码包则主要适用于自由软件的安装,用户需要自己编译它们。
在Windows中,软件包大多数以安装程序的方式出现,可以将软件安装在制定的目录中,也有直接使用压缩工具打包的,解压缩之后便可运行。
Advanced Packaging Tool(apt)是Linux下的一款安装包管理工具。
最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。从而著名的"package"概念第一次出现在GNU/Linux系统中,稍后Red Hat才决定开发自己的"rpm"包管理系统。
当软件包更新时,工具应该能自动管理关联文件和维护已有配置文件。Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。APT后来还被Conectiva改造用来管理rpm,并被其他Linux发行版本采用为它们的软件包管理工具。
APT是一个客户/服务器系统。在服务器上先复制所有DEB包(DEB是Debian软件包格式的文件扩展名),然后用APT的分析工具(genbasedir)根据每个DEB 包的包头(Header)信息对所有的DEB包进行分析,并将该分析结果记录在一个文件中,这个文件称为DEB 索引清单,APT服务器的DEB索引清单置于base文件夹内。一旦APT 服务器内的DEB有所变动,一定要使用genbasedir产生新的DEB索引清单。客户端在进行安装或升级时先要查询DEB索引清单,从而可以获知所有具有依赖关系的软件包,并一同下载到客户端以便安装。
当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压缩文件后,会将其解压置放于/var/state/apt/lists/,而客户端使用apt-get install或apt-get upgrade命令的时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库进行比对,知道哪些DEB已安装、未安装或是可以升级。
本章就Linux做了初步介绍,带大家了解了Ubuntu,并且深入地了解了Linux的基本使用,同时对软件包知识进行了学习。让我们对Linux有了深刻的认识,在后面的学习中我们将接触更多关于Linux的具体知识。
1. 列举Linux的特点。
2. 列举几个正则表达式的元字符。
通过本章内容的学习,尝试安装Ubuntu。