首页 > 折腾 > debian包的结构和解包打包-从打包ubuntu12.10 linuxqq说起

debian包的结构和解包打包-从打包ubuntu12.10 linuxqq说起

2013年1月9日 sigma 发表评论 阅读评论

作为2B青年,果断在mac下装了linux。今天想装QQ,发现报错了。

daohoo@daohoo-mbp:~/Downloads$ sudo dpkg -i linuxqq_v1.0.2-beta1_i386.deb
[sudo] password for daohoo:
dpkg: error processing linuxqq_v1.0.2-beta1_i386.deb (--install):
 parsing file '/var/lib/dpkg/tmp.ci/control' near line 7 package 'linuxqq':
 error in Version string 'v1.0.2-beta1': version number does not start with digit
Errors were encountered while processing:
 linuxqq_v1.0.2-beta1_i386.deb

根据错误信息显示,不能安装的原因是新版的ubuntu要求版本号为数字开头,SB的腾讯却用v开头。因此,我猜想,只要重新打包即可(之前我通过重新打包的方法,也改过android QQ的尾巴)。过程如下:

1.ar解包:

daohoo@daohoo-mbp:~/Downloads/linuxqq$ ar vx linuxqq_1.0.2_i386.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz

2.tar解包control信息:

daohoo@daohoo-mbp:~/Downloads/linuxqq$ tar -zxvf control.tar.gz
./
./conffiles
./control

3.修改control文件:

sed -i "s/v1.0/1.0/g" control

4.重新tar打包control.tar.gz

tar -zcvf control.tar.gz ./conffiles ./control

5.ar重新打包debian包:

ar rcs linuxqq.deb debian-binary control.tar.gz data.tar.gz

6.安装:

sudo dpkg -i linuxqq.deb

BTW:介绍一下关于debian包的结构:

1.解包后得到三个文件:

daohoo@daohoo-mbp:~/Downloads/linuxqq$ ls -l
total 4920
-rw-r--r-- 1 daohoo daohoo     442 Jan  9 20:50 control.tar.gz
-rw-r--r-- 1 daohoo daohoo 5027432 Jan  9 20:50 data.tar.gz
-rw-r--r-- 1 daohoo daohoo       4 Jan  9 20:50 debian-binary

其中:

1.debian-binary:

daohoo@daohoo-mbp:~/Downloads/linuxqq$ cat debian-binary
2.0

 

这个文件包含所使用软件包格式的版本号

2.control.tar.gz:

daohoo@daohoo-mbp:~/Downloads/linuxqq$ tar -zxvf control.tar.gz
./
./conffiles
./control

 

daohoo@daohoo-mbp:~/Downloads/linuxqq$ cat control
Package: linuxqq
Priority: extra
Section: Internet
Installed-Size: 6264
Maintainer: Tencent Inc.
Architecture: i386
Version: v1.0.2-beta1
Depends: gtk2.0-binver-2.10.0, libc6, libcairo2, libglib2.0-0, libgtk2.0-0, libpango1.0-0
Description: QQ - The most popular free instant messaging program in China.
 * Chat with more than 590,000,000 people all over the world.
 * Free to download or distribute absolutely.

 

包含了软件包管理工具所需信息的tarball文件。里面的control文件有版本号以及依赖关系

3.data.tar.gz:

daohoo@daohoo-mbp:~/Downloads/linuxqq$ tar -zxvf data.tar.gz
./
./usr/
./usr/bin/
./usr/bin/qq
./usr/share/
./usr/share/tencent/
./usr/share/tencent/qq/
./usr/share/tencent/qq/qq.png
./usr/share/tencent/qq/qq
./usr/share/tencent/qq/res.db
./usr/share/applications/
./usr/share/applications/qq.desktop
./usr/share/doc/
./usr/share/doc/linuxqq/
./usr/share/doc/linuxqq/qq

这个才是最后真正的安装文件,指明了安装的路径。

最后,上传下打好包在ubuntu12.10可用的linux QQ debian包(出于安全考虑,对debian进行了重新打包)。

ubuntu12.10 可用linux QQ

分类: 折腾 标签: ,

  1. 2013年3月11日20:26 | #1

    博客不错

  2. 2013年3月19日11:33 | #2

    linuxqq 还能用吗?

  3. 2014年1月14日12:24 | #3

    你个傻逼已经一年没发blog了。。

  4. 2015年1月16日22:33 | #4

    每个代码都带滚动条,感觉压力好大。

  5. 2016年5月25日09:43 | #5

    @xixi527
    一年后的回复。。。。 的确风格不好,现在也懒得折腾了。

  6. 2016年5月25日09:43 | #6

    @sb
    两年半后来回复,表示我还活着。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量