Log inUsernamePassword
Log me on automatically each visit    
Register
Register
Log in to check your private messages
Log in to check your private messages
Zaurus 中文论坛 Forum Index » pdaXrom & debain & openBSD

This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.
[分享]pdaXrom下ipk包的建立
View previous topic :: View next topic  
Author Message
wjping119



Joined: 28 Oct 2005
Posts: 87

小企鹅: 197

PostPosted: 2005-Dec-15 Thu, am12:46 Reply with quote
 Post subject: [分享]pdaXrom下ipk包的建立

pdaXrom下ipk包的建立

参考文档 http://forum.zaurus.cn/viewtopic.php?t=130

.ipk包就是一个包含两个tar.gz包和一个叫做debian-binary文件的一个.tar.gz包,比如我们用tar tzf 命令解开qpe-terminal_1.5.0-2_arm.ipk这个包的话,能看到目录下有debian-binary,control.tar.gz,和data.tar.gz三个文件,其中debian-binary这个文件是可有可无的,ipkg包管理器可以忽略它。control.tar.gz文件解压后的control文本文件中包含了这个包的名字,包的版本,包的描述,包的作者和包的依赖关系等等,还有重要的安装脚本也在里边。data.tar.gz包中包含了程序的具体文件和程序的各个文件的安装路径,解压这个包后可以看到里边也是一个linux的基本目录结构,因为就它一个程序,所以看上去比较简单。

分别看看三个文件中都包含了什么内容:
显示debian-binary文件的内容
$cat debian-binary
2.0
$
显示解压后的control文件内容:
$cat control
Package: qpe-terminal
Installed-Size: 196k
Filename: ./qpe-terminal_1.5.0-2_arm.ipk
Version: 1.5.0-2
Depends: qpe-base (1.5.0), ptydevs
Priority: optional
Section: qpe
Maintainer: Warwick Allison
Architecture: arm
Description: shell terminal
The terminal for the Qtopia.
$
解压data.tar.gz文件看它的目录结构:
$tar zxvf data.tar.gz
./opt/
./opt/QtPalmtop/
./opt/QtPalmtop/bin/
./opt/QtPalmtop/bin/embeddedkonsole
./opt/QtPalmtop/apps/
./opt/QtPalmtop/apps/Applications/
./opt/QtPalmtop/apps/Applications/embeddedkonsole.desktop
./opt/QtPalmtop/pics/
./opt/QtPalmtop/pics/konsole/
./opt/QtPalmtop/pics/konsole/down.png
./opt/QtPalmtop/pics/konsole/enter.png
./opt/QtPalmtop/pics/konsole/space.png
./opt/QtPalmtop/pics/konsole/tab.png
./opt/QtPalmtop/pics/konsole/up.png
./opt/QtPalmtop/etc/
./opt/QtPalmtop/etc/keytabs/
./opt/QtPalmtop/etc/keytabs/linux.keytab
./opt/QtPalmtop/etc/keytabs/vt100.keytab
$
可以看到这些文件都将会安装到/opt/QtPalmtop/下的不同文件夹中。

在上面的包中的control.tar.gz文件非常简单,只有一个control文件,其实比较复杂的包中会有
* preinst - 包的预安装测试,在真的包解压之前执行)
* postinst - 真实安装(在程序文件解压之后执行).
* prerm - 预卸载(在删除安装文件之前执行).
* postrm - 卸载(在安装文件被删除后执行).
* conffiles - 列出软件包的配置文件,在升级包的过程中不会被覆盖掉。

一个ipk包当然要包括程序的所有文件了,如果是图形介面程序的话,你最好给它添加一个能在桌面上显示的图标,这就包括一个写好的.desktop文件和这个程序的一个.png的图形文件,所以一个标准的包的结构应该是这样的:
my-package_1.0_arm.ipk
|—– debian.binary (可有可无)
|
|——control.tar.gz
| |—– control
| |—– conffiles (可有可无)
| |—– preinst (可有可无)
| |—– postinst (可有可无)
| |—– prerm (可有可无)
| |—– postrm (可有可无)
|
|—– data.tar.gz (这个压缩包包含你的程序的文件)
|—– /usr/share/application/myapp.desktop
|—– /usr/share/pixmaps/myapp.png
|—– /usr/apps/***/Myapp/AppInfo.xml
|-- - /usr/apps/***/Myapp/AppRun

下面我们自己来做一个包,就拿连连看游戏在pdaXrom上的ipk包的制作来说明:
编译好以后,执行安装,用命令make install DESTDIR=/work,程序的文件就会安装到/work中,
cd /work
mkdir data
mv usr data
mkdir control
cd control
建立名叫control的文本文件(注意没有扩展名),control文件的内容这样写:

Package: llk_linux
Priority: optional
Section: extras
Version: 2.2
Architecture: arm
Maintainer: alpher
Depends: gtk2
Description:a small game but very interesting.

退到上一层目录
cd..
建立debian-binary文件,里边输入2.0即可。

这样我们的目录结构就有了,但是为了这个游戏能在桌面上的游戏类中显示并能启动程序的话,我们还需要做点额外工作。

mkdir data/usr/share/applications
cd data/usr/share/applications
在这个目录下建立llk_linux.desktop文件,pdaXrom中,一个典型的.desktop文件的内容是这样的

[Desktop Entry]
Exec=llk_linux
Icon=llk_linux.png
Terminal=false
Type=Application
Categories=Application;Games;llk_linux
StartupNotify=true
Encoding=UTF-8
X-Desktop-File-Install-Version=0.9
Name=llk_linux
Comment=llk_linux game
Name[zh_CN]=连连看
Comment[zh_CN]=连连看小游戏

复制程序图标:
mkdir /work/usr/share/pixmaps
复制/work/usr/local/share/pixmaps/llk_linux.png 到/work/usr/share/pixmaps/下

因为这是个游戏程序,要放到游戏菜单中
mkdir /work/usr/apps/Games/llk_linux
在llk_linux文件夹中建立AppInfo.xml文件,内容如下:
<?xml version="1.0"?>
<AppInfo>
<Summary>llk_linux</Summary>
<About>
<Purpose></Purpose>
</About>
</AppInfo>
同样在这个目录中建立AppRun文件,内容如下:
AppRun的文件内容:
#!/bin/sh
exec llk_linux
然后执行执行chmod a+x AppRun

一切准备完毕,开始打包。进入/work目录,运行tar czf data data.tar.gz
生成data.tar.gz文件;
运行 tar czf control control.tar.gz 生成control.tar.gz文件;
删除 data和control目录
rm -rf data
rm -rf control
退出一层目录
cd ..
打包:tar czf work work.tar.gz
改名:mv work.tar.gz llklinux_2.2_armv5tel.ipk
打包完成。


参考文档 http://forum.zaurus.cn/viewtopic.php?t=130
Back to top
View user's profile Send private message
goodstyle



Joined: 27 Oct 2005
Posts: 393

小企鹅: 238

PostPosted: 2005-Dec-15 Thu, am10:56 Reply with quote
 Post subject:

前段時間才說不會package呢,你學的很快啊! Surprised
Back to top
View user's profile Send private message
wjping119



Joined: 28 Oct 2005
Posts: 87

小企鹅: 197

PostPosted: 2005-Dec-15 Thu, pm4:07 Reply with quote
 Post subject:

虽然举的例子是连连看,但是我还没有打这个包 Very Happy
Back to top
View user's profile Send private message
goodstyle



Joined: 27 Oct 2005
Posts: 393

小企鹅: 238

PostPosted: 2005-Dec-15 Thu, pm4:41 Reply with quote
 Post subject:

wjping119 wrote:
虽然举的例子是连连看,但是我还没有打这个包 Very Happy


还以为你做了呢!崩溃ing Crying or Very sad
呵呵,还是验证下,可惜我现在没用RC12
Back to top
View user's profile Send private message
wjping119



Joined: 28 Oct 2005
Posts: 87

小企鹅: 197

PostPosted: 2005-Dec-15 Thu, pm8:03 Reply with quote
 Post subject:

我只能说你也懒得够呛。 Very Happy
上面就是拿连连看做的例子
而我提供下载的连连看也是一个tar.gz包,虽然后缀名是tgz
打包的所有过程用的都是tar,cacko上没有吗,不可以做?

我是有ipk包就用ipk包,没有我就用tgz包,这是slackware的包管理方式,简单好用,我喜欢。
Back to top
View user's profile Send private message
Display posts from previous:     
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Zaurus 中文论坛 Forum Index » pdaXrom & debain & openBSD All times are GMT + 8 Hours
Page 1 of 1

 
Jump to:   
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

[ 页面生成时间: 秒 ] :: [ 次查询 ] :: [ ]
Powered by phpBB © 2001, 2002 phpBB Group
iCGstation v1.0 Template By Ray © 2003, 2004 iOptional