2008年8月7日 星期四

環境參數的問題

最近剛好解決了 Firefox 3 在 openSUSE 11 底下無法正常關閉的問題,也解決了 Beyond Compare 3 Linux 版 無法執行的問題,而這兩件事剛好都是系統環境參數所導致的。

自從將 openSUSE 升級到 11 之後,Firefox 3 就無法正常關閉需要將 process 直接 kill 掉,不然就是更新套件後,重新啟動時突然掛掉,忍了這麼久,就上網找找看有沒有人也遇到相同的問題,結果還真的有,解法也很簡單,就是調整系統環境參數 GTK_IM_MODULE=xim,網路上建議修改的參數的位置有兩個,一個是修改 firefox 的啟動 script,另一個是修改 ~/.profile,而我是採用第一個作法。

在 openSUSE 11 底下,firefox 的啟動 script 是在 /usr/bin/firefox,修改的片段如下:
# needed for SUN Java under Xorg >= 7.2
export LIBXCB_ALLOW_SLOPPY_LOCK=1

export GTK_IM_MODULE=xim


Beyond Compare 2 是一套需要收費,但蠻不錯的檔案比對工具,尤其是用在 "手動" 同步目錄時更是好用,為何要說 "手動",因為我同步的對象是程式,程式的同步往往需要先檢視要同步的對象內容,避免將別人寫好的程式功能給覆蓋,所以需要手動同步。

最近突然想到去看看 Beyond Compare 2 有沒有更新,去官方網站一看,傻眼了,整個網站風格全改,我還以為我連錯網站了呢!好了,言歸正傳,去檢查一下有沒有更新,發現他有更新了,而且還是全新的版本 Beyond Compare 3,除了 Windows 版外,還出了 Linux 版,看到 Linux 版我就猜測他的 Linux 版是透過 wine 讓 Windows 版在 Linux 底下執行,下載後解開一看,居然是原生程式,不需要透過 wine,這就讓我大大的興奮,Linux 底下一直沒有我用的順手的檔案比對工具,勉強用 kdiff3,但是他對中文的支援實在不好,現在他將可取代 kdiff3 的位置了。

不過,興奮歸興奮,安裝後開始執行才發現什麼畫面都沒有,仔細一看「程式區段發生錯誤」怎麼會這樣,嘗試安裝它所須的 lib,也不行 (不過是不同的錯誤訊息,找不到所需的 function),必須用它附帶的 lib 才行,好吧!既然這樣,就去官方網站回報一下這個問題,既然要回報,當然不能用中文回報,我就將我的 LANG 從 zh_TW.UTF-8 改成了 en_US.UTF-8,想取得英文的錯誤訊息來回報,只是沒想到錯誤訊息沒取得,卻讓 Beyond Compare 3 正常啟動了,天啊!又是環境參數搞的鬼。在 console 底下執行
env LANG=en_US.UTF-8 /usr/local/bin/bcompare

或是修改 /usr/local/bin/bcompare 加入底下的指令。
export LANG=en_US.UTF-8


編輯:新版 v3.0.1.8602 已經修正這個問題了,不需要再修改 LANG 的設定了

沒有留言: