页面

2008年12月31日

自动从git上下载compiz源码并编译的shell脚本

本来一直用Archlinux源里的0.7.8版,从没出现问题,无奈昨天pacman -Syu后,开始撒野了。症状是今天开机后,不能启动fusion-icon,连ccsm也不能,在终端上运行提示缺失libprotobuf.so.2这个文件,用Google查了下,没发现什么有用的信息。正在纳闷之际,给我发现以前下回来的这个自动编译compiz的脚本,于是动起了自己编译compiz的念头。整个编译过程大概用了30分钟左右吧,装上后在终端启动fusion-icon,还真的能启动了!一直用了几小时都没出现问题,觉得很满意。

脚本下载地址:(box | SkyDrive

该脚本来源于linuxsir.org论坛的zhuqin_83,我修改了其中几个PKGBUILD里的git地址,加上了一个最小化效果的patch,删了一些已过时的plugin。

PS:Goodbye,2008年!

2008年12月25日

tmpfs的应用

什么是tmpfs?tmpfs是一个高效的文件系统,之所以高效,是因为其使用内存作为存储设备。通过tmpfs,我们能像使用硬盘一样的使用内存。众所周知,内存的读取写入速度是硬盘不能比拟的。但由于内存的易失性,当系统掉电时,所有在tmpfs上的内容将会丢失。根据这些特性,我们可以将一些目录挂载到tmpfs文件系统下,设置正确下还能起到加快某些命令执行的速度。例如 pacman -Ss 。而且从这篇文章得知,tmpfs还会自动释放出未用的空间,大可放心的使用tmpfs。下面我列举一些我在Archlinux上使用tmpfs的一些心得。
首先建议物理内存容量至少要有1G以上,过少的内存反而会起反效果。例如我的物理内容容量为2G。(现在内存都是白菜价了)下面列举一些可以挂载到tmpfs上的目录,当然,你也可以将其他目录也挂载上去,这主要看你的内存大小和想象力了 :) ,例如你可以将整个 Firefox 都搬到内存上运行

/tmp
该目录是用来存放不同程序执行时产生的临时文件,既然是临时文件,即使在关机时没有保存也不会有大碍,而且还可以减少硬盘I/O读写次数。所以这个目录大可放心挂载到tmpfs上。

/var/tmp
功能上和/tmp目录相似,一些kde程序会用到这个目录。

/var/log
系统日志存放的目录。

/var/lib/pacman/sync(Archlinux特有)
这个目录是pacman特有的,用来存储每个可用仓库的软件列表,依赖关系等的信息。你每次执行 pacman -Sy 命令,就是将互联网上软件仓库的信息下载到这个目录,而执行 pacman -Ss 就是从这个目录下的信息中查询。如果将这个目录挂载到tmpfs上,可以加快搜索软件时的查询速度,但缺点是每次启动系统后都要重新执行一次 pacman -Sy 命令来生成这个目录下的内容,除非你用脚本控制每次关机都备份这个目录下的内容,如何取舍就要看各位了 :) 。

说了一大堆,那究竟如何才能挂载这些目录呢?方法很简单,直接写到 /etc/fstab 下,然后重启系统。不推荐直接用mount命令挂载,这会马上清空这些目录下的内容,有可能会导致正在运行的程序出错。

将下面这句加入到 /etc/fstab 内。
none /tmp tmpfs defaults,size=100m 0 0

值得注意 size=100m 这个选项,这是控制使用多少内存的关键,如果不加上这个选项,将默认使用一半容量的内存。这里我让其使用100M的内存空间,并挂载到 /tmp 下。其他的目录请如此类推,又或者加大 /tmp 下的空间,例如使用300M内存,然后将其他目录做符号链接到 /tmp 下,总之实现的方法有很多,就看各位喜欢 :) 。enjoy it !

PS:祝大家生蛋节快乐! :D