星期日, 1月 20, 2008

gcin 1.3.8 released with better "打繁出簡" support

香港是個特別的地方,因為以粵語為主這裡流行所謂的香港字,隨著越來越緊密的中港關係,繁/簡應用的機會很多。小弟靠的是兩地貿易 "搵食", 加上過往旅行時也認識了好些內地朋友,所以也有不少用上簡體字的機會。

以前在 Window$ 上要輸入簡體,是打好繁體后用 Word 來轉換的,也可以用 ConvertZ,但兩個方法都不很方便。也因為這樣曾經興致勃勃地想過學五筆,書也買回來了,才發現我已經再學其它輸入法的動力。

轉到 Linux 並用上 firefly 的 xcin 3.0 (現己更名為 oxim),才發現 "打繁出簡" 這個方法。意思也很淺白,也就是依繁體拆碼,輸入法系統本身自動完成轉換成簡體的動作,超好用的功能。后來轉用的 gcin 也有這樣的功能,只是 gcin 的話,打標準 big-5 的繁體字還可以,碰上香港字或本身己經是簡體字時就出現不能轉換,結果沒有輸出的情況。就這樣湊著用到今天,終於盼到了完善 "打繁出簡" 支援的 1.3.8 版。據官方的說法,對於無法轉換的情形,現在改成輸出原來的而不是忽略。太感動了…→︵←… thanks eliu :)

大概 Arch Linux 官方的套件也會很快更新,心急的先用上我自己改的 PKGBUILD 吧。

# $Id: PKGBUILD,v 1.20 2007/12/17 00:24:41 damir Exp $
# Maintainer: damir
# Contributor: damir

pkgname=gcin
pkgver=1.3.8
pkgrel=1
pkgdesc="Traditional Chinese Input Method Server for X window system (XIM)"
arch=("i686" "x86_64")
license=('LGPL')
url="http://www.csie.nctu.edu.tw/~cp76/gcin/"
depends=('gtk2' 'libxtst' 'bash')
install=gcin.install
source=(http://cle.linux.org.tw/gcin/download/$pkgname-$pkgver.tar.bz2 \
gcin.install)
options=('!makeflags')

build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make -C im-client
make || return 1
make prefix=$startdir/pkg/usr \
datadir=$startdir/pkg/usr/share \
bindir=$startdir/pkg/usr/bin \
libdir=$startdir/pkg/usr/lib \
includedir=$startdir/pkg/usr/include \
man1dir=$startdir/pkg/usr/man/man1 \
install
}
md5sums=('1b3bc05ca9ae56eae2343b15af52d0b8'
'3c58b3d1258d1bec593c5312aeb81311')


如果你還沒有找到喜好的輸入法,不妨看看 Tetralet 的 gcin 介紹 :) 然后到這裡看看各 Unix-like 中文輸入法的比較表。

星期六, 1月 12, 2008

賺回來的!!

匆匆忙忙地把 assignment 完成了,其實並不太困難,懶而已 :( 這才有時間在這裡敲幾個字。

話說今晚約了同學吃飯,本來也知道是因為另一個同學生日,而我的也剛剛過期才沾上了光。結果嘛那個同學因事沒有到來,而我也成了唯一的 "主角"。

這也沒什么,意外的是一趟洗手間回來后,看到了檯面的生日蛋糕,真的十份驚喜,也因為害羞而不知所措。這是今年第三次朋友為我唱生日歌了,每次都很有意思,覺得備受關懷、幸福,賺回來的!! 所以許下的願望就是希望大家也同樣幸福。

星期日, 1月 06, 2008

複製 Arch Linux 到 mdadm/lvm2 系統

剛剛把 Arch Linux 轉了做主要的桌面,感覺很輕快,就是閒著時有點懷念以前 portage/emerge 時屏幕上飛閃的編譯訊息。試用 Arch Linux 差不多一個月了,那是裝在獨立的 40G 硬碟上的,感覺很不錯,便決定把它覆制到主要的 mdadm/lvm2 系統裡去。

本來對 Linux 來說複制系統也就是 cp -a 而己,先前也這樣複制了 2-3 次 Gentoo 吧。可這次 Arch 真的花了我不少時間… 覺得有必要記一下!

先來個介紹,來源是 40G 的硬碟,分區很簡單:
/dev/sde1 /boot
/dev/sde2 swap
/dev/sde3 /

目標的 mdadm/lvm2 系統:
/dev/md0 /boot (/dev/sda1 & /dev/sdb1, ext2)
/dev/md1 / (/dev/sda2 & /dev/sdb2, ext3)
/dev/md2 lvm2 (/dev/sda4 & /dev/sdb4 & /dev/sdd4)

/dev/mapper/vg0-home /home
/dev/mapper/vg0-opt /opt
/dev/mapper/vg0-tmp /tmp
/dev/mapper/vg0-usr /usr
/dev/mapper/vg0-var /var

1. 首先進入 offline 模式
複制 Linux 最好還是在 offline 模式下,這樣便不用特別處理 /dev, /proc, /sys 等掛載點。我使用的是 DFS 的 LiveCD,其實什么版本都沒關係,只要是支援 mdadm/lvm2 的。由於 DFS 未有跟 Arch Linux 一樣使用新的 libata,ide 裝置是 /dev/hda... 這樣表示的,既然 libata 是個趨勢,為了將來覆閱時省工夫,下面我 "人工" 將這些裝置轉化成了 /dev/sda... 跟Arch Linux 一致。


2. 準備新的 Arch 目錄架構
進入 LiveCD 環境后,以 newarch 為新系統的掛載點並建立所需的目錄架構:

# mkdir -p /mnt/newarch
# mount /dev/md1 /mnt/newarch

# mkdir -p /mnt/newarch/boot
# mkdir -p /mnt/newarch/home
# mkdir -p /mnt/newarch/opt
# mkdir -p /mnt/newarch/tmp
# mkdir -p /mnt/newarch/usr
# mkdir -p /mnt/newarch/var



3. 然后掛載上相應的分區 (省略 mdadm/lvm2 的建立過程):
# mount /dev/md0 /mnt/newarch/boot
# mount /dev/mapper/vg0-home /mnt/newarch/home
# mount /dev/mapper/vg0-opt /mnt/newarch/opt
# mount /dev/mapper/vg0-tmp /mnt/newarch/tmp
# mount /dev/mapper/vg0-usr /mnt/newarch/usr
# mount /dev/mapper/vg0-var /mnt/newarch/var



4. 掛載原有 40G 硬碟裡的 Arch:
# mkdir -p /mnt/oldarch
# mount /dev/sde3 /mnt/oldarch
# mount /dev/sde1 /mnt/oldarch/boot



5. 開始複制
# cp -av /mnt/oldarch /mnt/newarch


6. 設定檔的配置
一陣不長不短的等待后,複制完成,接著是按官方 wiki 的指示做好 mdadm/lvm2 相應的設定。留意這裡講的是相對於 newarch 目標系統的路徑,如 /etc/rc.conf 在 LiveCD 下實為 /mnt/newarch/etc/rc.conf。

/etc/rc.conf
USELVM="yes"

/etc/mkinitcpio.conf
MODULES="ata_generic ata_piix raid1 raid456 reiserfs"
HOOKS="base udev autodetect pata scsi sata raid keymap lvm2 filesystems"
md=0,/dev/sda1,/dev/sdb1
md=1,/dev/sda2,/dev/sdb2
md=2,/dev/sda4,/dev/sdb4,/dev/sdd4


/boot/grub/menu.lst
default 0
timeout 5
fallback 1

title Arch Linux
root (hd0,0)
kernel /vmlinuz26 root=/dev/md1 ro md=1,/dev/sdc3,/dev/sdd3
initrd /kernel26.img


/etc/fstab

#
# /etc/fstab: static file system information
#

none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0

/dev/cdrom /mnt/cdrom iso9660 ro,user,noauto,unhide 0 0
/dev/dvd /mnt/dvd udf ro,user,noauto,unhide 0 0

/dev/md0 /boot ext2 noatime 1 2
/dev/md1 / reiserfs noatime 0 1
/dev/sdb2 none swap sw,pri=1 0 0
/dev/sdd2 none swap sw,pri=1 0 0
/dev/sda2 none swap sw,pri=1 0 0
/dev/vg0/home /home reiserfs noatime 0 1
/dev/vg0/opt /opt reiserfs noatime 0 1
/dev/vg0/tmp /tmp reiserfs noatime 0 1
/dev/vg0/usr /usr reiserfs noatime 0 1
/dev/vg0/var /var reiserfs noatime 0 1



7. 進入 chroot 環境下
以下的指令需在 chroot 環境下執行,所以得先 chroot。

# mount -o bind /dev /mnt/newarch/dev
# mount -t proc none /mnt/newarch/proc


為保證執行 grub-install 時不出錯還要多做以下一步:
# grep -v rootfs /proc/mounts > /mnt/newarch/etc/mtab
# chroot /mnt/newarch /bin/bash



8. 更新 initramfs 的映像檔
# mkinitcpio -p kernel26


9. 修改 /etc/mdadm.conf
DEVICE /dev/sd[acd]1
DEVICE /dev/sd[acd]3
DEVICE /dev/sd[acd]4
ARRAY /dev/md1 level=raid1 num-devices=2 spares=1 UUID=1192e065:a8038ab4:6386aa5a:b25fe52e
ARRAY /dev/md2 level=raid5 num-devices=3 UUID=3d67777f:f4ab5ccd:6310127f:94f272a1
ARRAY /dev/md0 level=raid1 num-devices=2 spares=1 UUID=6e745075:51dee752:b420a73d:56580032


DEVICE 設定是告訴 mdadm raid 分區的位置,而后者是 raid 的組合,經由以下指令取得:
# mdadm -D --scan >>/etc/mdadm.conf


10. 建立必要的 device nodes
也就是 /dev/console, /dev/null, /dev/zero。這就是先前多翻嘗試仍不能進入 Arch 的關鍵,Gentoo 上沒有的東西~~
# /sbin/migrate-udev


11. 把 grub 安裝 MBR
# grub-install --no-floppy /dev/sda
# grub-install --no-floppy /dev/sdb
# grub-install --no-floppy /dev/sdd



12. 任務完成!!
至些大功告成,可以離開 chroot 環境並重新動電腦了。
# exit
# umount /mnt/newarch/boot
# umount /mnt/newarch/home
# umount /mnt/newarch/opt
# umount /mnt/newarch/tmp
# umount /mnt/newarch/usr
# umount /mnt/newarch/var
# umount /mnt/newarch/dev
# umount /mnt/newarch/proc
# umount /mnt/newarch
# reboot


13. Arch wiki 的一些參考資料
Installing_Arch_from_a_LiveCD
Installing_with_Software_RAID_or_LVM

星期六, 1月 05, 2008

今年的生日

又到生日,今個生日的特別是 "收到" 兩首生日歌~

生日我從不求奢華、花巧的禮物,就一份心意就足夠讓人感動。當聽到 "我唱首生日歌你聽吧" 時思考機能停頓了片刻,沒想過,唱歌對我這樣五音不全的人來說太難想像了。

結果還是少不了被狠狠地重申了年紀,說什么XX有多老大不小了云云…

星期二, 1月 01, 2008

2008的第一天

2008的第一天,午後的小室,窜進了幾縷陽光,照到臉上,讓人感到絲絲的曖意。這樣的冬日,這樣的陽光,真是難得。

站了起來靠倚窗邊,樓下稀落人流如昔,夾雜著若干喧嘩聲。沿著陽光照射處,石板橙邊、木棚上,鮮豔的 "炮掌花" 正盛開,已經是這個季節了嗎? 不自覺閉起了眼睛,鼻子一股酸溜溜,雙腳抖了一抖,是太冷了吧! 反正縮在家裡沒事,正好去曬曬太陽。




白天的摩士公園跟今天很 "配",因為小朋友們這裡很陽光。對摩士並不陌生,不單住在這裡多年,最近也常在這裡練馬拉松。找了個無遮無擋,光線充足位置,拿出那本新書讀了起來。

由於對陽光敏感,剛開始時看得有點辛苦。讀著,累了,伏在膝睡了一會,也不知是多久,醒了又繼續讀。很安靜,很暖和,很隨意,我以為這種感覺叫幸福~ 直到吹來一陣冷風,才意識到陽光漸弱,看看時間,己經是下午4點~

一直知道自己不是個強人,需要很多的支持,很多的鼓勵;一直在勉強自己,無非是自知老大不小了,求一個 better living~ 值得嗎? 不知道,起碼今天滿足了~