* 创建 cmg
以下介绍 .cmg 文件的具体生成. 生成过程用到 $HOME/.klik_make 脚本,
下面以 skype.cmg 的生成过程为例.
$ mkdir skype
$ cd skype
$ ~/.klik/make # 查看帮助 [1]
$ ~/.klik/make extract kype-1.0.0.1-1mgc.i686.rpm # 解压
$ ls usr/bin
$ ln -s usr/bin/skype wrapper # 将可执行文件做个名为 wrapper 的链接 [2]
$ ./wrapper # 测试
$ ~/.klik_make cmg # 生成 .cmg 文件, 文件存放在KDE桌面, 即 ~/Desktop 上.
然后到桌面点击 skype.cmg 进行最后的运行测试.
[1] ~/.klik/make 的使用帮助
使用说明: ~/.klik/make
action 为:
extract 解压, 后跟文件名, 将 rpm, tar.gz 文件等解压
make_dirs 创建可能需要的目录
create_desktop 创建桌面文件
patch 修改对 /usr/* 的文件引用
wrapper 生成包装运行文件
chmod 增加其它用户的读权限
cmg 生成 cmg 文件到桌面, 后跟 cmg 类型名称: squashfs(缺省) 和 cramfs
当前目录的名称为软件包名称,可在此目录放置同名的桌面文件和图标;
创建操作一般只需要 extract 和 cmg 两步,wrapper 脚本可以手工生成.
像 skype 这样软件一般只需要 exract 和 cmg 两步.
[2] wrapper 为 .cmg 文件的入口点, 由 ~/.klik/run 调用, 因此 wrapper 非常重要.
skype 自己解决了路径, 动态库等问题, 因此只要做个链接就行. 而其它的
软件可能就要涉及到修改 LD_LIBRARY_PATH, PERL5LIB 以及命令行参数的处理,
这时, 可用 ~/.klik/make wrapper 生成一个范例, 再视情况进行修改.
注意事项: 由于 cramfs 文件系统的限制, 某些文件超过 16M 就会截断(好像是
这样, 我在处理 Acrobat Reader 7.0 时遇到过这种情况, 这时生成的 .cmg 文
件运行时就会出错. 解决方法应该是找另一种压缩文件系统, 现在 klik 默认使
用 squashfs 格式, 不存在这个问题了.
* 开发文档
klik_inst.sh 会生成几个脚本(脚本里有注释):
klik 运行支持
- $HOME/.klik/run
运行 .cmg 的脚本
- $HOME/.lib
通用库文件, 对话框函数集
创建 cmg
- $HOME/.klik/make
协助创建 cmg 的程序
KDE 环境设置
- $HOME/.kde/share/services/klik.protocol
集成 KDE 支持 klik:// 协议, 调用 $HOME/.klik 进行处理, 因 .klik 未完成, 这里也暂不可用.
- $HOME/.kde/share/mimelnk/all/cmg.desktop
- $HOME/.kde/share/applnk/.hidden/AppRun.desktop
增加 .cmg mime type, 以便点击 .cmg 文件时调用 $HOME/.zAppRun 来运行.
最新评论