2007年3月26日 星期一

[FreeBSD] FreeBSD 詳細的安裝教學 - 舊安裝方式

這篇是以前大三修交大資工計算機系統管理課程中的投影片,從中取出紀錄的過程。當時使用的 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






沒有留言:

張貼留言