软件包的依赖性关系定义

前端之家收集整理的这篇文章主要介绍了软件包的依赖性关系定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ubuntu@ubuntu-desktop:~$ sudo apt-cache depends dpkg-dev
dpkg-dev
依赖: dpkg
依赖: <perl5>
perl
依赖: perl-modules
依赖: cpio
依赖: bzip2
依赖: lzma
依赖: patch
依赖: make
依赖: binutils
依赖: libtimedate-perl
建议: gnupg
建议: debian-keyring
|推荐: gcc
推荐: <c-compiler>
bcc
gcc
gcc-3.4
gcc-4.1
gcc-4.2
gcc-4.3
tcc
推荐: build-essential
冲突: devscripts
冲突: dpkg-cross
替换: manpages-pl
=================================================

From ubuntu 标准教程 人民邮电出版社

依赖:depends 要运行的软件包A必须安装软件包B,甚至还依赖于B 的某些特殊版本,通常依赖版本有最低限制

推荐:recommeds 软件包A 的某些必要功能需要软件包B 来提供。

建议:suggests B能增强软件包A 的功能

替换:replaces B安装的文件被A 中的文件删除或者覆盖了

冲突:confilcts 如果系统安装了B ,那么软件包A 将无法运行

提供:provides A中包含了B 中的所有文件功能

===========================================================

From baidu

为什么会依赖:

        编写软件的人不想自己一个人做完所有的事情,就像寻求外援,于是就找上了各种各样的软件包。
        举个例子,我只是想写一个QQ,但是如果没有图形界面库(或者说我不用图形界面库),我就得自己想办法怎么在屏幕上画一个窗口,怎么显示按钮,怎么显示列表,怎么……
        好了,现在我们知道有GTK库,Qt库,在编写程序的时候,我们只要调用他,告诉他我要在哪里哪里创建一个窗口,然后有什么控件,映射什么信号,等等等等,等我们描述完了,图形界面库就开始在屏幕上绘图,这个过程就不需要我们管了。
       实际上,linux上的大多数图形程序不是依赖GTK,就是依赖Qt,所以要是这些基本的库不安装的话,依赖关系肯定出问题,但不幸的是,一般发行版只装一种库,而你两种库的程序都用,就得自己装另一种库了(通常APT-GET给你解决)。
        你要想安装这些东西,就必须解决依赖关系,否则软件无法运行。

猜你在找的设计模式相关文章