Chinaunix首页 | 论坛 | 博客
  • 博客访问: 85411
  • 博文数量: 25
  • 博客积分: 2011
  • 博客等级: 大尉
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-11 14:35
文章分类

全部博文(25)

文章存档

2011年(1)

2009年(8)

2008年(16)

我的朋友

分类: LINUX

2008-12-31 11:52:51

devscripts 系列: mk-build-deps

leave comments »

devscripts 是給 Debian developer 用的一些好用工具的集合,今天要介紹的是 mk-build-deps

Debian distribution 中包含了許多預先編譯好的 deb 檔,通常我們只要 apt-get install 安裝即可,但是當我們需要修改編譯參數或是製作新版本的套件時,就會需要 apt-get source 取得 source package 自行編譯。要製作 deb 時會要求先安裝一些相依套件,通常是 libfoo-dev 等,此時可以用 apt-get build-dep 自動安裝相依套件。

麻煩的地方是,透過 apt-get build-dep 安裝的套件並不是因為跟任何套件有相依性才被安裝的,相等於直接 apt-get install,因此不會在你編譯完不需要的時候自動移除。如果時常要編一些東西的話,常常系統上會裝滿了許多 libxxx-dev 難以整理。有一個技巧就是利用 製作 ,把編譯需要的套件都包含進去,以後不需要了只要移除這個 metapackage 就可以把所有相依套件移除乾淨。

mk-build-deps 就是把這個技巧自動化的工具,使用範例如下:

  1. % mk-build-deps network-manager-gnome  
  2. dh_testdir  
  3. dh_testroot  
  4. dh_clean -k  
  5. dh_testdir  
  6. dh_testroot  
  7. dh_install  
  8. dh_installdocs  
  9. dh_installchangelogs  
  10. dh_compress  
  11. dh_fixperms  
  12. dh_installdeb  
  13. dh_gencontrol  
  14. dh_md5sums  
  15. dh_builddeb  
  16. dpkg-deb: building package network-manager-applet-build-deps' in../network-manager-applet-build-deps_0.6.6-2_all.deb'.

      
  17.   
  18. The package has been created.  

  19. Attention, the package has been created in the current directory,  
  20. not in ".." as indicated by the message above!

      
  21.   
  22. % dpkg -f network-manager-applet-build-deps_0.6.6-2_all.deb depends  

  23. autotools-dev, cdbs, debhelper (>= 5.0.0), docbook-to-man, intltool,  
  24. libdbus-glib-1-dev (>= 0.60), libgconf2-dev, libglade2-dev, libglib2.0-dev  
  25. (>= 2.10), libgnome-keyring-dev, libgnome2-dev, libgnomeui-dev,  
  26. libgtk2.0-dev, libiw-dev (>= 27+28pre9), libnm-util-dev (>= 0.6.6),  
  27. libnotify-dev (>= 0.3.0), network-manager-dev (>= 0.6.6), pkg-config  

而 Frank Lichtenheld 更整理了一個 apt 可以直接安裝已經製作好的 build-dep 套件!只要加入以下到 sources.list 即可:

阅读(2493) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~