Tinycore Linux Wiki 学习日记之九:高级应用

这是 Tinycore Linux Wiki 的第九部分,高级应用。主要是讲扩展包的建立,自定义图标,建立私有扩展包服务器,检查备份,在 wbar 中为自定义命令建立图标等。

2011年10月07日 星期五
For Advanced Users

Creating Extensions
http://wiki.tinycorelinux.net/wiki:creating_extensions

需要compiletc、squash 文件工具扩展包

Required info:
可以提交 tcz 扩展包到 tcesubmit _at_ gmail _dot_ com email 供大家分享: http://forum.tinycorelinux.net/index.php?topic=330.0 。

程序的图标、菜单、设置脚本、.info 和 .dep 文件的创建: http://wiki.tinycorelinux.net/wiki:iconmenuinfo
Menu entries:
在扩展包的 /usr/local/share/applications 目录里提供符合 freedesktop.org 标准的 .desktop 文件,系统启动时即可自动加载菜单。

Icons:
图标需要 48×48 PNG 图片,在上面的 .desktop 文件中提供 TC 特别规定的如“ X-FullPathIcon=/usr/local/share/pixmaps/opera10.png“字段(非 freedesktop.org 标准)。

Startup script:
同名的设置脚本在:/usr/local/tce.installed/ 中,可选的。
question: 创建 /tmp/package/usr/local/tce.installed/package_name ( http://wiki.tinycorelinux.net/wiki:creating_extensions?s[]=startup&s[]=script#adding_custom_startup_scripts )?

Packaging kernel modules: http://forum.tinycorelinux.net/index.php?topic=443.0
question: 什么是 PPI? http://forum.tinycorelinux.net/index.php/topic,11610.0.html
扩展阅读:论坛上已有朋友详细解答这一问题,并给出参考文章:Tiny Core Linux 2.1: Less is more https://lwn.net/Articles/340495/
这是关于 Tinycore 运行模式的一个过时的术语:Persistent Personal Installation,现在最新的4.0 版已经去掉了这种模式 PPI/local.

Abbreviated steps:
六大步骤是:编译安装;分离文档、locale、开发文件;squash 打包;dep、info、list、md5等辅助文件;加密/归档;发给 Tiny Core 开发组

2011年10月08日 星期六

1、推荐的编译器标志设置(为了兼容性):

export CFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe"
export LDFLAGS="-Wl,-O1"

2、为编译完成的二进制代码瘦身:

find . | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null

find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null

3、打包:
mksquashfs package program_name.tcz

4、当 make DESTDIR=/path/dir install 失败时,可以用下面的方法打包:

./configure --prefix=/usr/local
make
touch /tmp/mark #in case DESTDIR fails
make install DESTDIR=/tmp/pkg #DESTDIR may not work ...
find /usr/local -newer /tmp/mark -not -type d > /tmp/list
tar -T /tmp/list -czvf /tmp/someapp.tar.gz

但是因为有时安装程序仅是复制源码包里的一些文件(时间未变),所以并不能保证所有的安装文件都打包了,要人工检查一下安装器信息。

5、这篇 wiki 另外给出了如果要提交到正式 Tinycore 仓库需要做的一些事,如:正确性检查,合理的分割包,完整性检查,脚本自动化测试( extension audit script http://forum.tinycorelinux.net/index.php?topic=2475.0 或 submitqc.tcz ),bcrypt 加密并发送到指定邮件。

2011年10月09日 星期日
Creating Personal Icons
http://wiki.tinycorelinux.net/wiki:creating_personal_icons
1、
在 usr/local/tce.menu 建立菜单配置文件(question: 但是好像是针对 JWM 的配置?),在 usr/local/tce.icons 建立图标设置文件
2、
freedesktop 标准的配置文件: /usr/local/share/applications/PACKAGENAME.desktop
可能跟上面针对 tce 定制的菜单图标方案冲突

question: 上面两种菜单图标方案是否只能二取一?选择的标准是什么?

Running a private extension server
http://wiki.tinycorelinux.net/wiki:local_appbrowser_server
可以建立一个局域网内的 tce 仓库。

Check your backup worked before rebooting
http://wiki.tinycorelinux.net/wiki:backup-check
重启之前检查备份文件的方法。

Creating custom command icons in wbar
http://wiki.tinycorelinux.net/wiki:creating_custom_command_icons_in_wbar
为自定义脚本建立 wbar 启动的方法:在 /tce/ondemand 目录下放置你的脚本文件如: myscript(无扩展名)和同名的图片(如:png文件)并以 img 为后缀,如: myscript.img,然后重启 X 就行了。