精華區beta FreeBSD 關於我們 聯絡資訊
Make Your Own Distribution 在裝完 FreeBSD 後,每次都要自行挑選所需的軟體來安裝, 也有人用自己寫的 script 來做完安裝的動作,在這提供另一種作法, 用 ports 來安裝你所需要的軟體,算是利用 ports 的方便性, 如果經常重灌的話,也可以作一片自己的光碟,快速的利用此光碟來安裝. 在這邊也利用被大家遺忘很久的 outta-port 來儲存大家的成果, 所以先介紹如何建立自己的 port. o 取得 outta-port.supfile # cd /usr/ports # fetch http://freebsd.sinica.edu.tw/conf/outta-port.supfile o 更新 outta-port # cvsup -g outta-port.supfile 接著開始建立自己的 port. 這邊我以 big5con, gnuls, joe 為例,用 RUN_DEPENDS 來自動安裝. (或許用 DEPENDS 會更好?) o 建立你的資料夾 # mkdir -p outta-port/statue # cd outta-port/statue o 建立你自己的 port # joe Makefile === Makefile === # New ports collection makefile for: statue # Date created: 30 Dec 2002 # Whom: Shen Chuan-Hsing <statue@statue.sinica.edu.tw> # # $FreeBSD$ # PORTNAME= statue PORTVERSION= 1.0 CATEGORIES= chinese MASTER_SITES= # empty DISTFILES= # none EXTRACT_ONLY= # empty MAINTAINER= statue@freebsd.sinica.edu.tw RUN_DEPENDS= b5c:${PORTSDIR}/chinese/big5con \ gnuls:${PORTSDIR}/misc/gnuls \ joe:${PORTSDIR}/chinese/joe if make(package) DEPENDS_TARGET="package" endif # .if make(package) NO_BUILD= yes do-install: # empty ${DO_NADA} include <bsd.port.mk> == Makefile === # joe pkg-comment == pkg-comment == Statue's sample meta port == pkg-comment == # joe pkg-descr == pkg-descr == Statue's sample meta port. WWW: http://netlab.cse.yzu.edu.tw/~statue/ == pkg-descr == # joe pkg-plist == pkg-plist == @comment this plist intentionally left empty == pkg-plist == 你可以裝上自己喜歡的 Window Manager,並且把自己的設定檔包裝, 利用 ports 的方式來安裝,可以省很多設定的時間. 然後自己測試看看能不能用. o 測試 # make ===> Extracting for zh-statue-1.0 >> No MD5 checksum file. ===> zh-statue-1.0 depends on executable: b5c - found ===> zh-statue-1.0 depends on executable: gnuls - found ===> zh-statue-1.0 depends on executable: joe - found ===> Patching for zh-statue-1.0 ===> Configuring for zh-statue-1.0 作成 package 保留,如果我們先建立 /usr/ports/packages/All 的話, 那所有的 package 將會排放在該目錄下,方便我們整理到 cdrom 中. o 包裝 # mkdir -p /usr/ports/packages/All # make package # ls /usr/ports/packages/All gnuls-4.0.tgz zh-big5con.tgz zh-joe-2.8.tgz zh-statue-1.0.tgz 建立 cdrom,在這邊利用自己現在系統版本的光碟, 加上自己所偏好的 packages. mkisofs 可以參考 /usr/share/examples/worm 來做出可以開機的光碟. o 建立自己的光碟 # cp -R /cdrom/* ~/yourcd/ # rm -rf ~/yourcd/packages/ # cp -R /usr/ports/packages/ ~/yourcd/packages/ 利用 du -s -h 檢察是否超過 cd-rom 的容量. # du -s -h ~/yourcd/ # mkisofs .... # burncd / cdrecord .... 如果你覺得你的設定可以讓提供給別人參考的話,把你的 port 寄給我吧. o 把你的成果寄給我 # shar statue/ statue/* > statue.shar # mail -s "New ports: outta-port/statue" statue@freebsd.sinica.edu.tw < statue.shar o 更新你的 port # cp -R statue/ statue.orig/ Modify statue/* # rm statue/*~ # diff -ruN statue.orig/ statue/ > statue.diff # mail -s "Update port: outta-port/statue" statue@freebsd.sinica.edu.tw < statue.diff o 參考 ports-handbook o 附註 make package 的過程最好依次做完,更新過 ports 後,depends 的版本可能會更動. -- ※ Origin: 元智大學 風之塔 <bbs.yzu.edu.tw> ※ From : netlab.cse.yzu.edu.tw