升級也可以很簡單 從源代碼開始升級軟件也可以很簡單,但您應該采取幾個預防措施,當您初學編譯源代碼或者不太熟悉正要安裝的源代碼檔案時尤其應該注意。下面列出了您應該密切注意的幾點,但在大多數情況下,升級與最初的編譯和安裝步驟幾乎相同。也就是說,這些步驟包括打開 tar 包、可選的 "./configure"、"make" 和 "make install"。如果您不熟悉這些術語,請首先查看 developerWorks 的 Compilingand installing software from sources 教程,然後再回頭閱讀本文。
閱讀 Changelog 下載源代碼以後,首先熟悉一下軟件有哪些新變化 -- 這些變化通常在源代碼主目錄的 ChangeLog 或 README 文件中列出。您可能發現配置文件設置稍有變化,或者添加了一些新特性。最好在源代碼的文檔中弄清這些變化,而不要等到以後在這些地方犯了錯誤再補救。不進行這一步絕對是錯誤的 -- 另外,既然您花時間來安裝這個軟件包的新版本,了解一下它包括哪些新特性或修正了哪些錯誤不是一件好事嗎?
升級關鍵應用程序 如果您正在升級對許多用戶都有影響的應用程序(如繁忙的 Web 服務器上的 Apache),則倍加小心是值得的。如果可能,請首先在非生產機器上安裝新版本源代碼,並記下使新版本啟動並運行所執行的每個步驟。這樣,即使您在升級過程中遇到問題,也不會造成什麼危害。而且,當您准備對您的生產機器進行升級時,您已經有了要執行的步驟的一個詳細列表 -- 從而可以縮短高代價的停機時間。 此外,如果您正在升級關鍵應用程序,則在非高峰時進行升級總是最佳選擇。
按相同的方式進行配置 當升級應用程序時,人們容易犯的重大錯誤之一是在 "./configure" 行指定不同的、不兼容的選項,或者在 Makefile 配置中取消了不同行的注釋標記。如果您希望執行簡單的升級,則請確保軟件新版本的配置與當前版本的配置完全相同。 如果當前版本在 /etc 目錄下查找它的配置文件,則將新版本配置為同樣的方式是較好的選擇。別草率從事;如果您在 "./configure" 命令行傳遞了不同的選項,其結果很可能是,新版本具有明顯不同的功能,安裝在錯誤的目錄樹中,或者在錯誤的位置查找它的配置文件或數據文件。如果您忘了原來所使用的配置選項或 Makefile 定義,則一定要在編譯和安裝新版本之前查清楚。為使升級順利進行,您會希望一開始就獲得這些設置。
先備份原來的配置文件再進行安裝 對許多程序包而言,真正的挑戰不在編譯和安裝階段,而是在您鍵入 "make install" 之後設置應用程序以使它正常運行的過程中。這通常需要花好幾個小時編輯應用程序的配置文件,配置文件通常在 /etc 目錄下,並帶有常用的 ".conf" 後綴。 當您通過鍵入 "make install" 來安裝程序包的新版本時,大多數 Makefile 不會覆蓋磁盤上現有的配置文件 -- 但如果從安全方面來考慮的話,則應該慶幸這一點,而不是對此表示遺憾。如果您沒有十分的把握,則一定要備份以前的配置文件!某些配置文件可能需要花幾天的時間來重新構建,這隨程序包的不同而有所不同。如果配置文件包含加密的口令,則重新構建相當耗時,或者干脆就不可能。 如果您正在計劃對您的 Linux 系統進行重大升級,則現在可能是執行全系統備份的好時機。如果您准備升級作為許多程序包正常工作基礎的關鍵系統庫或工具,這就顯得尤為重要了。全系統備份本身就是很好的主意,我希望您不定期地對系統進行備份。
手頭准備好較舊的源代碼 我無意勸阻您將最喜歡的程序升級到最新版本 -- 但新版本的確可能無法工作。"./configure" 或 "make" 可能會崩潰。更糟糕的情況是,包括 "make install" 在內的每個環節都順利通過,直到實際運行程序時才出現麻煩。多蟲的源代碼發行版確實存在,這就是之所以在手頭保留較舊源代碼(以及任何安裝步驟)是個好主意的原因,以防較新的源代碼不正常。
測試! 編譯和安裝是一回事,而確信新軟件工作正常完全是另一回事。您一定希望確信您不是在根分區中安裝了 500 KB 的垃圾。新版本的配置文件可能需要作少許修改,甚至可能需要大幅修改。如果您正在升級守護程序,請確保當重新啟動時您的配置腳本成功地啟動了這個新版本。您絕對不希望當您在兩周以後重新啟動服務器(而且您已經淡忘了該程序的配置細節)時發現任何問題。您可以按照本文中的建議進行操作,但是如果您不測試您的安裝,則您正在漏掉最重要的步驟。