小兔的筆記本

Just another WordPress.com weblog

在Ubuntu 6.06 Dapper上架設Usenet News Server

Posted by Tsukino Usagi 於 七月 30, 2006

本文說明如何在 Ubuntu 6.06 Dapper 的環境下架設一個簡易的 Usenet News Server, 使用的是 cnews .

  1. 以root的身份安裝cnews和nntp:
    $ apt-get install cnews nntp
    安裝的過程會問主機名稱, 按Enter即可.
  2. Ubuntu的package似乎漏裝了一個symblic link, 要手動補上去, 以root的身份下這些指令:
    $ cd /var/lib/news
    $ ln -s /etc/news/whoami whoami
  3. 開新的newsgroup, 用su news指令以news這個帳號去執行:
    $ su news
    $ cd /usr/lib/news
    $ ./cnewsdo addgroup group.usagi.test y
  4. 在本地端發表文章作測試, 以news身份執行:
    $ export EDITOR=vim
    $ ./postnews

    執行postnews之後會問文章要發表在哪個newsgroup, 輸入步驟3開設的名稱, 之後它還會問文章標題, 隨便亂打即可, 之後就開啟編輯器讓你寫文章內容, 寫完之後存檔即發表完成. 另外, 若您有慣用的文字編輯器, 也可以把EDITOR環境變數換成其他的指令, 不一定要用vim.
  5. cd到/var/spool/news/in.coming底下ls看看, 應該會有檔名像 0.11542507380.t 的檔案.
  6. 等crond跑過cnews之後(預設每15分鐘執行一次), 文章檔案會跑到/var/spool/news/group/usagi/test底下, 檔名會被改成數字依序編號.
  7. 設定nntp服務開放的主機, 以root的身份編輯/var/lib/news/nntp_access, 檔案內容像是這樣:
    default xfer no
    每列第一欄是主機的IP位址或DNS, 像*.tw *.edu.tw *.net 192.168.* 192.168.1.1 192.168.1.* 這種寫法都可以, 但像192.168.0.0/255.255.255.0 192.168.0.0/24這種寫法卻不行. 第二欄是設定read/xfer/both/no, read是可以讓人下載文章, xfer是可以讓其他的news server取信或餵信, both是兩者皆可, no是兩者皆不可. 第三欄是設定post/no, post是可以讓人發表文章, no則是禁止. 這個檔案裡, default這一行一定要在最前面, 利用這個檔案甚至可以針對特定newsgroups設定讀寫權限, 可以參考一下設定檔裡的範例.
  8. 改完之後, 可以使用其他News Client(例如Thunderbird或Outlook Express)連線測試, 看看下載newsgroups清單, 訂閱, 接收文章標題內容, 發表文章之類的功能是否正常(發表文章必須透過SMTP伺服器, 這不是nntp能力所及的範圍, 可以找現有的SMTP伺服器作測試, 或者在主機上另外架設postfix或其他類似的服務).

Posted in 網路, Linux | 1 Comment »

Yahoo! 即時通的完整安裝檔

Posted by Tsukino Usagi 於 七月 15, 2006

中文版: http://us.dl1.yimg.com/download.yahoo.com/dl/msgr8/tw/ymsgr8tw.exe
英文版: http://us.dl1.yimg.com/download.yahoo.com/dl/msgr8/us/ymsgr8us.exe

新版的即時通的安裝程式, 都是一個不到400KB的安裝檔, 然後在安裝的過程當中下載其他檔案回來安裝, 對於網路慢或連線不穩定的環境相當不便. 上面的兩個下載連結是完整的安裝檔, 安裝的過程當中不會另外再下載檔案, 也不會安裝反間諜軟體和附屬應用程式之類的東西.

Posted in IM, Windows, 即時通訊 | Leave a Comment »

xrandr 介紹

Posted by Tsukino Usagi 於 七月 11, 2006

xrandr指令可以用來改變X環境的桌面大小和螢幕頻率.

把桌面解析度調成1024×768:

$ xrandr -s 1024x768

把螢幕頻率調成75Hz

$ xrandr -r 75

列出目前環境支援的解析度和頻率

$ xrandr -q

它列出的訊息, 每行的第一個數字可以用來指定給 -s 參數, 假設有一行這麼寫

20 640 x 480 ( 347mm x 260mm ) 75

那麼下

$ xrandr -s 20

時, 就會把螢幕調成 640×480 大小, 頻率75Hz

如果有數個X環境同時運作的話, 可以用 -d 參數去調整別的X環境, -d 後面加的是像 :0 :1 :2 這樣, 例如:

$ xrandr -s 800x600 -d :0

Posted in Linux | Leave a Comment »

在Ubuntu裡使用vncserver

Posted by Tsukino Usagi 於 七月 11, 2006

本文介紹如何在Ubuntu裡架設vnc, 使用的是tightvncserver, 本文的方法是用vnc另外啟動一個X環境, 不是在原本本機上的X環境加上vnc的功能.

以root的身份安裝:

$ apt-get install tightvncserver

接下來以一般的使用者的身份啟動:

$ vncserver

第一次啟動時會要求設定密碼, 按照螢幕上的指示輸入即可, 接著會出現「New ‘X’ desktop is 主機名稱:1」之類的訊息, 後面的1就是desktop的號碼.

之後就可以用vncviewer或其他vnc client連進去看, client這邊要指定連接埠或desktop的號碼, 若desktop是1的話, 連接埠就是5901, 2就是5902, 餘類推.

關閉vncserver的指令是:

$ vncserver -kill :1

1就是desktop的號碼.

可以修改~/.vnc/xstartup這個檔, 讓vncserver可以啟動GNOME或KDE

$ vim ~/.vnc/xstartup

把#!/bin/sh以外的文字都註解掉, 若想啟動GNOME, 加上

exec gnome-session

即可, KDE則是

exec startkde

若您發現用vnc啟動的GNOME或KDE畫面文字變得很小, 可以先去本機的環境, 下

$ xset q

指令, 然後用root的身份打開/etc/vnc.conf編輯, 參考xset q指令輸出的fontPath相關設定修改/etc/vnc.conf裡的fontPath相關設定, 以下是我機器上的設定(僅供參考):

$fontPath .= "/usr/share/X11/fonts/misc,";
$fontPath .= "/usr/share/X11/fonts/100dpi/:unscaled,";
$fontPath .= "/usr/share/X11/fonts/75dpi/:unscaled,";
$fontPath .= "/usr/share/X11/fonts/Type1,";
$fontPath .= "/usr/share/X11/fonts/100dpi,";
$fontPath .= "/usr/share/X11/fonts/75dpi,";
$fontPath .= "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType";

並且往後啟動vncserver時, 都要加上 -dpi 100 的參數, 如下:

$ vncserver -dpi 100

Posted in Linux | 6 Comments »

在Kubuntu裡使用英文介面的中文環境

Posted by Tsukino Usagi 於 七月 11, 2006

想在Kubuntu裡使用英文的介面, 但又能正常顯示和輸入中文字, 可以參考下面的方法來修改Xsessions相關的設定, 這個方法只適用於使用kdm當X display manager時. gdm的使用者(ubuntu預設是gdm)請參考這裡.

以root的身份, 去/usr/share/xsessions/底下建立一個新的xsession設定檔:

$ cd /usr/share/xsessions/
$ cp kde.desktop kde_en.desktop
$ vim kde_en.desktop

編輯kde_en.desktop, 修改Exec和Name這兩行, 改完應該會是這樣:

[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=/usr/bin/kde_english.sh
TryExec=/usr/bin/startkde
Name=KDE_English
.........

然後把這個檔chmod 644

$ chmod 644 kde_en.desktop

去/usr/bin底下新建kde_english.sh

$ cd /usr/bin
$ vim kde_english.sh

檔案內容如下:

#!/bin/bash
LC_CTYPE="zh_TW.UTF-8"
LC_ALL="zh_TW.UTF-8"
LC_MESSAGES="en_US.utf8"
LANG=en_US.UTF-8
LANGUAGE=en_US
startkde

然後把這個檔案chmod 755

$ chmod 755 kde_english.sh

修改完之後登出, 回到KDM登入畫面時, 按ALT-E或從選單裡重新啟動X server, 接下來應該就可以從ALT-T或者Session Type選單裡看到KDE_English這個session可以選了.

這個方法一樣可以用在GNOME上, 參考上面的方法編/usr/share/xsessions/gnome_en.desktop和/usr/bin/gnome_english.sh檔即可.

/usr/share/xsessions/gnome_en.desktop

[Desktop Entry]
Encoding=UTF-8
Name=GNOME_English
Name[az]=GNOME
Name[be]=GNOME
Name[ca]=GNOME
..............
Exec=/usr/bin/gnome_english.sh

/usr/bin/gnome_english.sh

#!/bin/bash
LC_CTYPE="zh_TW.UTF-8"
LC_ALL="zh_TW.UTF-8"
LC_MESSAGES="en_US.utf8"
LANG=en_US.UTF-8
LANGUAGE=en_US
gnome-session

參考資料: http://www.ubuntuforums.org/showthread.php?t=19254

Posted in 語系, Linux | Leave a Comment »

convmv 介紹

Posted by Tsukino Usagi 於 六月 20, 2006

在 Linux 下要轉換檔案內容的文字編碼可以用 iconv 指令, 但如果要轉換「檔名」的編碼, 有 convmv 這支程式可以用.

下載:

$ wget http://j3e.de/linux/convmv/convmv-1.09.tar.gz

安裝:

$ tar zxvf convmv-1.09.tar.gz
$ cd convmv-1.09
$ sudo make install

convmv 這個檔其實是一支perl script, 所以 make install 即可, 若沒有主機的 root 權限也可以直接執行.

轉換檔名編碼, 以 UTF-8 轉換成 BIG5 為例:

$ convmv -f UTF-8 -t BIG5 blahblah.txt

列出可以用的編碼:

$ convmv --list

轉換檔名中的 %xx 這種 16 進位的編碼:

$ convmv --unescape blah%20blah.txt

把檔名中的字母全轉換成小寫:

$ convmv --lower BLAH.txt

要注意的地方是它預設只會把轉換的結果秀出來, 要再加上 --notest 參數才會真正去改檔名.

另外幾個用到的參數是 -r 會連子目錄的檔案一起轉換, -i 是互動模式, 一個一個檔案詢問是否轉換等等, 可以用 --help 參數看說明.

Posted in 語系, Linux, 檔案管理 | 2 Comments »

Ubuntu 6.06 Dapper + VMware Tools

Posted by Tsukino Usagi 於 六月 13, 2006

在 VMware 裡安裝好一個作業系統之後, 若想提升虛擬環境裡的效能, 通常需要安裝 VMware Tools, 安裝 VMware Tools 還有以下好處:

切換滑鼠指標不用按 Ctrl-Alt, 直接將指標移入或移出 VMware 視窗.

  • Shrink 功能, 在虛擬機器裡刪除檔案之後, .vmdk 檔不會變小, 可以用 Shrink 功能釋放掉這些空間.
  • 顯示和網路效能的提升.

VMware 官方還沒支援 Ubuntu 6.06 版, 要完整使用 VMware Tools 的功能必須借助第三方提供的檔案, 本文將解說如何在 Ubuntu 6.06 裡安裝 VMware Tools.

  1. 在 VMware 裡安裝好 Ubuntu 6.06 之後, 先將網路設定好, 讓虛擬的機器能連上 Internet.
  2. 設定 root 的密碼, 先下
    $ sudo -s -H
    指令, 輸入目前登入的帳號的密碼, 之後下
    $ passwd
    來變更 root 的密碼, 往後就可以直接用 su 指令變身成 root.
  3. 更新 apt 資料庫, 以 root 的身份下以下這些指令
    $ cd /etc/apt
    $ wget http://apt.ubuntu.org.tw/sources.list.dapper
    $ mv sources.list sources.list.original
    $ mv sources.list.dapper sources.list
    $ apt-get update
  4. 安裝 VMware Tools 的過程會編譯 kernel module, 會需要一些 packages, 下這些指令將它們安裝上去:
    $ apt-get install cpp gcc binutils linux-headers-`uname -r` make
  5. 將 VMware Tools 的 tarball 拷貝到虛擬機器裡, 將處擬機器的光碟機掛載上 VMware 的 .iso 檔, 可以直接在 VMware 的主視窗功能表裡選擇 VM→Install VMware Tools.

  6. $ cd /media/cdrom0
    $ ls

    看看有沒有 VMware Tools 的 tarball, 沒有的話試試手動 mount 看看.
  7. 下這些指令:
    $ cd /tmp
    $ tar zxvf /media/cdrom0/VMwareTools-5.5.1-19175.tar.gz
  8. 下載非官方的更新檔並解壓縮:
    $ wget http://platan.vc.cvut.cz/ftp/pub/vmware/vmware-tools-any-update1.tar.gz
    $ tar zxvf vmware-tools-any-update1.tar.gz
  9. 下載 patch.txt 並放到 /tmp 下.
  10. 安裝 VMware Tools:
    $ cd /tmp/vmware-tools-distrib/
    $ ./vmware-install.pl

    當安裝程式問你是否要執行 vmware-config-tools.pl 時, 回答 no.
  11. 安裝非官方的更新檔:
    $ cd /tmp/vmware-tools-any-update1/
    $ ./runme.pl

    當安裝程式問你是否要執行 vmware-config-tools.pl 時, 回答 no.
  12. 確認步驟 9 的 patch.txt 存在, 下這些指令:
    $ cd /usr/bin
    $ patch vmware-config-tools.pl /tmp/patch.txt
  13. 執行此指令設定 VMware Tools:
    $ ./vmware-config-tools.pl
  14. 安裝程式會詢問 X 環境的預設解析度, 留意一下, 若出現「No X install found」或其他訊息, 代表設定不成功.
  15. 下這些指令重新啟動網路介面:
    $ /etc/init.d/networking stop
    $ rmmod pcnet32
    $ rmmod vmxnet
    $ depmod -a
    $ modprobe vmxnet
    $ /etc/init.d/networking start
  16. 編輯 /etc/X11/xorg.conf 大約第 53 行的地方, 把 mouse 改成 vmmouse.
  17. 重新啟動 X 環境, 順利的話滑鼠指標可以在 VMware 和其他視窗之間來回移動 不需要按 Ctrl-Alt 才能將滑鼠指標從 VMware 裡移出來.
  18. 將整個系統更新:
    $ apt-get upgrade
  19. 清除垃圾檔案:
    $ apt-get clean
    $ rm -rf /tmp/*
  20. 作 Shrink 和保存 snapshot 的的動作, 在圖形介面下以 root 的身份執行 vmware-toolbox, 在 Shrink 頁籤裡選擇分割區並按 Shrink.
  21. 之後將虛擬機器關掉並建立 snapshot, 這樣就是一個可以作任何測試的 Linux 系統了.

參考資料:

Posted in Linux | 6 Comments »

antiword 介紹

Posted by Tsukino Usagi 於 五月 16, 2006

antiword 能夠將微軟的 Word .doc 格式轉換成純文字檔, .pdf 檔或 postscript 格式的檔案, Openwebmail 裡的「網路硬碟」功能可以預覽 .doc 格式的檔案, 其實就是呼叫這個程式去轉換的.

一般情況下, 下:

$ antiword blahblah.doc

像這樣的指令就可以直接秀出該 .doc 檔裡的字, 要是遇到中文字變問號的情形, 可以先:

$ export LC_ALL=
$ export LC_CTYPE=
$ export LANG=

把這三個環境變數清掉, 再用:

$ antiword -m UTF-8.txt blahblah.doc

這種方式去讀出 .doc 檔裡的文字, 會以 UTF-8 格式輸出, 若想要以 Big5 編碼輸出, 可搭配 iconv -c 指令, 方式如下:

$ antiword -m UTF-8.txt blahblah.doc | iconv -c -f utf-8 -t big5 –

Posted in Linux | Leave a Comment »

htop介紹

Posted by Tsukino Usagi 於 五月 16, 2006

htop 它算是 top 的加強版, 比原始的 top 多了更直覺的互動式設定和操作方式, 和彩色字的支援. 程式本身有用到 ncurses 函式庫作開發.

Screenshot:

htop

Posted in 系統管理, Linux | 1 Comment »

去除文字檔內的 ANSI 控制碼

Posted by Tsukino Usagi 於 四月 5, 2006

BBS 文章裡頭通常會有一些 ANSI 控制碼, 用來在彩色終端機畫面下呈現顏色或閃爍反白之類的效果, 若文字檔裡有這些控制碼, 可以寫個正規表達式(regular expressions)把它去掉.

用 vim 打開一個有 ANSI 控制碼的文字檔, 下這個指令:

:%s/\e\[[0-9;]*m/g

再存檔即可.

或者是在 Linux 環境下用 sed 指令, 假設有個 test.eml 想去掉裡面的 ANSI 控制碼:

$ cat test.eml | sed -e ‘s/\x1b\[[0-9;]*m//g’ > test.txt

就會自動產生 test.txt 檔, 裡頭已經沒有任何控制碼.

這個方式並沒有辦法把移位碼移除掉, 如果想移除移位碼的話, 可以試試把正規表達式的部份改成這樣:

\x1b\[[0-9;]*[mABCDHJKsu].

另外, ANSI 的 escape 字元在正規表達式裡要用 \x1b 代表(ASCII碼16進位), 但是在 vim 裡要寫成 \e ,這也是要注意的地方.

參考資料:

Posted in 文字編輯器 | Leave a Comment »