1、流行的两种软件包管理机制
最初,基于Linux系统的开发者在完成应用程序开发后,将很多二进制文件发给用户,用户使用之前需要将很多程序逐个安装。
因此,Debian Linux首先提出“软件包”的管理机制——Deb软件包,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。
随即,Redhat Linux基于这个理念推出了自己的软件包管理机制——Rpm软件包。当然,Redhat采用了自己的打包格式生成Rpm包文件,由Rpm包管理器负责安装、维护、查询,甚至是软件包版本管理。不过,由于Redhat Linux系统的普及,Rpm软件包被广泛使用。甚至出现第三方开发的软件管理工具,专门管理Rpm格式的软件包
随着Linux操作系统规模的不断扩大,系统中软件包间复杂的依赖关系,导致Linux用户麻烦不断。Debian Linux开发出了APT软件包管理器。
检查和修复软件包依赖关系
利用
Internet
网络帮助用户
主动获取软件包
APT工具再次促进了Deb软件包更为广泛地使用,成为Debian Linux的一个无法替代的亮点。
2、软件包类型
Debian包文件包含了二进制可执行文件、库文件、配置文件和man/info帮助页面等文档。通常Debian包文件的后缀为“.deb”,因此称为“Deb软件包”。Ubuntu有两种类型的软件包:二进制软件包(deb)和源码包(deb-src)。
二进制软件包(Binary Packages):它包含可执行文件、库文件、配置文件、man/info页面、版权声明和其它文档。
源码包
(
Source Packages
):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由
tar
工具归档为
.tar.gz
文件,然后再打包成
.dsc
文件。
在用户不确定一个软件包类型时,可以使用file命令查看文件类型。例如下面命令用于证实一个软件包的文件类型是否是Deb软件包文件
。
wdl@UbuntuFisher:~$ file g++_4.1.2-9ubuntu2_i386.deb
g++_4.1.2-9ubuntu2_i386:Debian binary package (format 2.0)
3、软件包的命名
4 APT工作原理
APT(Advanced Packaging Tool)是Ubuntu Linux中功能最强大的命令行软件包管理工具,用于获取、安装、编译、卸载和查询Deb软件包,以及检查软件包依赖关系。
Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(reposity)。
Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。这样,所有的Ubuntu用户随时都能获得最新版本的安装软件包。因此,对于用户,这些镜像服务器就是他们的软件源(reposity)。
5 APT软件包管理器
APT并不是某个具体的命令,应该说是一组命令,以下列举几个常用的APT命令。
apt-get:用于管理软件包,包括安装、卸载、升级等操作;
apt-cache:用于查询软件包信息;
apt-proxy:用于搭建APT代理服务器;
apt-show-versions:用于显示系统中软件包版本信息;
apt-config:用于读取APT配置文件的简单工具;
apt-cdrom:用于将CD-ROM加入软件源配置文件。
apt-get:用于管理软件包,包括安装、卸载、升级等操作;
apt-cache:用于查询软件包信息;
apt-proxy:用于搭建APT代理服务器;
apt-show-versions:用于显示系统中软件包版本信息;
apt-config:用于读取APT配置文件的简单工具;
apt-cdrom:用于将CD-ROM加入软件源配置文件。
在Ubuntu Linux中,通常使用apt-get命令管理软件包,只需告知软件包名字,就可以自动完成软件包的获取、安装、编译和卸载,以及检查软件包依赖关系。
apt-get命令本身并不具有管理软件包功能,只是提供了一个软件包管理的命令行平台。在这个平台上使用更丰富的子命令,完成具体的管理任务。
apt-get subcommands [ -d | -f | -m | -q | --purge |--reinstall | - b | - s | - y | - u | - h | -v ] pkg
可以看出apt-get具有很强大的功能,熟练掌握子命令、选项的用法,并进行巧妙的组合,可以完成几乎所有的管理任务。
“
apt-get check”——“
apt-get-f install”
通常作为组合命令使用,前者用于检查软件包依赖关系,后者用于修复依赖关系。
在处理依赖关系上,apt-get会自动下载并安装具有依赖关系(depends)的软件包,但
不会处理与安装软件包存在推荐(recommends)和建议(suggests)关系的软件包。
也就是说,使用apt-get命令进行安装、卸载、升级等操作,只默认处理具有依赖关系的软件包,其他关系的软件包需要用户另行安装。
在Ubuntu Linux中,只需使用命令“apt-get upgrade”就可以轻松地将系统中的所有软件包一次性升级到最新版本。它可以很方便的完成在相同版本号的发行版中更新软件包。
(1)安装软件
在准备好软件源并连通网络后,用户只需告知安装软件的名称,“apt-get install”命令就可以轻松完成整个安装过程,而无须考虑软件包的版本、优先级、依赖关系等等。
使用“apt-get install”下载软件包大体分为四步:
STEP1
,扫描本地存放的软件包更新列表(由
apt-get update
命令刷新更新列表),找到最新版本的软件包;
STEP2
,进行软件包依赖关系检查,找到支持该软件正常运行的所有软件包;
STEP3
,从软件源所指的镜像站点中,下载相关软件包;
STEP4
,解压软件包,并自动完成应用程序的安装和配置。
安装xchat软件
(2)卸载软件包
不完全卸载
“
apt-get remove
”
会关注那些与被删除的软件包相关的其它软件包,删除一个软件包时,将会连带删除与该软件包有依赖关系的软件包。
完全卸载
“
apt-get --purge remove
”
命令在卸载软件包文件的同时,还删除该软件包所使用的配置文件。