這篇是以前大三修交大資工計算機系統管理課程中的投影片,從中取出紀錄的過程。當時使用的 FreeBSD 4.10 左右的作業系統,在此當作個筆記記錄回憶啦。比較新的方式可參考:[FreeBSD] 安裝 FreeBSD 與系統更新

我習慣用光碟安裝,所以以 6.1 來說,就是去抓光碟啦

至於安裝的套件就選:

  1. base  : binary
  2. kernels(all) : Generic kernel and SMP kernel
  3. Man  : Manual
  4. src  : FreeBSD Source Code
  5. ports  : FreeBSD Software Collection
  6. local  : local additions

安裝完套件可以調的東西:

  1. Root Password
  2. Time Zone > Asia > Taiwan
  3. Mouse > enable
  4. Networking > sshd
  5. Packages (optional), ex: net/csup, editors/vim-lite

抓取更新系統的檔案:

  1. pkg_add ftp://freebsd.csie.nctu.edu.tw/pub/releases/i386/6.1-RELEASE/packages/net/csup-20060223_1.tbz
  2. 編寫 /usr/local/etc/cvsup-all 更新檔案
    • Where to get source
    • Where to put status file
    • Where to put source
    • Allow cvs to delete
    • Compress before transmit
  3. *default host=freebsd.csie.nctu.edu.tw
    *default base=/usr
    *default prefix=/usr
    *default delete use-rel-suffix
    *default compress
    *default release=cvs tag=RELENG_6
    src-all
    ports-all tag=.
  4. 記得寫一下 /etc/make.conf 檔
    MASTER_SITE_OVERRIDE?=  \
             ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${DIST_SUBDIR}/\
             ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
             ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
             ftp://ftp3.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
             ftp://ftp4.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
             ftp://ftp5.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
             ftp://ftp7.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
             ftp://ftp8.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/

    WITHOUT_X11=YES

  5. # /usr/local/bin/csup -L 1 /usr/local/etc/cvsup-all > /var/log/csup.log
    The “–L 1” tells cvsup to print out the details of all the file updates it is doing. from 0 (silent) to 2.

更新步驟:

  1. make buildworld
    • # cd /usr/src
    • # make buildworld >& /var/log/world.log &
  2. make buildkernel
    • # cd /usr/src/sys/i386/conf
    • # cp GENERIC “YOUR-NAME”
    • # edit config file
  3. make installkernel
    • 新的方式
      # cd /usr/src
      # make KERNCONF=YOUR-NAME buildkernel

      其他資訊

      • Note: This method of kernel building requires full source files. If you only installed the kernel source, use the traditional method.

      • Tip: By default, when you build a custom kernel, all kernel modules will be rebuilt as well. If you want to update a kernel faster or to build only custom modules, you should edit /etc/make.conf before starting to build the kernel:
            MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

    • 舊的方式
      @ /usr/src/sys/i386/conf/
      # /usr/sbin/config YOUR-NAME
      # cd ../compile/YOUR-NAME (or ../../compile/YOUR-NAME )
      # make dependclean (6.1版會提醒你要作這步, 之前的只有提醒做 make depend)
      # make depend
      # make
      # make install
  4. reboot and boot in single user mode
    • 使用 shutdown now 或
    • Press "4" 於開機選項
  5. mergemaster -p
    • Pre-buildworld mode.  Compares only files known to be essential to the success of {build|install}world, including /etc/make.conf.
  6. make installworld
  7. mergemaster
    • Synchronize /usr/src/etc with /etc
    • Choose “i” for most case, such as /etc/defaults/rc.conf, …
    • Press “enter” for certain file, such as master.passwd, hosts, csh.*
  8. reboot

如果有任何錯誤的話:

  • Possible errors in building new kernel
    • Boot with old kernel
      • In 5.x ~
        1. Press “6”
        2. Type “boot /boot/kernel.old/kernel”
      • In 4.x
        1. Hit any key other than “enter” when counting down
        2. Type “unload”
        3. Type “load /kernel.old”
        4. Type “boot”

上述的一些過程可以當作更新系統的方法,但有些部分不適用於已安裝好的系統,即已安裝於系統的軟體並不會得到更新,必需額外使用軟體來進行更新,這是以前的文章(用的是 cvsup ,現在大多改用 csup ):

  • 安裝所需的軟體
    • cvsup
      # cd /usr/ports/net/cvsup-without-gui && make install
    • portupgrade
      # cd /usr/ports/sysutils/portupgrade && make install
    • 打這個指令讓才剛裝好的程式立即可以使用:
      rehash
    • cvsup 是個工具,她可以幫我們至 FreeBSD 站台更新 Source-Tree 及 Ports-Tree 回來您的主機中。portupgrade 是 FreeBSD 中升級以 PORTS 安裝的軟體的一個套件(必須是您更新 Ports-Tree 之後)。
  • 更新 PORTS-Tree 且升級已安裝的軟體
    • 取回「更新 PORTS-Tree的設定檔」cvsupfile-ports:
      fetch ftp://ftp.tw.freebsd.org/pub/CVSup/cvsupfile-ports
    • 依據 cvsupfile-ports 中的定義,至 CVSup 站臺更新 PORTS-Tree
      cvsup -g -L 2 cvsupfile-ports
    • 先重建您系統中 PORTS 的 INDEX 資料庫
      這個部份恐需時甚久,而且會令你覺得是不是當機了,所以請耐心等候。
      portsdb -Uu
    • 再接著是修補程式間的關連性,才能正確並有效率的升級已安裝的軟體
      pkgdb -F
    • 為了以防萬一,我們先做個升級的假動作:
      portupgrade -ayn
    • 如果剛剛的升級測試都沒有問題,現在就可以正式來一遍了:
      portupgrade -ay
    • 你可以寫一個批次檔讓此程式來執行:
      #!/bin/sh
      cvsup -g -L 2 cvsupfile-ports
      portsdb -Uu
      pkgdb -F
      portupgrade -ayn
    • 更詳細的資訊,您可以
      man  portupgrade

全站熱搜

changyy 發表在 痞客邦 留言(0) 人氣()