I should replace my key long time ago, after there are security flaws has been identified in SHA-1. The US NIST also suggested to transit to stronger SHA-2 hash functions.

I followed the key replacement rules of Debian and Apache and created the new key. If you have validated my old key, Here is my transition statement for the new new 4096 bit RSA key –

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1,SHA512


I am transitioning GPG keys from an old 1024-bit DSA key to a new
4096-bit RSA key. The old key will continue to be valid for some
time, but I prefer all new correspondence to be encrypted in the
new key, and will be making all signatures going forward with the
new key.

This transition document is signed with both keys to validate the
transition.

If you have signed my old key, I would appreciate signatures on my new
key as well, provided that your signing policy permits that without
reauthenticating me.

The old key, which I am transitional away from, is:

pub   1024D/DC76FEB9 2004-09-18 Rex Tsai 
 Primary key fingerprint: 1700 7040 CBD7 5DB4 4956  959B 3A5E 166D DC76 FEB9

The new key, to which I am transitioning, is:

pub   4096R/3860D2A5 2011-05-20 Rex Tsai (蔡志展) 
 Primary key fingerprint: CDC8 966D A547 6B1F CEB8  6D49 86A6 03D4 3860 D2A5

To fetch the full new key from a public key server using GnuPG, run:

  gpg --keyserver keys.gnupg.net --recv-key 3860D2A5

If you have already validated my old key, you can then validate that the
new key is signed by my old key:

  gpg --check-sigs 3860D2A5

If you are satisfied that you've got the right key, and the UIDs match
what you expect, I'd appreciate it if you would sign my new key.

If you then want to sign my new key, a simple and safe way to do that is
by using caff (shipped in Debian as part of the "signing-party" package)
as follows:

  caff 3860D2A5

In the other way, you can sign the key and send it to me as following 
commands:

gpg --sign-key 3860D2A5
gpg --armor --export 3860D2A5 | mail -s 'OpenPGP Signatures' \
        [email protected]
gpg --keyserver pgp.mit.edu --send-key 3860D2A5

Please contact me via e-mail at  if you have
any questions about this document or this transition.

Thanks.

Regards
Rex Tsai, 2011-05-21
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk3WnNEACgkQOl4Wbdx2/rnujQCbBV+TSHWapsMrd5d06RKxkgT3
csUAnRpDr6obff4Fuj/P530f6pVT5WTXiQIcBAEBCgAGBQJN1pzRAAoJEIamA9Q4
YNKldvgP/2ej6EDhrGj/1dNkIdkWmKNXsj4OMWKcvDP6M+VnlkWtFaDQxYBb73Ea
vBhAgDZL7MhUwVbn9zydVInFpA9vtdsBwd6Hr3+rp+iv076TennKYP+qo7YDX5Ga
7s73Tim8Tn6AwYdBhyhFPJPZ/fEUknKNOWILu7eUjeQ+C7ndPNEe6VRvCJvJaHwa
aJ6b8kpeRG6UYQFGw/o2e0XGtEpek8dRiqk2sVnOVR/d0C6/u+2oQuGRVtX/uKd1
2E3HYPh/Y1RTqENYrCd39v8nA6NUzuw8kOpIx8MZ51iN4DB+YfusV8mtzhZIkVQP
y2BZ0jL2C2xFlCER7Cxlp8VpsKcz/tEixytciC0aOuoUoER7LQvfkQGs+pcTj8Fl
PQLmwgnqIM4PPQ4cSyhsFgmSkbFcDyxtStVLMEtJKKAJ0dOuqa13R0MKuRkg5WMP
u07EKBITk50QlqzXrJwM7I8FszIigbdWWQD2qNbXLpHcZNo5m5CshOVgTCy+t7E4
Z0gQ3DnZAsy+tclCjCeb6MdjRqF27C9LdWjNwHHcw71X2yqRXqEN8fb1JcXBSU5a
7AgiIMnDgw3BAm1QLQ/eEk8J7KuKvsFFK+hFpSs4mahYLUtExzSsEN7RbCQptSIc
4FfZUXS3bg+by4zF/2eSGI+FeMq7CIz4aX1JdfucBiFCNUCRhFPT
=kr5F
-----END PGP SIGNATURE-----

「利益揭露: 本文英文書籍連接使用 Amazon Associates Program.」

我相信絕大部分 Linux 開發者都會告訴你,Driver 的開發比 Linux Application 容易許多,即便寫驅動程式聽起來莫名偉大,其實也不過是一段 C/assembly 的組合程式碼。有別於桌面應用程式,Linux kernel API 較少因爲不同的新軟硬體規格,而進行大幅度 API 更動 (參數的簡化倒是十分常見),且由傑出的軟體開發者撰寫的核心架構,穩定性已經十分可靠。

相較與 userland 高度複雜的設定機制,Linux Kernel 暴露的界面十分簡單,在硬體穩定的前提之下,你也難得碰到 API 反應與預期不符合的處境。一般開發者對於核心驅動程式上手的時間,應該不會比開發桌面軟體來的更久。花費時間較多應該是研讀硬體手冊,以及不嚴謹的開發習慣造成臭蟲而所需的除錯時間。

對於深具經驗的開發者,在學習開發 Linux kernel driver 時,最快的方法莫過於直接解開 Kernel tarball, 切進欲開發的 subsystem 目錄,拿出 global, vim, LXR 直接把現成程式碼當作範例學習,很快就可以理解程式結構。不過,偶爾還是需要參考書來驗證對於架構得理解是否正確,另外接觸新的 subsystem 時先閱讀入門文章也可以減少無謂的撞牆期。

所幸,幾位 Linux kernel hacker 也是傑出的文件作者。在 Linux kernel sourc tree 中已有一些各子系統的架構、操作參考文件,涵蓋了基本的 coding style、設計哲學等。另外,像是 Robert Love, Greg Kroah-Hartman (PCI, USB maintainer) 等開發者也出版了完整的書籍,很值得參考。

不過市面上針對 Linux kernel 開發的書籍也不少,那一本是適合你的呢?這類的技術書籍,通常設定不同的讀者羣來設定內容,有的偏重知識,有的偏重操作實務。且出版版次也會影響所介紹的 API 差異,造成無法編譯其範例,但並非舊書,所談之理論就不正確。

以下分享不才對於市面上 2005 年之後出版的核心開發書籍的評論,希望對於想擴充團隊圖書館的朋友提供些參考。

Linux Kernel in a Nutshell 是 2006 年年底發行,作者是 GregKH,使用核心為 2.6.18,部分操作方式或指令已經略有更改。GregKH 基於讓更多新手參與開發行列,針對的讀者是從未編譯過 Linux kernel,想瞭解下載、設定、編譯需求等等細節,適合剛從其他平臺進入 Linux 核心開發的朋友,可以較快熟悉核心編譯的操作程序。書內主要介紹通用性知識,因此未提各 distro 間安裝 kernel 的細節 (如 initrd 建制方式)。

LKN 已採 CC BY-SA 2.5 授權。電子書可於 GregKH 的網頁下載

Understanding the Linux Kernel, Third Edition 這本由兩位博士 Daniel P. Bovet 與 Marco Cesati 所撰寫,從 2000 年底出版之後,到 2005 已經是第三版,介紹的核心是 2.6.11。有中譯版

此書結構以流水帳方式帶過各個子系統,但稍嫌膚淺的僅僅介紹表面的細節,未能給予概觀性的理論說明,也未能直指程式核心。篇幅常用於註記資料結構或函式用途,適合想尋著麵包屑理解 Linux kernel 運作的探險家使用。

Professional Linux Kernel Architecture 在2008 年出版,作者是 Wolfgang Mauerer,作者的背景是量子物理學家。在沒有社群內知名開發者的背書與協助下,他完成了一本巨大的書籍,篇幅高達 1368 頁。

有別於 UTLK,也許是為了非科班出生的讀者,作者試著詳盡的敘述作業系統的基本概念,另外一方面也以程式碼告訴讀者 Linux 的運作模式。

如果你讀不下純粹理論導向的作業系統教科書,而想透過 Linux理解一個作業系統的設計原理,這是適合你的書。本書基於 Linux kernel 2.6.24.

身為知名的 kernal hacker, Robert LoveLinux Kernel Development (3rd Edition) 一書中為讀者拆解 Linux kernel source tree, 直接從設計理念切入,酌以程式碼輔助,讀者需要有作業系統理論素養以及 Linux 開發經驗,才能消化理解筆者的解剖。最新第三版發表於 2010 年初版,更新到 2.6.34.

簡體中譯版 Linux 内核设计与实现 翻譯自 Linux Kernel Development 第二版。正體中文版有維科圖書有限公司出版沈中庸, 沈彥男翻譯的 Linux 核心開發指南, 2/e

Linux Network Internals 的作者是 Christian Benvenuti,發表於 2005 年。少數專談 Linux Network stacks 的書籍,作者循序的從設定工具、核心啟動開始,逐一介紹 封包傳送接受、Bridging、IPv4、Neighboring Subsystem 與 Routing。本書基於 2.6.12.

書中涵蓋了 Layer 2, Layer 3 等協定, 可惜遺漏了 IPv6, IGMP, PIM, Traffic Control, Netfilter, Virtual devices (802.1Q, bonding, IPIP, GRE) 等等重要原件。讀者需要基本開發能力與網路協定常識。此書有中譯版

The Linux TCP/IP Stack: Networking for Embedded Systems 第一版發表與 2004 年,最新第二版 2006 年,針對的版本是 2.6.16,作者是 Thomas F. Herbert。此書對於讀者的定位不明。雖然意圖以一個章節討論嵌入式系統中的 TCP/IP Stack,但除了說明一般嵌入式系統需求外,缺乏實際有用資訊。

書籍想涵蓋各種 TCP/IP Stack 所涵蓋的項目,但章節設計雜亂,從基本的 Network Stack 開始介紹,對於 API 部分又缺乏系統性描述。既無法瞭解網路協定,或撰寫網路程式或作業系統核心架構。

書中時常夾雜敘述與程式碼,令讀者難以連貫消化,讀者需要開啟原始程式碼才能領會作者的。這是一本關於網路協定的原始碼註記,適合已具核心開發經驗的開發者參考使用,考量其版本日期,書籍的功能可能比自行追蹤程式碼的效用還差。另外,若你想瞭解嵌入式系統,這也不是你該買的書。

Linux Device Drivers, 3rd Edition 的作者是 Jonathan Corbet (LWN創辦人)、Alessandro RubiniGreg Kroah-Hartman。即便 LDD3 已經出版許久,還是所有想寫 Linux kernel driver 的第一優先入門參考書阿。此書有中譯版

LDD3 務實的從實做範例開始,帶領讀者理解各種 subsystem,含括了入門操作與基本觀念,對於初次開發 lkm 的開發者提供了燈塔般的指引。

LDD3 授權採 CC BY-SA 2.0,線上版可於此下載 http://lwn.net/Kernel/LDD3/。但由於書籍年代較久,針對的核心版本為 2.6.10,書中範例需要一點調整才能正常運作。已有同好改了幾份擺在  github (jesstess, martinezjavier).

Essential Linux Device Drivers 的作者是長期在 IBM 工作的 Sreekrishnan Venkateswaran,參與 Linux Watch, PDA, Nurse Call Systems, Merlin Patient Care System 等等開發專案。有正體中譯版 Linux驅動程式開發實戰 以及簡體中譯版 精通Linux驅動程序開發

這本書是作者的實務工程筆記,出版於 2008 年,針對核心為 2.6.23/2.6.24,透過此書新手可以從中漫遊一個深具經驗的開發者,如何從原始碼迷霧之中理解 Linux device  driver,老手或可從雜亂的描述中再次驗證自己的理解。

雖然篇幅高達 744 頁,卻被引用程式碼佔了許多頁面。這本書不足以提供開發者撰寫驅動程式的基本觀念,也無法協助理解作業系統概觀。

作者另有一小冊 Debugging Linux Systems 電子書短短九十頁,帶過幾個常見的核心除錯工具與技巧,很有實務參考價值。

《The Linux(R) Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures》 出版於 2005 年,作者是 Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski。有中文版,但評價頗差

書名讓人非常期待總算有一本核心介紹書籍 x86 外的硬體平臺,畢竟 RISC vs CISC 架構的不同, endianness, alignment, calling convention 等,應當有許多寫核心驅動程式應該注意得事項。但是整本書只在 2.2 節稍微說一下寫 Assembly 時,PowerPC, x86 的指令差異,剩下的細節根本沒提!

整本書還是著重在一般核心的結構介紹。

而書中除了少量的插圖之外,根本沒有沒有多少邏輯上的說明跟描述。通篇拆解程式碼,對資料結構作註解。這些資訊任何有點基礎的工程師都可自行閱讀程式碼及程式碼註解。新入門工程師還可能因爲書中解釋而疑惑。

除非你想寫沒有價值的書評,否則不建議購買。

Linux(R) Debugging and Performance Tuning: Tips and Techniques 出版於 2005, 作者是 Steve Best。此書少見的從除了應用程式之外,還從核心切入的除錯、效能測試書籍,因爲這方面的技術資訊總是一下就超過保鮮期。

作者試著含括基本的 Profiling 實務開始,介紹 gdb, 應用程式記憶體管理,再講核心的各種資訊界面。很可惜,以一本專講除錯與效能測試的書來說,範例與介紹過於粗淺,以第十二章 Dynamic Probes 為例,其介紹深度可能還比不上 Documents/kprobes.txt 中的概念介紹與 IBM developerWorks 的範例介紹

適合剛切換到 Linux 的開發者,可概略學得各種基本開發工具者的入門資訊。

2011-03-17 18:00 更新

增列相關中譯版本連接,感謝 ansoncat 告知資訊。

2011-05-15 18:00 更新

修正 UTLK 版本為 2.6.11, 補充 ULNI 版本為 2.6.12. 感謝讀者 Wayling 指出錯誤。

I just received yet another comment from a bug reported at 2001 asking for `support deletion of attachments‘ in evolution. It’s kind of interesting to see the demand to be fulfilled for all most one decade.

Good news is you no longer need to ask for the feature. Thanks for Milan Crha, developer of RedHat, who help to get the my small plugin into Evolution code base.

So you don’t need to build the plugin by yourself or looking for a package. The feature should be available at Evolution 2.91.2+. 🙂

News updated at 2010/10/31.

Even though I don’t use evolution daily basis, I still spent a few hours to work with the old plugin for the upcoming Evolution 2.30. In the latest version, Evolution plugin framework is now having a new EPluginUI for GtkUIManager. The plugin version below to 0.0.3 does not work with Evolution 2.30, please use 0.0.4 if you upgraded your evolution to 2.30.

You can download source code tarball at github (http://github.com/chihchun/evolution-remove-attachments). I have also built debian packages for these platform, if you want to test with binaries

  • For Ubuntu User
    • You can download and install package form my PPA for Maverick (10.10).
  • For Debian User
    • You can download the tarball and deb file for Debian sid from here.

Since I no longer use Evolution, if you feel the piece of software is useful for you, please consider making a donation to support me maintaining the software.

上一封文章中提到,COSCUP 大量的利用線上工具合作,難得透過實體會議的方式進行會議。你很難想像有多少枝微末節需要決定,這也造就了驚人的郵件數量,以及大量利用線上工具完成溝通工作。

我自己最近幾年已經習慣透過線上工具與從來沒有見過面的人合作,甚至這些合作對象常待在不同的地理區域、時區。自己對於這種工作模式相當熟悉,但是團隊中還是有人習慣利用傳統電話、會議的方式來討論事項,完成工作。

私認為,更有效的利用線上工具完成工作,會變的越來越重要與普遍。至少在開源社群中相當重要。

在籌備過程中,因為與 GNOME.Asia Summit 合作的機會,在每週一次的線上 IRC 會議中認識了 Stormy PetersGNOME Foundation 的 Executive Director,在 GNOME 基金會負責實際營運、行銷等工作。也就是每日都必須與開源社群中的夥伴共事合作,她的經驗顯然很值得參考。

從她個人的 blog 中,我看到兩篇很值得推薦給社群朋友參考的文章,可以有效提高在開源社群中進行線上合作的生產力。五月時已經分享給 COSCUP 團隊,以下快速的翻譯成中文,詳情請見原文

  • 12 tips to getting things done in open source (十二招在開源世界搞定事情的方法)
    • 準備好做很多事。只有身體力行才能說服別人,這件計畫是一件有趣且值得投入的事情。
    • 相信自己被授權做事。如果大家都對你的發想表示正面態度,請視為「同意」,動手去作。
    • 盡早招募其他人。盡早分享你的想法給其他人,讓他們參與並覺得這也是自己的主意,如此他們也會視為己出的主動貢獻。
    • 別擔心無法取得功績 (Credit)。給別人更多讚賞,多過你自己所獲得。完成你的想法,比取得名聲更重要。社群中所有的事情都會是被公開紀錄的,你會獲得你該有的信譽。
    • 加入對話。許多人透過郵件以外的工具交換意見,許多小想法或進展是在其他管道成型的,例如社交網站,加入他們的談話。
    • 高效率的管理大量資訊。學習快速分類、消化大量的郵件與資訊。
    • 回信給全部的人。對團隊保持資訊透明是非常重要的事情。
    • 為人著想。大量郵件中常常使人漏掉事情,有時候導致誤解或覺得遭到冒犯。感到煩亂時,請多體諒別人。
    • 與人見面。見面三分情。有機會見面聊天,你會更容易透過虛擬工具理解一個人。(在台灣, COSCUP 是你最好的選擇之一)
    • 做你自己。盡可能讓你參與事情的動機透明,這樣會提高別人對你的信賴度。不妨適度表達你個人的意見與立場。
    • 求助。社群中有很多人願意幫忙,只要你分享完整計畫,讓別人知道何處可以幫忙。
    • 展現你的熱情。
  • 10 skills to master to get things done online (掌握十招線上搞定事情的技巧)
    • 掌握郵件。
      • 碰每封信一次。保持空收件夾,管理好代辦、追蹤郵件。
      • 使用支援討論串的郵件軟體,讓你可以方便跟上討論前後文。
      • 使用郵件過濾工具,分開不同的郵件列表的信件。
      • 只在特定時間處理郵件。
      • 持續研究並嘗試增加效率的方法。
    • 學習使用線上工具。
    • 學習找資訊的方法。弄清楚歷史郵件的搜尋方式、文件的存放位置。
    • 觀察事情被完成的方式。不同社群有不同完成事情的方法,如果你發現自己的發言沒有人理會,很可能是你弄錯了社群的文化。
    • 保持快速回應。線上協作時,遲緩效應會成倍數成長。
    • 知會團隊。讓團隊知道非線上的協議,如果你代表團隊做出決議,務必讓大家都知曉。
    • 知道何時該離線協議。有時候,一些初步的想法,最好先探尋過幾位信任夥伴的意見,再公開討論。但是請注意,都透過離線協議是無法讓讓大家都接受且同意的。
    • 電話會議的注意事項。注意每一個人都要可以順利撥入,更要注意語言隔閡。如果你發覺電話會議中有人無法完全理解或有效溝通,請改用其他方式。
    • 看懂「緘默」。有時郵件可能不會得到任何回應,在缺乏肢體語言提示的狀況下,你要學會看懂沉默的原因。
    • 學習完成的事項。花點時間觀察、詢問並了解專案的狀態。如果你總是提出一些已經討論過的事項,別人可能會覺得你不願投入。

這篇文章是除錯紀錄與寫給 Power User/Geek 參考服用,一般使用者請等 googleearth-package (Ubuntu) 正式版修正。

今天用 Holux M-241 紀錄了一段騎自行車的路程,本想取出 KML 來丟進 Google Earth 看一下到底繞了多遠。結果久久沒用的 Google Earth 一開即當,看了看還在 4.2 版。於是決定升級一下,發現 Google Earth for Linux 的支援相當糟糕。

在 Debian/Ubuntu 上,你可使用 googleearth-package 這個工具,來幫你把 googleearth 包裝成 deb 格式。於是你可以用 dpkg 來安裝、管理。相較於 Google Earth 原本提供的安裝方式,這樣顯然乾淨多了。不過試了幾次,發現 Google Earth 啟動後瞬間就會當掉,並存了一份 Crashlog 在 ${HOME}/.googleearth/crashlogs/。

於是開始了除錯旅程。我的環境是 Debian Sid.

Google 官方版本

決定手動下載安裝看看,很悲慘的是一執行 GoogleEarthLinux.bin 就出現以下錯誤

Verifying archive integrity... All good.
Uncompressing Google Earth for GNU/Linux 5.2.1.1588..............................................................
setup.data/setup.xml:1: parser error : Document is empty

^
setup.data/setup.xml:1: parser error : Start tag expected, '<' not found

^
Couldn't load 'setup.data/setup.xml'

你必須這樣做之後才能正確啟動安裝程式

$ sh GoogleEarthLinux.bin --target /tmp/ge
$ cd /tmp/ge
$ mv -fv setup.data/bin/Linux/x86/setup.gtk /tmp/ge/setup.data/bin/Linux/x86/setup.gtk2
$ ./setup.sh

安裝完畢之後,你會發現啟動 Google Earth 時,閃過幾個畫面,console 訊息會告訴你 Google Earth has caught signal 11.

你可以在 ${HOME}/.googleearth/crashlogs/ 找到當機的軟體日誌。你可能會看到以下訊息

Stacktrace from glibc:
./libgoogleearth_free.so(+0xd090b)[0xb773090b]
[0xb7789400]
/usr/lib/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_from_pixdata+0x13f)[0x94979daf]
/usr/lib/libgdk_pixbuf-2.0.so.0(gdk_pixbuf_new_from_inline+0x63)[0x9497a073]
/usr/lib/flashplugin-nonfree/libflashplayer.so(+0x4d335)[0x94f7d335]
/usr/lib/flashplugin-nonfree/libflashplayer.so(+0x4bd8e)[0x94f7bd8e]
/usr/lib/flashplugin-nonfree/libflashplayer.so(NP_Initialize+0x1ae)[0x94f8028e]
./libQtWebKit.so.4(+0x747b22)[0xb62edb22]
./libQtWebKit.so.4(+0x747c0c)[0xb62edc0c]
./libQtWebKit.so.4(+0x6062ff)[0xb61ac2ff]
./libQtWebKit.so.4(+0x604516)[0xb61aa516]
./libQtWebKit.so.4(+0x60476a)[0xb61aa76a]
./libQtWebKit.so.4(+0x712beb)[0xb62b8beb]

這是 Google Earth 內建的 QtWebKit libraries 試著要載入 browser plugins,由於相容問題當掉了。有鑑於 Google Earth 內附得 Qt libraries 還造成其他的問題,像是中文選單變成方格等等。我們可以砍掉 Google 附贈的 Qt4,直接用系統內建的 Qt4 函式庫即可。

cd google-earth
for qtlib in libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4 libQtWebKit.so.4 ; do
    mv ${qtlib} ${qtlib}.moved.for.workaround
done

另外一個問題是 libIGGfx.so,它顯然用 (linked) 了 libfreeimage3,但是實際跑起來卻會造成問題。

Stacktrace from glibc:
/usr/lib/googleearth/libgoogleearth_free.so(+0xd090b)[0xb788290b]
[0xb78db400]
/usr/lib/googleearth/libIGGfx.so(+0x1296c9)[0xb3f206c9]
/usr/lib/googleearth/libIGGfx.so(FreeImage_LoadFromHandle+0xb1)[0xb3f0e2c1]
/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx7igImage21platformLoadFreeImageEPNS_4Core6igFileEbPNS0_19igImageMetaDataListE+0xa1)[0xb3ef84b1]
/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx10igOglImage12platformLoadEPNS_4Core6igFileEPNS0_19igImageMetaDataListE+0x112)[0xb3ef8bb2]
/usr/lib/googleearth/libIGGfx.so(_ZN3Gap3Gfx7igImage8loadFileEPNS_4Core6igFileEPNS0_19igImageMetaDataListE+0x12d)[0xb3ee91ad]
/usr/lib/googleearth/libevll.so(_ZN5earth4evll7Texture9LoadBytesEPKhi+0xa6d)[0xb0ad7b8d]
/usr/lib/googleearth/libevll.so(_ZN5earth4evll7Texture12ProcessWorkQEd+0x184)[0xb0ae3594]

解決方法是自己裝 libfreeimage3,然後用 LD_PRELOAD 換掉 Google Earth 包在 libIGGfx.so 中的函式。如下

LD_PRELOAD=/usr/lib/libfreeimage.so.3 googleearth

這樣你應該可以順利的啟動 Google Earth 5.2 了。

Debian/Ubuntu 版本

在 Debian 與 Ubuntu 上,Adnan Hodzic已經包裝了 googleearth-package,Debian 跟 Ubuntu 使用者只需要下達 make-googleearth-package 指令,系統就會自動下載 Google Earth,並包裝成 deb 檔案。再用 dpkg -i googleearth_*.deb 安裝即可。

目前的版本 (0.5.7) 還是用 Google Earth 預設的 Qt4 與 libfreeimage3。我提了一版修正,希望新版中可以預設刪除 Qt4 與 libfreeimage3,修正檔可於 #596423 取得。