ipkg-轻量级适用于嵌入式软件升级包管理工具
ipkg是在嵌入式装置上最常见到的套件管理系统,如iPAQ,或Linksys的WRT54G都 可以看到它的身影,其实这几年来,随笔者玩的板子越来越多,也发现很多家公司连实验板都使用ipkg套件管理系统,这样的目的其一是为了简化安装软件的手 序,其二是为了让实验板安装不同的ipk而达到不同的功能,如果一块板子装完server.ipk,它就摇身一变为拥有各种不同网络服务器功能的装置,如 果改装phone.ipk,它可能又被用来当作电话交换机使用
废话不多说,我们先来做个实验,首先到ipkg的官方网站下 载最新的ipkg source tar ball,并编译它,编译的步骤很简单,输入configure,make,make install即可,编译和安装完后可得到一可执行的shell script名称为ipkg-cl,如果执行ipkg-cl发现有缺library,那请把.lib文件夹下的 libipkg.so,libipkg.so.0,libipkg.so.0.0.0都一起复制到/usr/lib文件夹下
接下来我们要制造一个测试的ipk package,而这个package干得事很简单,就是在home文件夹上创造一个test.txt文件,详细的制作过程我列如下
1. 创造一个新文件夹名称为test,并在test下面创造两个目录分别为CONTROL和home
2. 在home文件夹下摆test.txt
3. 在CONTROL文件夹下创造一个control文件内容如下
1. Package: test
2. Priority: optional
3. Section: Misc
4. Version: 0.9.3.2
5. Architecture: intel
6. Maintainer: jemicheng@gmail.com
7. Source:http://daydreamer.idv.tw
8. Description: ipkg test package
control文件里面比较重要的是architecture字段,等一下我们会用到它
4. 下载ipkg-build.sh,我用这个shell script制造ipk package
5. 执行命令./ipkg-build.sh [source directory] [destination directory],范例为./ipkg-build.sh test package,执行完后你会发现有一个ipk package摆在package目录下
package制做好后,我们来安装看看吧,在安装前必需设定ipkg的config文件,此档案位置在/etc文件夹内,名称为ipkg.conf,我的config档内容如下,请注意arch这个字段,一定要跟我们package内的control文件的Architecture一样,而dest root就是指明软件安装的位置从那里开始
1. dest root /
2. arch intel 10
3. arch all 1
安装的命令为ipkg-cl install -f /etc/ipkg.conf[your package name],安装完后,可看到/home文件夹下多出了test.txt这个纯文本档,用ipkg-cl list_intalled,可以看到目前系统安装的套件,用ipkg-cl remove [package name]可以移除安装的软件,下面的图就是整个安装和移除的过程
不过ipkg有趣的地方是在于设定安装软件前后的script,这方面的文章可参考wiki上的说明,举个范例来说,在CONTROL文件夹下摆preinst和postinst这两个script,其各自内容如下
[preinst]
1. #!/bin/sh
2. cp aaa xxx
3.
4. exit 0
上面的script意思为在安装前请把aaa拷贝为xxx
[postinst]
1. #!/bin/sh
2. case "$1" in
3. update)
4. ;;
5. install)
6. cp bbb yyy
7. ;;
8. configure)
9. ;;
10. remove)
11. ;;
12. *)
13. ;;
14. esac
15.
16. exit
上面的script意思为在安装时请把bbb拷贝为yyy
我上述所列的只是很简单的描述,如果要看更详细的数据,请至ipkg的官方网站查询