QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6126|回复: 32

无需安装, 点击即可运行的 klik on MGC

[复制链接]
发表于 2005-5-18 14:14:07 | 显示全部楼层 |阅读模式
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 文件.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2005-5-18 14:54:53 | 显示全部楼层
好东西!  
回复

使用道具 举报

发表于 2005-5-18 17:59:56 | 显示全部楼层
确实是好东西~~
回复

使用道具 举报

发表于 2005-5-19 18:27:10 | 显示全部楼层
唯一的好处是不会加大系统的体积,适合游戏类和特殊用途的非常用软件。
回复

使用道具 举报

 楼主| 发表于 2005-5-19 22:37:54 | 显示全部楼层
常用的也行啊, 像 firefox, skype 等, Luma QQ 应该也可以.
放在 CD 上的话, mount 上 CD 或 ISO 后, 点击即可运行.

Damn Small Linux 就是一个极小的发行版, 然后 DSL 包进行扩展, 也是直接点击就可运行, 也可装在系统里.
回复

使用道具 举报

发表于 2005-5-19 23:07:26 | 显示全部楼层
非常好,能不能进一步修改最好不要涉及fstab不知道行不行?这样会更方便。
希望能得到详细的制作过程!
回复

使用道具 举报

发表于 2005-5-20 11:16:13 | 显示全部楼层
顶一个
回复

使用道具 举报

发表于 2005-5-20 16:29:44 | 显示全部楼层
[quote:6c9cb52f3b="wjping119"]非常好,能不能进一步修改最好不要涉及fstab不知道行不行?这样会更方便。
希望能得到详细的制作过程![/quote]
打算做成fanx的模块应用吗?
回复

使用道具 举报

发表于 2005-5-20 19:07:11 | 显示全部楼层
打算,打算FanX中的mo模块也能使用这个好的方法。
回复

使用道具 举报

 楼主| 发表于 2005-5-23 11:47:49 | 显示全部楼层
在这里写个简单的文档吧
klik_inst.sh 会生成几个脚本(脚本里有注释):
[code:1]
- $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 的程序
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2005-5-23 12:46:19 | 显示全部楼层
以下再介绍 .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 的使用帮助
使用说明: /home/zslevin/.klik_make <action> [args]
action 为:
    extract      解压, 将 rpm, tar.gz 文件等解压
    make_dirs    创建可能需要的目录
    patch        修改对 /usr/* 的文件引用
    wrapper      生成包装运行文件
    cmg          生成 cmg 文件到桌面

像 skype 这样软件一般只需要 exract 和 cmg 两步.

[2] wrapper 为 .cmg 文件的入口点, 由 ~/.zAppRun 调用, 因此 wrapper 非常重要.
skype 自己解决了路径, 动态库等问题, 因此只要做个链接就行.
而其它的软件可能就要涉及到修改 LD_LIBRARY_PATH, PERL5LIB 以及命令行参数的处理, 这时, 可用 ~/.klik_make wrapper
生成一个范例, 再视情况进行修改.

* 注意事项: 由于 cramfs 文件系统的限制, 某些文件超过 16M 就会截断(好像是这样,
  我在处理 Acrobat Reader 7.0 时遇到过这种情况, 这时生成的 .cmg
  文件运行时就会出错. 解决方法应该是找另一种压缩文件系统, 大家有什么建议?
  我只是用 mkisofs 来生成 ISO 格式的 .cmg 文件, 但没有压缩.
回复

使用道具 举报

 楼主| 发表于 2005-5-23 12:52:04 | 显示全部楼层
我曾经试过用 unionfs :
将 cmg 文件 loop mount 到 /mnt/app/1
再将 /mnt/app/1 加入 unionfs 的 UNION 点 /usr/local
这样可以实现透明处理, 对所有的 prefix 配置为 /usr/local 的应用软件, 应该可以透明地运行.

但 unionfs 太不稳定了, 例如对 /mnt/app/1 点进行 remove 时,  konsole 便失去响应, 新开的应用也用不了.
回复

使用道具 举报

发表于 2005-5-26 20:10:39 | 显示全部楼层
当unionfs启动系统以后应该就很无关了啊
压缩系统可以使用squashfs,这个需要内核补丁的,
不过压缩很高,更重要的是速度很快,slax使用的就是这个。
回复

使用道具 举报

 楼主| 发表于 2005-5-26 22:24:38 | 显示全部楼层
你所指的"unionfs 启动系统" 是指用 unionfs 将光盘和内存盘 union 在一起再 chroot 吗?

我所尝试的是, 点击 cmg 文件后, 将其 mount 到 /mnt/app/1 中, 再将 /mnt/app/1 union 到 /usr/local 中. 这样, 一般无需再对应用程序作 patch (主要是路径问题).

我试试 squashfs , 看效果如何
回复

使用道具 举报

发表于 2005-5-27 08:58:13 | 显示全部楼层
你所指的"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模块一样的情况
不过我还有点菜,只能是慢慢探索。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-29 13:15 , Processed in 0.057143 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表