当前位置: 星创客 > 学习资源 > 讲师博文 > Ubuntu操作系统软件包管理机制分析
Ubuntu操作系统软件包管理机制分析 时间:2017-11-08     来源:星创客

在这里我们共同分析一下ubuntu操作系统下的软件包管理机制。软件包或者说是应用程序我想大家应该都非常熟悉,比如我们Android手机的软件包——.apk文件,以及windows PC机上安装的.exe文件,这些文件中的内容包括二进制的文件、配置文件、帮助手册等等。那我们安装的时候直接点击安装,然后下一步,就可以完成,属于傻瓜式的操作。以上这些方便快捷的安装方式全都归功于软件包管理工具。如果没有软件包管理工具而是只给我们二进制文件和配置文件等等,我们自己是没办法轻松的安装好一个软件的。同样对于我们的Linux操作系统来说也有自己的软件包管理工具以及软件包管理机制。那么现在我们就共同来分析一下Linux操作系统的软件包管理机制(我们这里使用的Linux操作系统是ubuntu)。

一、Ubuntu操作系统下的软件包类型

Ubuntu操作系统下有两种类型的软件包,一种是二进制软件包(deb),另一种是源码包(deb-src)。

二进制软件包(Binary Packages):它包含可执行文件、库文件、配置文件、man/info页面、版权声明和其它文档。

源码包(Source Packages):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。

注释:对于二进制软件包,可以使用软件包管理工具对它进行管理(安装卸载等操作),而对于源码包来说,它实际上是一个由tar归档压缩的包,因此我们要使用源码包时,就要对源码包进行解压缩,使用源码包提供的编译工具或者说采用它的编译规则来对源码进行编译,终生成一个可执行文件。

二、Ubuntu操作系统下的软件包管理工具

刚才提到对于二进制包来说,要使用软件包管理工具来实现安装、卸载以及查询等功能,那么我们的ubuntu操作系统正好提供了两种软件包管理工具,dpkg和APT即命令行工具(除了命令行的软件包管理工具以外还有文本窗口界面的软件包管理工具aptitude以及图形界面的工具synaptic,这些工具大家有兴趣可以下载安装后使用一下,体会体会。)

1、Dpkg是早的软件包管理工具,它在Debian一提出包管理模式后就诞生了。使用dpkg可以实现软件包的安装、编译、卸载、查询,以及应用程序打包等功能。但是由于当时Linux系统规模和Internet网络条件的限制,没有考虑到操作系统中软件包存在如此复杂的依赖关系,以及帮助用户获取软件包(获取存在依赖关系的软件包)。因此导致我们的dpkg在安装软件包的过程中不会解决软件包这件的依赖关系,同时,也只能够安装已经下载好的deb包。相关的命令如下:

dpkg -i <package>    安装一个在本地文件系统上存在的Debian软件包

dpkg -r <package>    移除一个已经安装的软件包

dpkg -P <package>   移除已安装软件包及配置文件

dpkg -L <package>   列出安装的软件包清单

dpkg -s <package>    显出软件包的安装状态

2、基于dpkg的一些缺点,既为了解决软件包依赖关系和自动获取软件包的问题,自然就出现了apt工具。APT系列工具可能是Deb软件包管理工具中功能强大的。它可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库、自动检查软件包依赖关系、安装和升级软件包、从软件源镜像站点主动获取相关软件包等。常用的APT实用程序有:apt-get、apt-cache等。

apt-get:

apt-get install <package>                            安装软件包

apt-get remove <package>    卸载软件包

apt-get remove --purage <package>          完全卸载软件包,包括配置信息等

apt-cache:

apt-cache  show  <package>                       获取二进制软件包的详细信息

apt-cache  depands  <package>                  获取该软件包的依赖关系

apt-cache  rdepends  <package>                 获取该软件包的被依赖关系

 

三、Apt软件包管理工具的的工作原理:

在我们的ubuntu系统中,我们采用集中式的软件仓库机制:

1) 将软件进行分类,同类的软件放到一个软件仓库中;

2) 然后将这些软件仓库放到镜像服务器上;

3) ubuntu用户从这些镜像服务器上去下载软件。

(镜像服务器,它的功能和服务与主服务器是一样的,只是放置的位置不同而已,作用是分担主服务器的负荷)

但是世界上这么多的镜像服务器站点,我们怎么选择这些镜像服务点呢?由于网络的原因有些镜像服务站点我们是访问不到的,还有一些由于距离等因素,会导致网速特别慢或是数据包数据丢失等问题,针对这个问题,ubuntu操作系统的解决方法是将合适的镜像服务器站点列出来,每次下载的时候从这些列表中找服务器下载就可以了,这个镜像服务器的站点列表在一个配置文件中,即/etc/apt/目录下的sources.list配置文件。

即使是这样,ubuntu操作系统也只是知道了镜像网站的地址,到底这个镜像服务器有哪些资源,还不知道,如果是每次下载时都去这些镜像站点找一遍,也要耗费很多的时间,针对这个问题,ubuntu操作系统采用索引文件的方式,把每个镜像站点有哪些资源都列出来,这样就可以了。这个文件在/var/lib/apt/lists目录下,打开来看就是软件的列表。

前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2018 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号
返回

讲师博文

星创客 - 华清远见旗下高端IT培训品牌

当前位置: 星创客 > 学习资源 > 讲师博文 >

Ubuntu操作系统软件包管理机制分析
来源: 星创客 作者: 星创客 时间:2017-11-08

在这里我们共同分析一下ubuntu操作系统下的软件包管理机制。软件包或者说是应用程序我想大家应该都非常熟悉,比如我们Android手机的软件包.apk文件,以及windows PC机上安装的.exe文件,这些文件中的内容包括二进制...

在这里我们共同分析一下ubuntu操作系统下的软件包管理机制。软件包或者说是应用程序我想大家应该都非常熟悉,比如我们Android手机的软件包——.apk文件,以及windows PC机上安装的.exe文件,这些文件中的内容包括二进制的文件、配置文件、帮助手册等等。那我们安装的时候直接点击安装,然后下一步,就可以完成,属于傻瓜式的操作。以上这些方便快捷的安装方式全都归功于软件包管理工具。如果没有软件包管理工具而是只给我们二进制文件和配置文件等等,我们自己是没办法轻松的安装好一个软件的。同样对于我们的Linux操作系统来说也有自己的软件包管理工具以及软件包管理机制。那么现在我们就共同来分析一下Linux操作系统的软件包管理机制(我们这里使用的Linux操作系统是ubuntu)。

一、Ubuntu操作系统下的软件包类型

Ubuntu操作系统下有两种类型的软件包,一种是二进制软件包(deb),另一种是源码包(deb-src)。

二进制软件包(Binary Packages):它包含可执行文件、库文件、配置文件、man/info页面、版权声明和其它文档。

源码包(Source Packages):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。

注释:对于二进制软件包,可以使用软件包管理工具对它进行管理(安装卸载等操作),而对于源码包来说,它实际上是一个由tar归档压缩的包,因此我们要使用源码包时,就要对源码包进行解压缩,使用源码包提供的编译工具或者说采用它的编译规则来对源码进行编译,终生成一个可执行文件。

二、Ubuntu操作系统下的软件包管理工具

刚才提到对于二进制包来说,要使用软件包管理工具来实现安装、卸载以及查询等功能,那么我们的ubuntu操作系统正好提供了两种软件包管理工具,dpkg和APT即命令行工具(除了命令行的软件包管理工具以外还有文本窗口界面的软件包管理工具aptitude以及图形界面的工具synaptic,这些工具大家有兴趣可以下载安装后使用一下,体会体会。)

1、Dpkg是早的软件包管理工具,它在Debian一提出包管理模式后就诞生了。使用dpkg可以实现软件包的安装、编译、卸载、查询,以及应用程序打包等功能。但是由于当时Linux系统规模和Internet网络条件的限制,没有考虑到操作系统中软件包存在如此复杂的依赖关系,以及帮助用户获取软件包(获取存在依赖关系的软件包)。因此导致我们的dpkg在安装软件包的过程中不会解决软件包这件的依赖关系,同时,也只能够安装已经下载好的deb包。相关的命令如下:

dpkg -i <package>    安装一个在本地文件系统上存在的Debian软件包

dpkg -r <package>    移除一个已经安装的软件包

dpkg -P <package>   移除已安装软件包及配置文件

dpkg -L <package>   列出安装的软件包清单

dpkg -s <package>    显出软件包的安装状态

2、基于dpkg的一些缺点,既为了解决软件包依赖关系和自动获取软件包的问题,自然就出现了apt工具。APT系列工具可能是Deb软件包管理工具中功能强大的。它可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库、自动检查软件包依赖关系、安装和升级软件包、从软件源镜像站点主动获取相关软件包等。常用的APT实用程序有:apt-get、apt-cache等。

apt-get:

apt-get install <package>                            安装软件包

apt-get remove <package>    卸载软件包

apt-get remove --purage <package>          完全卸载软件包,包括配置信息等

apt-cache:

apt-cache  show  <package>                       获取二进制软件包的详细信息

apt-cache  depands  <package>                  获取该软件包的依赖关系

apt-cache  rdepends  <package>                 获取该软件包的被依赖关系

 

三、Apt软件包管理工具的的工作原理:

在我们的ubuntu系统中,我们采用集中式的软件仓库机制:

1) 将软件进行分类,同类的软件放到一个软件仓库中;

2) 然后将这些软件仓库放到镜像服务器上;

3) ubuntu用户从这些镜像服务器上去下载软件。

(镜像服务器,它的功能和服务与主服务器是一样的,只是放置的位置不同而已,作用是分担主服务器的负荷)

但是世界上这么多的镜像服务器站点,我们怎么选择这些镜像服务点呢?由于网络的原因有些镜像服务站点我们是访问不到的,还有一些由于距离等因素,会导致网速特别慢或是数据包数据丢失等问题,针对这个问题,ubuntu操作系统的解决方法是将合适的镜像服务器站点列出来,每次下载的时候从这些列表中找服务器下载就可以了,这个镜像服务器的站点列表在一个配置文件中,即/etc/apt/目录下的sources.list配置文件。

即使是这样,ubuntu操作系统也只是知道了镜像网站的地址,到底这个镜像服务器有哪些资源,还不知道,如果是每次下载时都去这些镜像站点找一遍,也要耗费很多的时间,针对这个问题,ubuntu操作系统采用索引文件的方式,把每个镜像站点有哪些资源都列出来,这样就可以了。这个文件在/var/lib/apt/lists目录下,打开来看就是软件的列表。

相关推荐

全国咨询热线:400-611-6270

?2004-2018华清远见教育科技集团 版权所有 京ICP备16055225号 京公海网安备11010802025203号