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