Linux学习(六):软件管理

来源:互联网 发布:农村淘宝在哪里 编辑:程序博客网 时间:2024/05/20 02:29

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)。 

5 APT软件包管理器

APT并不是某个具体的命令,应该说是一组命令,以下列举几个常用的APT命令。
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命令在卸载软件包文件的同时,还删除该软件包所使用的配置文件。  






原创粉丝点击