deb软件包管理(二)
课程目录APT工作原理软件管理相关命令
APT工作原理Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织和管理。然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。因此,对于用户,这些镜像服务器就是他们的软体源(reposity)。
APT工作原理在Ubuntu系统中,使用软体源配置文件/etc/apt/sources.list列出最合适访问的镜像点地址。软体源配置文件只是告知Ubuntu系统可以访问的镜像点地址。但那些镜像点都拥有什么软件资源并不清楚。若是每安装一个软件包,就在服务器上寻找一边,效率是很低的。因而,就有必要为这些软件资源列个列表(建立索引文件),以便本地主机查询。这就是APT软件包管理器的工作原理。
软件源配置文件/etc/apt/sources.list。本质就是一个普通的文本文件,可以在超级管理员授权下,使用任何文本编辑器进行编辑。在该文件中,添加的软件源镜像点称为一个配置项,并遵循以下格式:DebTypeAddressType://Hostaddress/UbuntuDistributionComponent1Component2……deb/ubuntu/feistymainrestricteduniversemultiverse
软件源根据软件包的开发组织对该软件的支持程度,以及遵从的开源程度,划分为如下四类:核心(Main):官方维护的开源软件,是由Ubuntu官方完全支持的软件,包括大多数流行的、稳定的开源软件,是Ubuntu默认安装的基本软件包;公共(Universe):小区维护的开源软件,是由Ubuntu小区的计算机爱好者维护的软件。这些软件包没有安全升级的保障。使用者在使用时,需要考虑这些软件包存在的不稳定性;受限(Restricted):官方维护的非开源软件,是专供特殊用途,而且没有自由软件版权,不能直接修改软件,但依然被Ubuntu团队支持的软件;多元化(Multiverse):非Ubuntu官方维护的非开源软件,使用者使用这些软件包时,需要特别注意版权问题。
刷新软件源修改了配置文件——/etc/apt/sources.list,目的只是告知软件源镜像点的地址。但那些所指向的镜像点所具有的软件资源并不清楚,需要将这些资源列个列表,以便本地主机知晓可以申请哪些资源。使用“apt-getupdate”命令会扫描每一个软件源服务器,并为该服务器所具有软件包资源建立索引文件,存放在本地的/var/lib/apt/lists/目录中。
管理软件包在UbuntuLinux中,通常使用apt-get命令管理软件包,只需告知软件包名字,就可以自动完成软件包的获取、安装、编译和卸除,以及检查软件包依赖关系。apt-get命令提供了一个软件包管理的命令行平台。在这个平台上使用更丰富的子命令,完成具体的管理任务。apt-getsubcommands[-d|-f|-m|-q|--purge|--reinstall|-b|-s|-y|-u|-h|-v]pkg
管理软件包子命令描述update下载更新软件包清单信息upgrade将系统中所有软件包升级到最新的版本install下载所需软件包并进行安装配置remove卸除软件包autoremove将不满足依赖关系的软件包自动卸除source下载源码包build-dep为源码包构建所需的编译环境dist-upgrade发布版升级dselect-upgrade根据dselect的选择来进行软件包升级clean删除缓存区中所有已下载的包档autoclean删除缓存区中老版本的已下载的包档check检查系统中依赖关系的完整性apt-getsubcommands[-d|-f|-m|-q|--purge|--reinstall|-b|-s|-y|-u|-h|-v]pkg
管理软件包选项描述-d仅下载软件包,而不安装或解压-f修复系统中存在的软件包依赖性问题-m当发现缺少关联软件包时,仍试图继续执行-q将输出作为日志保留,不获取命令执行进度--purge与remove子命令一起使用,完全卸除软件包--reinstall与install子命令一起使用,重新安装软件包-b在下载完源码包后,编译生成相应的软件包-s不做实际操作,只是模拟命令执行结果-y对所有询问都作肯定的回答,apt-get不再进行任何提示-u获取已升级的软件包列表-h获取说明信息-v获取apt-get版本号
修复软件包依赖关系如果由于故障而