軟件包的依賴性關係定義

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給你解決)。
你要想安裝這些東西,就必須解決依賴關係,否則軟件無法運行。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章