Chinaunix首页 | 论坛 | 博客
  • 博客访问: 885656
  • 博文数量: 286
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1841
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-09 16:26
文章分类

全部博文(286)

文章存档

2016年(38)

2015年(248)

我的朋友

分类: LINUX

2015-05-18 20:47:06

ipk文件
internet package archive


How can I manually unpack a *.ipk file?

These files are gzipped tarballs. So you need merely execute 'tar xfz packagename.ipk'. This will unpack two other tar balls control.tar.gz and data.tar.gz. The first contains information for ipk to do a proper installation of the package, the second contains the binaries and data files of the package.

首先,IPK是个tar压缩包,安装其实就是通过解压到系统根目录/来完成安装的。所以,ipk的安装是覆盖安装。
也就是说,如果你之前安装过,然后自己有改动程序的话,再次安装会覆盖掉原来的文件,那你的改动就会被覆盖掉了……所以,如果是重要的改动记得备份。


其次,来是说ipk里的结构。
IPK包里首先是有3个文件,分别是:
debian-binary        ##版本信息,一般写的都是2.0……这个无关紧要……无视掉……
data.tar.gz            ##安装包的数据包,主要的安装文件都在这里,通过解压这个文件到根目录来达到安装的目的
control.tar.gz        ##安装配置文件,里面放的是安装包的配置脚本。

这里主要来说明一下data和control这2个包。
data里的文件都是按照系统根目录来建立文件目录放至安装的程序的。这样在解压的时候就会自动的覆盖对应的文件夹和文件。
比如如果要把一个叫做test.sh的文件安装到/usr/local/bin里,那么data里的文件和文件夹夹结构就应该和安装目标是一样的:/usr/local/bin/test.sh
这样执行解压的时候就可以直接自动覆盖安装到对应的目录去了。

然后是control包,这个包里一般有preinst、postinst、prerm和postrm这几个文件。
这些文件都是Linux的sh脚本,它们对应的功能是这样的:
preinst(安装前执行), postinst(安装完成执行), prerm(卸载前执行), postrm(卸载完成执行)
就比如说,如果你需要在安装test.ipk安装包前删掉/tmp里的所有文件,那么你就在preinst里写sh命令rm -r /tmp/*即可。如果你需要在安装完成后输出个日志文件,你就在postinst文件里写sh命令 echo '安装完成' > /tmp/test.ipk.log即可……其他的也一样的道理。

在windows下,也可以解压ipk文件,工具就是winrar,需要注意的是需要解压两次才能看到data.tar.gz    control.tar.gz  debian-binary 这几个文件,然后再解压data.tar.gz    control.tar.gz 这两个文件会得到 etc和 usr两个文件夹


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