居然被顶了38个帖子,好有成就感。
继续:
将二进制文件打成deb包。
大家也下载过类似于instantbird或者prism这样的Mozilla程序吧,Mozilla程序的特点就是,编译好了,直接tar压缩,而不打包。好处就是任何发行版都可以使用,不好的地方就是需要解压缩到某个地方,然后还要自己建立菜单中的快捷方式,比较麻烦。
那我们就以Mozilla instantbird为例子,将它打成deb包,全自动安装到/opt/instantbird目录,并且在菜单建立一个快捷方式。
1,建立一个打包用的总目录,并进入
mkdir ~/build
cd build
2,建立软件包文件的各结构目录
mkdir -r usr/share/applications opt DEBIAN
#~/build/usr/share/applications是我们放快捷方式的地方
#~/build/opt是我们要放程序的地方
#~/build/DEBIAN是我们打包用的文件的地方,这里只需要用到一个文件,就是control。
3,将下载下来的instantbird-0.2a1.en-US.linux-i686.tar.bz2复制到我们需要的地方:
cp instantbird-0.2a1.en-US.linux-i686.tar.bz2 ~/build/opt/
cd ~/build/opt
tar jxvf instantbird-0.2a1.en-US.linux-i686.tar.bz2
rm instantbird-0.2a1.en-US.linux-i686.tar.bz2
留下 ~/build/opt/instantbird/目录
4,进入目录进行一下小修改,instantbird的执行文件必须要求执行此文件的时候,在当前目录进行操作,所以要写一个简单的bash脚本,批处理
cd instantbird
nano instantbird.sh
#!/bin/sh
cd /opt/instantbird
./instantbird
保存退出。
5,好。编辑下instantbird.desktop
cd ~/build/usr/share/applications/
nano instantbird.desktop
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=Mozilla Instantbird
Exec=/opt/instantbird/instantbird.sh
Icon=/opt/instantbird/chrome/icon/instantbird.xpm
Comment=This is a mozilla IM tool
Terminal=false
Type=Application
Categories=Application;Network;InstantMessaging;
保存,退出。
6,到~/build目录输入下du,看看占了多少字节,下面有用。
cd ~/build/DEBIAN
nano control
Package: mozilla-instantbird //此行不允许用大写字母和一些特殊符号,否则打包会出错。
Version: 0.2a-b //软件版本
Section: net //debian有专门的section约定,请大家查下相关文档,给了固定的一些分组名称。
Priority: optional //优先级,默认即可
Architecture: all //不太清楚,不妄言
Depends: //依赖关系,安装此包的时候,必须安装什么包才能使其正常运行呢?把名字和版本号写在这里:{gtklib>=2.0},多个貌似用逗号隔开,记不得了,哈哈。
Recommends: //建议的依赖关系
Installed-Size: 15108 //这里就写那个du所产生的数字,不过写错了好像也没什么,尽量写对吧
Maintainer: Carlos Love Leo <
[email protected]> //维护者,你的大名,和电子邮件。
Description: Mozilla Instantbird //软件包名称,可以大小写,空格
Mozilla Instantbird is a very cool im //写注释的时候,开头空一个空格
//结尾留一空行
7,开始打包。
cd ~
dpkg -b build/ mozilla-instantbird-0.2a1-i686.deb
一定要回到build目录上一层,才开始打包,否则无法读取DEBIAN目录的信息。
8,其实,大家看明白否,你需要亲自指定安装的每一个文件的具体位置。只是我们这次比较懒,绝大部分文件都放到/opt/instantbird下了,呵呵。