FreeBSD 升級系統(轉)

gugu99發表於2007-08-11
FreeBSD 升級系統(轉)[@more@]

  透過CD-Rom或Internet能夠很方便的獲得FreeBSD的新版本,由於每一次版本升級都修正了原有版本中存在的問題,並增加了一些新特性。因此保持系統與最新版本相一致是十分有益的事情。

  升級核心的最直接想法是直接編譯新核心,可以將新版本的核心展開到系統中的目錄中,然後按照前面的步驟編譯安裝新核心。這個方法在同一版本分支中作子版本的升級十分方便,例如從FreeBSD 2.2.7release升級到 2.2.8release。如果要從2.2.x版本升級到3.x版本,由於升級了主版本號,基本系統有了較大改動,因此不僅要升級核心,還需要升級系統中的應用程式。此時一般應使用sysinstall中的Upgrade選項進行升級。

  • 使用原始碼升級系統

  除了使用sysinstall直接升級之外,另一種升級方法是從系統的原始碼中升級系統。這要安裝要升級版本的全部原始碼,從而能重新編譯整個系統,包括系統核心和各個應用程式。可以透過下面的辦法手工安裝系統原始碼。

# cd /cdrom/src

# ./install.sh

  重新編譯整個系統是一個漫長的時間,根據使用的系統硬體不同,將需要幾個小時的時間或更長時間來完成這個任務。這個編譯命令被稱為 “make world” ,表示重新編譯構建整個FreeBSD系統。

# cd /usr/src

# make world

  如果是從2.2版本或3.0-release升級到3.1-stable,那麼直接這樣make world會遇到問題。主要原因是3.0-stable之後,系統的執行檔案格式從原有的a.out轉向了ELF(3.0-release的執行檔案雖然是 ELF格式的,但其核心還保持a.out格式)。make world就提示使用者使用make upgrade進行升級,因此使用者就應該按照make world的提示進行操作:

# make upgrade

  其他的make目標有:

  buildworld:編譯所有的原始碼;

  installworld:安裝buildworld編譯產生的結果;

  world:執行buildworld和installworld,重新編譯安裝整個系統;

  aout-to-elf-build:編譯從aout到elf升級系統所需的原始碼;

  aout-to-elf-install:在aout-to-elf-build的基礎上升級系統;

  aout-to-elf:依賴於aout-to-elf-build和aout-to-elf-install,進行a.out系統到elf系統的升級轉換;

  update:進行系統升級,對於3.1-stable來講即包括aout-to-elf;

  reinstall:在以前已經編譯好的基礎上,不重新編譯而再次安裝編譯產生的結果;

  當使用原始碼的方式重新編譯系統時,由於需要使用編譯工具和這些工具的預設設定,這些工具就需要預先更新。編譯工具一般不需要升級,但編譯工具的設定常常需要更新。當更新所有的原始碼時,就不存在這個問題,但如果只是更新部分原始碼,就會出現這個問題。如果不打算更新所有的原始碼,可以透過預安裝的一個很小的系統升級軟體包來解決編譯工具設定更新問題。例如需要更新Ports Collectin,但不打算更新全部原始碼(從3.1-release升級到 3.1-stable),就需要安裝31Upgrade.tgz。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944651/,如需轉載,請註明出處,否則將追究法律責任。

相關文章