软件包的依赖性关系定义

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给你解决)。
你要想安装这些东西,就必须解决依赖关系,否则软件无法运行。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值