无需安装, 点击即可运行的 klik on MGC
klik 的理念是, 无需安装, 下载后点击即可运行.klik 的网址为 http://klik.atekon.de , 它适用于 Debian 类的几种系统, 原理是将 .deb 包解开, 加入 wrapper 脚本, 转为 .cmg 文件( 其典型格式为 cramfs, 一种压缩的文件系统), 点击时则将这个 .cmg 文件 mount 到系统, 运行 wrapper 脚本, 应用结束后, 再 umount.
我将 klik 移植到 MGC 上, 对它的脚本文件作了些删改, 大家可以下载 klik_inst.sh , 然后以你桌面用户的身份运行:
$ cd 下载目录
$ chmod 755 klik_inst.sh
$ ./klik_inst.sh
它可能会提示你要运行 $HOME/klik-cmg-install-root 脚本才能完成安装, 这个脚本主要修改 /etc/fstab, 让普通用户能对 /mnt/app/1 至 /mnt/app/7 的目录进行 mount 操作.
OK, 完成后就可以到 http://www.magiclinux.org/people/levindu/klik/ 下载 .cmg 文件. 目前我生成并试运行了
- firefox 1.04 , 这个不用多说了吧, 是英文版的
- freemind, 这个东东是用 Java 写的"脑图", watercloud 推荐的
- pig, 猪仔踩球小游戏, 可惜只有几关
- llk, 就是公社上的"连连看"游戏, 很好玩.
- starfight, 战机游戏, 这个还未上传.
把下载的 .cmg 文件放到 KDE 的桌面上, 点击即可运行.
大家先玩玩, 使用过程中有什么问题或意见即管提.
如果大家感兴趣, 我再写篇帖子介绍如何创建这些 .cmg 文件. 好东西!:-D 确实是好东西~~ 唯一的好处是不会加大系统的体积,适合游戏类和特殊用途的非常用软件。 常用的也行啊, 像 firefox, skype 等, Luma QQ 应该也可以.
放在 CD 上的话, mount 上 CD 或 ISO 后, 点击即可运行.
Damn Small Linux 就是一个极小的发行版, 然后 DSL 包进行扩展, 也是直接点击就可运行, 也可装在系统里. 非常好,能不能进一步修改最好不要涉及fstab不知道行不行?这样会更方便。
希望能得到详细的制作过程! 顶一个 非常好,能不能进一步修改最好不要涉及fstab不知道行不行?这样会更方便。
希望能得到详细的制作过程!
打算做成fanx的模块应用吗? :) 打算,打算FanX中的mo模块也能使用这个好的方法。 在这里写个简单的文档吧:)
klik_inst.sh 会生成几个脚本(脚本里有注释):
- $HOME/.kde/share/mimelnk/all/cmg.desktop
- $HOME/.kde/share/applnk/.hidden/AppRun.desktop
增加 .cmg mime type, 以便点击 .cmg 文件时调用 $HOME/.zAppRun 来运行.
- $HOME/.zAppRun
运行 .cmg 的脚本
- $HOME/.klik_lib
通用库文件, 对话框函数集
- $HOME/klik-cmg-install-root
需要以 root 运行的脚本, 主要配置环境(修改 /etc/fstab, 添加 /mnt/app 目录等), 运行完后可删除.
- $HOME/.klik
下载 rpm 文件, 并转换成 cmg(未完成)
- $HOME/.kde/share/services/klik.protocol
集成 KDE 支持 klik:// 协议, 调用 $HOME/.klik 进行处理, 因 .klik 未完成, 这里也暂不可用.
- $HOME/.klik_make
协助创建 cmg 的程序
以下再介绍 .cmg 文件的具体生成:
生成过程用到 $HOME/.klik_make 脚本, 下面以 skype.cmg 的生成过程为例:
mkdir skype
cd skype
~/.klik_make # 查看帮助
~/.klik_make extract kype-1.0.0.1-1mgc.i686.rpm# 解压
ls usr/bin
ln -s usr/bin/skypewrapper # 将可执行文件做个名为 wrapper 的链接
./wrapper# 测试
~/.klik_make cmg # 生成 .cmg 文件, 文件存放在KDE桌面, 即 ~/Desktop 上.
然后到桌面点击 skype.cmg 进行最后的运行测试.
~/.klik_make 的使用帮助
使用说明: /home/zslevin/.klik_make <action>
action 为:
extract 解压, 将 rpm, tar.gz 文件等解压
make_dirs 创建可能需要的目录
patch 修改对 /usr/* 的文件引用
wrapper 生成包装运行文件
cmg 生成 cmg 文件到桌面
像 skype 这样软件一般只需要 exract 和 cmg 两步.
wrapper 为 .cmg 文件的入口点, 由 ~/.zAppRun 调用, 因此 wrapper 非常重要.
skype 自己解决了路径, 动态库等问题, 因此只要做个链接就行.
而其它的软件可能就要涉及到修改 LD_LIBRARY_PATH, PERL5LIB 以及命令行参数的处理, 这时, 可用 ~/.klik_make wrapper
生成一个范例, 再视情况进行修改.
* 注意事项: 由于 cramfs 文件系统的限制, 某些文件超过 16M 就会截断(好像是这样,
我在处理 Acrobat Reader 7.0 时遇到过这种情况, 这时生成的 .cmg
文件运行时就会出错. 解决方法应该是找另一种压缩文件系统, 大家有什么建议?
我只是用 mkisofs 来生成 ISO 格式的 .cmg 文件, 但没有压缩. 我曾经试过用 unionfs :
将 cmg 文件 loop mount 到 /mnt/app/1
再将 /mnt/app/1 加入 unionfs 的 UNION 点 /usr/local
这样可以实现透明处理, 对所有的 prefix 配置为 /usr/local 的应用软件, 应该可以透明地运行.
但 unionfs 太不稳定了, 例如对 /mnt/app/1 点进行 remove 时,konsole 便失去响应, 新开的应用也用不了. 当unionfs启动系统以后应该就很无关了啊
压缩系统可以使用squashfs,这个需要内核补丁的,
不过压缩很高,更重要的是速度很快,slax使用的就是这个。 你所指的"unionfs 启动系统" 是指用 unionfs 将光盘和内存盘 union 在一起再 chroot 吗?
我所尝试的是, 点击 cmg 文件后, 将其 mount 到 /mnt/app/1 中, 再将 /mnt/app/1 union 到 /usr/local 中. 这样, 一般无需再对应用程序作 patch (主要是路径问题).
我试试 squashfs , 看效果如何:)
你所指的"unionfs 启动系统" 是指用 unionfs 将光盘和内存盘 union 在一起再 chroot 吗?
是这样的,就是这种原理。
slax5现在使用unionfs和squashfs的组合,squashfs很稳定,有问题还是出自unionfs,它还不是很稳定。
你可以下载FanX-1.0做试验,很小,包含kde,208M
我在FanX中安装了for magic的这个脚本,因为时间问题还没有来得及充分调试,不过看样子唯一的问题还是出自fstab,FanX的fstab不好改,所以我问能不能不修改fstab
现在我想的是,能将slax的mo模块也做成这样的东西会方便很多。
我觉得不涉及fstab也可以实现,就如同挂载一个loop模块一样的情况
不过我还有点菜,只能是慢慢探索。