2009/04/27

辨認 GNU/Linux 的發行版本 (distro)

網路上有多少 GNU/Linux 的發行版本 (distro)?看看這張令人眼花撩亂的 族譜 吧,我相信沒有幾個人有興致去數清楚的。但弄清楚你正在使用的 GNU/Linux 是哪一個版本可能是相當重要的課題 (透過 ssh 去登入主機的使用者,不見得知道該主機作業系統的詳細資料)。

由於 GNU/Linux 的發行版本很多,多數又有繼承演化的關係,要辨認出每個版本不是一件容易的事。以下是一些簡單的辨別方法,越前面的越精確,但不見得都適用,若該方法行不通,請退而求其次,試試下一個方法。

執行 lsb_release -a


這是最精確的方法,以下是一些輸出範例:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.10
Release: 8.10
Codename: intrepid
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 4.0 (etch)
Release: 4.0
Codename: etch
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.2 (Final)
Release: 5.2
Codename: Final
執行 ls /etc/*release 再執行 cat /etc/*release

有許多發行版本的資訊都寫在 /etc/*release 的檔案之中,例如:
  • /etc/lsb-release (Ubuntu)
  • /etc/SuSE-release (SuSE)
  • /etc/redhat-release (RedHat, CentOS)
  • /etc/mandrake-release (Mandrake)
  • /etc/distro-release (AsteriskNOW)
執行 ls /etc/*version 再執行 cat /etc/*version

有另一些發行版本的資訊是寫在 /etc/*version 的檔案之中,例如:
  • /etc/debian_version (Debian, Ubuntu)
  • /etc/slackware-version (Slackware)
執行 cat /etc/issue

嚴格說來,這不是正確的方法,因為此檔案是用來儲存一些要秀給使用者登入時看的訊息。但很多 distro 都會在這個檔案寫上自己的發行名稱,所以也是不錯的參考資料。例如:
  • Ubuntu 8.10 \n \l
  • Ubuntu 8.04.2 \n \l
  • Debian GNU/Linux 4.0 \n \l
  • CentOS release 5.2 (Final) Kernel \r on an \m
執行 cat /proc/version

此方法的訊息更不明確,但也不失為一個判斷的依據。例如:
  • Ubuntu 8.10 => Linux version 2.6.27-11-generic (buildd@yellow) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Wed Apr 1 20:53:41 UTC 2009
  • Ubuntu 8.04.2 => Linux version 2.6.24-23-server (buildd@vernadsky) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Mon Jan 26 00:55:21 UTC 2009
  • Debian 4.0 => Linux version 2.6.22-3-vserver-amd64 (Debian 2.6.22-6) (maks@debian.org) (gcc version 4.1.3 20071019 (prerelease) (Debian 4.1.2-17)) #1 SMP Sun Nov 4 18:41:00 UTC 2007
  • CentOS 5.2 => Linux version 2.6.18-92.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Tue Jun 10 18:49:47 EDT 2008

2009/04/17

我的 Firefox 擴充套件點點名

將個人喜好的 Firefox 擴充套件記錄如下,也推薦給大家:
  • Favicon Picker 3 讓你自訂 bookmark 的圖示。
  • Firebug 超強網頁除錯工具,內行人應該都知道。
  • User Agent Switcher 改變 Firefox 送出的 User-Agent 字串,內行人應該都知道。
  • Flashblock 擋下不必要的 flash 花招,並在該處留白,想看時再自己點選。
  • Google Bookarks Button Reloaded 將自己的 bookmark 放在 Google 上。
  • Hide Menubar 將很少用到的 Firefox 選單列隱藏起來,需要時按 ALT 即可顯現出來。
  • Mozilla Archive FormatUnMHT 收到惱人的 .mht 檔案嗎?用這個可以開啟喔! (進一步介紹)。
  • PDFescape 讓你線上「編輯」 PDF 文件 (進一步介紹)。
  • Tab Mix Plus 強化 Firefox 的分頁瀏覽功能。
  • Wired-Marker 閱讀網頁的最佳夥伴 (進一步介紹)。

2009/04/10

我的 Ubuntu 軟體點點名

用 Ubuntu 越久,就越覺得方便。需要甚麼功能的軟體,絕大部分用 Synaptic 就可以下載安裝。將好用的軟體記錄如下,也推薦給大家 (不含 Ubuntu 固定會安裝的)。
  • KchmViewer 電子書 .chm 檔案的檢視器。套件:kchmviewer (曾試過 GnoCHM 和 ChmSee,這兩者的搜尋功能都不好用)
  • hexedit 非文字檔的編輯工具。套件:hexedit
  • unrar 解壓縮程式,可與 file-roller 整合。網路上有那麼多免費、公開的壓縮軟體,搞不懂為什麼那麼多人喜歡將檔案壓成 .rar。套件:unrar
  • minicom 終端機模擬軟體 (terminal emulator),透過 RS232 連到某些設備的 console。套件:minicom (進一步介紹)
  • Wire Shark 封包抓取和分析軟體。套件:wireshark (進一步介紹)
  • Virtual Box 虛擬機器。套件:virtualbox-ose,但我推薦 官方網站 的版本,不管用哪一套都需安裝 scim-bridge-client-qt (進一步介紹)
  • Sox 聲音檔轉換工具 (命令列模式)。套件:sox、libsox-fmt-all
  • VLC media player 影音播放軟體。套件:vlc
  • Wave Surfer 聲音檔處理、分析工具,可檢視聲音波形、區間播放等。套件:wavesurfer

2009/03/10

Subversion, Grep, Diff

我很習慣用 grep 來找 source code 當中的字串;也很習慣用 diff 來比較兩個 source tree 的差異。如:
grep -r STRING *
diff -ur DIR1 DIR2
這兩個指令很好用。但是遇到 Subversion 的 working copy 時,就會受到 .svn 目錄的干擾。所幸這兩個指令都提供排除非必要目錄的方法:
grep --exclude-dir=.svn -r STRING *
diff -x .svn -ur DIR1 DIR2

老實說,常會忘記這些參數,也常弄混。因此建議在 .bashrc 當中加上以下設定,這樣以後不管是不是 working copy 都可以安心使用 grep -r 和 diff -r 了:
alias grep='grep --exclude-dir=.svn'
alias diff='diff -x .svn'

2009/02/02

在 64-bit Ubuntu 上安裝 32-bit 的 package

使用 64-bit Ubuntu 時,經常會遇到一個問題:某些外部 package 只提供 32-bit 的版本 (i386),而沒有 64-bit 的版本 (amd64),例如:Adobe Reader 和 Skype 等。

解決方法很簡單,加上 --force-architecture 參數即可:
  • sudo dpkg -i --force-architecture AdobeReader_cht-8.1.3-1.i386.deb
  • sudo dpkg -i --force-architecture skype-debian_2.0.0.72-1_i386.deb

2009/01/15

好康推薦:PrintWhatYouLike.com

網路世界的資源非常豐富,但不一定長久。不管是書籤還是最愛,留下 URL 並不能保證將來你還可以再找到相同的資料。所以,當發現有些值得保存的資料時,我會想辦法留下副本。

另存新檔?詳實用 HTML 紀錄原始的資料,但垃圾多又不方便管理。所以我習慣輸出成 PDF 文件。不過網頁上通常充斥廣告等不相干的內容,令人想去之而後快。還好,Firefox 有許多外掛程式提供這類編輯網頁的功能,如:Nuke Anything EnhancedPage Hacker 等。

這次要推薦的不是以上那些 extension,而是一個有同樣功能的服務網站:
透過這個網站,編修網頁更加容易上手。當然,缺點就是不是所有的網頁都可以利用這項服務,例如公司內部網站。如果,printwhatyoulike 能夠改寫成 extension,那就是太完美了。

Firefox 的 PDFescape Extension

唉... 可能寫筆記不夠用心,竟然跟上時代潮流放起無薪假來了。趁著悠閒,上網看看 Firefox 有什麼新鮮的外掛程式可用,發現 PDFescape 是蠻有意思的服務。

裝上這個 extension 之後,你可以將網路上的 PDF 文件送到 http://www.pdfescape.com 作線上編輯,如:用空白蓋掉原有的內容、加上新的文字和簡易的方圓等圖形,甚至可以加上文字輸入方塊和 checkbox 等。等改好之後,就可以下載這份修改過的文件。

我想到一個使用場合。有時我們必須下載 PDF 格式的表格,印出、填寫然後拿去申請任何東東。有了這服務,寫字難看的我就可以先加工過再印出來,頂多留下簽名欄位就可以了。

我承認用到的場合不多,所以我不會安裝這個 extension。因此隨手記下,以備將來之需...