diff --git a/zh_TW.Big5/books/handbook/introduction/chapter.sgml b/zh_TW.Big5/books/handbook/introduction/chapter.sgml
index d2ccd9ed9a..f92373f330 100644
--- a/zh_TW.Big5/books/handbook/introduction/chapter.sgml
+++ b/zh_TW.Big5/books/handbook/introduction/chapter.sgml
@@ -1,826 +1,817 @@
JimMockRestructured, reorganized, and parts
rewritten by 簡介概述非常感謝您對 FreeBSD 感興趣!以下章節涵蓋 FreeBSD
計劃的各方面:比如它的歷史、目標、開發模式等等。讀完這章,您將了解︰FreeBSD 與其他 OS 之間的關係;FreeBSD 計劃的歷史源流;FreeBSD 計劃的目標;FreeBSD open-source 開發模式的基礎概念;當然囉,還有 FreeBSD 這名字的緣故。Welcome to FreeBSD!4.4BSD-LiteFreeBSD 是一個從 4.4BSD-Lite 衍生出而能在以 Intel (x86 and &itanium;),
AMD64, Alpha, Sun &ultrasparc;
為基礎的電腦上執行的作業系統。同時,移植到其他平台的工作也在進行中。
對於本計劃歷史的介紹,請看 FreeBSD 歷史源流,
對於 FreeBSD 的最新版本介紹,請看 current release
。若打算對於 FreeBSD 計劃有所貢獻的話(像是程式碼硬體設備,資金),
請看 如何對 FreeBSD
有貢獻。FreeBSD 能做什麼?FreeBSD 提供給你許多先進功能。這些功能包括:先佔式多工(preemptive multitasking)動態優先權調整的『先佔式多工』能夠確保,即使在系統負擔很重的情況下,
程式執行平順並且應用程式與使用者公平地共享資源。支援多人共用『多人共用(multi-user)』代表著許多人可以同時使用一個 FreeBSD 系統來處理各自的事務。
系統的硬體周邊(如印表機及磁帶機)也可以讓所有的使用者適當地分享。
也可以針對各別使用者或一群使用者的系統資源,予以設限,
以保護系統不致被過度使用。TCP/IP 網路功能好用的『TCP/IP 網路功能』可支援許多業界標準,比如:SLIP、PPP、NFS、DHCP
和 NIS 的支援,也就是說 FreeBSD 可以容易地跟其他作業系統透過網路共同運作,
或是當作企業的伺服器用途,例如提供遠端檔案共享(NFS)及電子郵件(email)等服務,
或是讓您的企業連上網際網路(Internet)並提供 WWW、FTP、路由(routing)
、及防火牆(firewall、security) 等必備服務。記憶體保護『記憶體保護(Memory protection)』能確保程式(或是使用者)不會互相干擾,
即使任何程式有不正常的運作,都不會影響其他程式的執行。FreeBSD 是『32位元(32-bit)』的作業系統
(在 Alpha、&itanium;、 AMD64 及 &ultrasparc; 上則是『64位元(64-bit)』)
— 打從一開始便是這樣設計的。X Window SystemXFree86業界標準的『X Window 系統』(X11R6)可以在常見的便宜 VGA 顯示卡/螢幕,
提供了圖形化的使用者介面(GUI),並且包括了完整的原始程式碼。binary compatibilityLinuxbinary compatibilitySCObinary compatibilitySVR4binary compatibilityBSD/OSbinary compatibilityNetBSD能『直接執行』許多其他作業系統(比如: Linux、SCO、SVR4、BSDI 和 NetBSD)
的可執行檔。數以萬計的立即可以執行的應用程式,這些都可透過 FreeBSD
的『ports』及『packages』軟體管理機制來取得。
不再需要費心到網路上到處搜尋所需要的軟體。此外,網路上尚有可非常容易移植的數以萬計應用程式。
FreeBSD 的原始程式碼與許多常見的商業版 &unix; 系統都相容,
所以大部分的程式都只需要很少的修改(或根本不用修改)
,就可以編譯執行。virtual memory需要時才置換(demand paged) virtual memory 及
merged VM/buffer cache 的設計,
這點在系統中有用去大量記憶體的程式執行時,仍然有不錯的效率表現。Symmetric Multi-Processing (SMP)支援 CPU 的對稱多工處理(SMP):可以支援多 CPU
的電腦系統。compilersCcompilersC++compilersFORTRAN完全相容的 C、C++ 以及
Fortran 的環境和其他開發工具。
以及其他許多可供進階研發的程式語言也收集在 ports 和 packages。
source code整個系統都有『原始程式碼』,
這讓你對作業環境擁有最完全的掌握度。
既然能擁有完全開放的系統,何苦被特定封閉軟體所約束,任廠商擺佈呢?
廣泛且豐富的『線上文件』。當然囉,還不止如此!4.4BSD-LiteComputer Systems Research Group (CSRG)U.C. BerkeleyFreeBSD 系統乃是基於美國加州大學柏克萊分校的電腦系統研究群
(Computer Systems Research Group 也就是 CSRG) 所發行的
4.4BSD-Lite,以及基於 BSD 系統開發的優良傳統。
除了由 CSRG 所提供的高品質的成果,
為了提供可處理真正具負荷的工作,
FreeBSD 計劃也投入了數千小時以上的細部調整,
以能獲得最好的執行效率以及系統的穩定度。
正當許多商業上的巨人正努力地希望能提供效能及穩定時,
FreeBSD 已經具備這樣的特質 -- 就是現在!
FreeBSD 的運用範圍無限,其實完全限制在你的想像力上。
從軟體的開發到工廠自動化,或是人造衛星上面的天線的方位角度的遠端控制;
這些功能若可以用商用的 Unix 產品來達成,
那麼極有可能使用 FreeBSD 也能辦到!
FreeBSD 也受益於來自於全球各研究中心及大學所開發的數千個高品質的軟體
,這些通常只需要花費很少的費用或根本就是免費的。
當然也有商業軟體,而且出現的數目是與日俱增。由於每個人都可以取得 FreeBSD 的原始程式碼,
這個系統可以被調整而能執行任何原本完全無法想像的功能或計劃,
而對於從各廠商取得的作業系統通常沒有辦法這樣地被修改。
以下提供一些人們使用 FreeBSD 的例子:網路服務: FreeBSD
內建強勁的網路功能使它成為網路服務(如下例)的理想平台:FTP servers檔案伺服器(FTP servers)web servers全球資訊網伺服器(WWW servers)
(標準的或更安全的 SSL 連線)firewallIP masquerading防火牆以及 NAT (IP masquerading)
gateways。electronic mail電子郵件伺服器(Electronic Mail servers)USENET網路新聞伺服器(USENET News)
或是電子佈告欄系統(BBS)還有更多...有了 FreeBSD,您可以容易地先用便宜的 386 PC,
再逐步升級您的機器到四個 CPU 的 Xeon
並使用磁碟陣列(RAID)來滿足您企業運用上的需求。教育:
如果你是資訊或相關工程領域的學生,再也沒有比使用 FreeBSD
能學到更多作業系統、計算機結構、及網路的方法了。
另外如果你想利用電腦來處理一些其他的
工作,還有一些如 CAD、
數學運算以及圖形處理軟體等可以免費地取得使用。研究:有了完整的原始程式碼,FreeBSD
是研究作業系統及電腦科學的極佳環境。
具有免費且自由取得特性的 FreeBSD
也使得一個分置兩地的合作計劃,不必擔心版權及系統開放性的問題,
而能自在的交流。routerDNS Server網路:
你如果需要 router、Name Server (DNS) 或安全的防火牆(Firewall),
FreeBSD 可以輕易的將你沒有用到的 386 或 486 PC
變身成為絕佳的伺服器,甚至具有過濾封包(packet-filter) 的功能。
X Window SystemXFree86X Window SystemAccelerated-XX 視窗工作站: FreeBSD 是 X
終端機的良策,你可以使用免費的 X11 Server 或是由
Xi Graphics 所提供的商業版 X Server。
FreeBSD 不但可以充當遠端 X 程式終端機,
也可以執行本地的 X 程式而減輕大型工作站的負荷。
如果有一台中央伺服器的話,FreeBSD 甚至可以經由網路開機
(不需硬碟,也就是diskless)
,而變成更便宜且易於管理的工作站。GNU Compiler Collection軟體開發:
基本安裝的 FreeBSD 就包含了完整的程式開發工具,如 GNU C/C++
編譯器及除錯器。你可以經由燒錄 CDROM、DVD 或是從 FTP 站上抓回 FreeBSD --
包括立即可執行的系統以及系統的完整程式碼。
詳情請參閱 取得 FreeBSD。誰在用 FreeBSD?userslarge sites running FreeBSD許多 Internet 上的大型網站都是以 FreeBSD 作為它的作業系統,例如:Yahoo!Yahoo!ApacheApacheBlue Mountain ArtsBlue Mountain
ArtsPair NetworksPair
NetworksSony JapanSony
JapanNetcraftNetcraftWeathernewsWeathernewsSupervaluSupervaluTELEHOUSE AmericaTELEHOUSE
AmericaSophos Anti-VirusSophos
Anti-VirusJMA WiredJMA Wired以及許多其他的網站。關於 FreeBSD 計劃接下來講的是 FreeBSD 計劃的背景,包含歷史源流的簡介、計劃的目標,以及開發的模式。JordanHubbardContributed by FreeBSD 歷史源流的簡介386BSD PatchkitHubbard, JordanWilliams, NateGrimes, RodFreeBSD ProjecthistoryFreeBSD 計畫的想法是在 1993 年初所形成的,
那是源自於維護一組 『非官方 386BSD 的 patchkit(修正工具)』計劃的三個協調維護人
Nate Williams,Rod Grimes 和我(Jordan Hubbard)。386BSD我們最初的目標是做出一份 386BSD 綜合修正的 snapshot 版,以便修正當時一堆
patchkit 都不容易解決的問題。有些人可能還記得早期的計劃名稱叫做
386BSD 0.5 或 386BSD Interim 就是這個原因。Jolitz, Bill386BSD 是 Bill Jolitz 的作業系統,在當時就已有約一年的分裂討論。
當該修正工具 (patchkit) 日漸龐雜得令人不舒服,我們無異議地同意要作一些事了,
並決定提供一份臨時性的 淨化版(cleanup) 來幫助 Bill。
然而,由於 Bill Jolitz 忽然決定取消其對該計劃的認可,且沒有明確指出未來的打算,
所以該計劃便突然面臨斷炊危機。Greenman, DavidWalnut Creek CDROM不久我們便決定在即使沒有 Bill 的支持下,讓該計劃仍然繼續下去,
最後我們採用 David Greenman 丟銅板決定的名字,也就是『FreeBSD』。
在詢問了當時的一些使用者意見之後,就開始決定了最初的目標,
當該計劃開始實施一切就要成真時,一切就變得更清楚了。
我跟 Walnut Creek CDROM 討論發行 CDROM
這樣子不便上網的人就可以用比較簡單的方式取得 FreeBSD。
Walnut Creek CDROM 不只贊成以 CDROM 來發行 FreeBSD
的想法,同時提供了一台機器以及快速的網際網路的頻寬。
如果不是 Walnut Creek CDROM 幾乎是空前的信任這個剛開始還是完全默默無聞的計劃,
那麼很可能 FreeBSD 不會如此快速的成長到今日這樣的規模。4.3BSD-LiteNet/2U.C. Berkeley386BSDFree Software Foundation第一張以 CDROM (及網路)發行的 FreeBSD 1.0 是在 1993 年十二月。
該版本是基於由 U.C. Berkeley 以磁帶方式發行的
4.3BSD-Lite (Net/2)以及許多來自於 386BSD
和自由軟體基金會的軟體。對於第一次發行而言還算成功,
我們又接著於 1994 年 5 月發行了相當成功的 FreeBSD 1.1。NovellU.C. BerkeleyNet/2AT&T然而此後不久,另一個意外的風暴在 Novell 和 U.C. Berkeley 關於
Berkeley Net/2 磁帶之法律地位的訴訟確定之後形成。
U.C. Berkeley 接受大部份的 Net/2 的程式碼都是『侵佔來的』且是屬於 Novell 的財產
-- 事實上是當時不久前從 AT&T 取得的。
Berkeley 得到的是 Novell 對於 4.4BSD-Lite 的『祝福』,最後當 4.4BSD-Lite
終於發行之後,便不再是侵佔行為。
而所有現有 Net/2 使用者都被強烈建議更換新版本,這包括了 FreeBSD。
於是,我們被要求於 1994 年 6 月底前停止散佈基於 Net/2
的產品。在此前提之下,本計劃被允許在期限以前作最後一次發行,也就是
FreeBSD 1.1.5.1。FreeBSD 便開始了這宛如『重新發明輪子』的艱鉅工作 -- 從全新的且不完整的
4.4BSD-Lite 重新整合。
這個 Lite 版本是不完整的,因為
Berkeley 的 CSRG 已經刪除了大量在建立一個可以開機執行的系統所需要的程式碼
(基於若干法律上的要求),且該版本在 Intel 平台的移植是非常不完整的。
直到 1994 年 11 月本計劃才完成了這個轉移,
同時在該年 12 月底以 CDROM 以及網路的形式發行了 FreeBSD 2.0。
雖然該份版本在當時有點匆促粗糙,但仍是富有意義的成功。
隨之於 1995 年 6 月又發行了更容易安裝,更好的 FreeBSD 2.0.5。我們在 1996 年 8 月發行了 FreeBSD 2.1.5,在 ISP 和商業團體中非常流行。
隨後, 2.1-STABLE 分支的另一個版本應運而生,它就是在 1997 年 2 月發行 FreeBSD 2.1.7.1
,同時也是 2.1-STABLE 分支的最後版。之後此分支便進入維護狀態,
僅僅提供安全性的加強和其他嚴重錯誤修補的維護(RELENG_2_1_0)。1996 年 11 月 FreeBSD 2.2 從開發主軸分支 (-CURRENT)
出來成為 RELENG_2_2 分支。它的第一個完整版(2.2.1)於 1997 年 4 月發行。
2.2 分支的延續版本在 97 年夏秋之間發行的,其最後版是在 1998 年 11 月發行的 2.2.8 版。
第一個正式的 3.0 版本在 1998 年 10 月發行,亦即宣告 2.2 分支的落幕。1999/01/20 日再度分支,這產生了 4.0-CURRENT 以及 3.X-STABLE 兩個分支。
3.X-STABLE 方面,3.1 發行於 1999/02/15,3.2 發行於1999/05/15,3.3 發行於 1999/09/16,
3.4 發行於 1999/12/20,3.5 發行於 2000/06/24
,接下來幾天後發佈了一些的修補檔(對 Kerberos 安全性方面的修正),就升級至 3.5.1
,這是 3.X 分支最後一個發行版本。在 2000/03/13 又有了一個新的分支, 也就是 4.X-STABLE
。這個分支之後發佈了許多的發行版本︰ 4.0-RELEASE 在 2000 年 3 月發行,
而最後的 4.11-RELEASE 則在 2005 年 1 月發行。4-STABLE 分支的支援會持續到 2007/01/31
,但主要焦點在於安全方面的漏洞、臭蟲及其他嚴重問題的修補。期待已久的 5.0-RELEASE 在 2003/01/19 正式發行。這是將近開發三年的巔峰之作,同時
也開始加強多顆CPU(SMPng)的支援、kernel thread(KSE) 的支援、檔案系統採用 UFS2 以及支援 snapshot
等, 並支援 &ultrasparc; 和
ia64 平台、支援藍芽、32 bit 的 PCMCIA 等。之後於 2003 年 6 月發行了 5.1。
而 -CURRENT 這個發展主軸分支的最後 5.X 版本是在 2004 年 2 月正式發行的 5.2.1-RELEASE,在 5.X
系列進入 -STABLE (RELENG_5分支)之後,-CURRENT 就轉移為 6.X 系列。RELENG_5 分支於 2004 年 8 月正式開跑,之後是 5.3-RELEASE
,它是 5-STABLE 分支的第一個發行版本。&rel2.current;-RELEASE 的最新發表是在 &rel2.current.date; 發行的 &rel2.current;-RELEASE,照往例 RELENG_5 分支還將有後續的發行版。RELENG_6 分支於 2005 年 7 月開跑,而 6.X 分支的第一個 release(6.0-RELEASE) 是在 2005 年 11 月出的。
最新的 &rel.current;-RELEASE 是在 &rel.current.date; 發行。當然囉,RELENG_6 分支還將有後續的發行版。目前,長期的開發計畫繼續在 7.X-CURRENT (trunk) 分支中進行,而 7.X 的 CDROM
(當然,也可以用網路抓) snapshot 版本可以在 FreeBSD snapshot server
取得。JordanHubbardContributed by FreeBSD 計劃的目標FreeBSD ProjectgoalsFreeBSD 計劃的目標在於提供可作任意用途的軟體而不附帶任何限制條文。
我們之中許多人對程式碼 (以及計畫本身) 都有非常大的投入,
因此,當然不介意偶爾有一些資金上的補償,但我們並沒打算堅決地要求得到這類資助。
我們認為我們的首要『使命(mission)』是為任何人提供程式碼,
不管他們打算用這些程式碼做什麼, 因為這樣程式碼將能夠被更廣泛地使用,從而發揮其價值。
我認為這是自由軟體最基本的,同時也是我們所倡導的一個目標。GNU General Public License (GPL)GNU Lesser General Public License (LGPL)BSD Copyright我們程式碼樹中,有若干是以 GNU GPL 或者 LGPL
發佈的那些程式碼帶有少許的附加限制,還好只是強制性的要求開放程式碼而不是別的。
由於使用 GPL 的軟體在商業用途上會增加若干複雜性,因此,如果可以選擇的話,
我們會比較喜歡使用限制相對更寬鬆的 BSD 版權來發佈軟體。SatoshiAsamiContributed by FreeBSD 的開發模式FreeBSD Projectdevelopment modelFreeBSD 的開發是一個非常開放且具彈性的過程,就像從 貢獻者名單
所看到的,是由全世界上千上萬的貢獻者發展起來的。
FreeBSD 的開發基礎架構允許數以百計的開發者透過網際網路協同工作。
我們也經常關注著那些對我們的計畫感興趣的新開發者和新的創意,
那些有興趣更進一步參與計劃的人只需要在 &a.hackers; 連繫我們。
&a.announce; 對那些希望了解我們進度的人也是相當有用的。
- 無論是單獨開發者或者封閉式的團隊合作,若能了解 FreeBSD 計劃和它的開發過程都是有用的︰
+ 無論是單獨開發者或者封閉式的團隊合作,多瞭解 FreeBSD 計劃和它的開發過程會是不錯的︰The CVS repositoryCVSrepositoryConcurrent Versions SystemCVS
- The central source tree for FreeBSD is maintained by
+ FreeBSD 的中央 source tree 是以
CVS
- (Concurrent Versions System), a freely available source code
- control tool that comes bundled with FreeBSD. The primary
- CVS
- repository resides on a machine in Santa Clara CA, USA
- from where it is replicated to numerous mirror machines
- throughout the world. The CVS tree, which contains the -CURRENT and -STABLE trees,
- can all be easily replicated to your own machine as well.
- Please refer to the Synchronizing
- your source tree section for more information on
- doing this.
+ (Concurrent Versions System) 來維護的,它是個自由軟體,可用來做為版本控制,一裝完 FreeBSD 內就有附了。
+ 最主要的 CVS
+ repository 是位於美國加州 Santa Clara 的某台機器上,
+ 然後再 mirror 到世界上其他的許多機器上。CVS tree 內有兩個主分支:-CURRENT 以及 -STABLE ,這些都可輕鬆複製到自己機器上。
+ 詳情請參閱 更新你的 source tree 一節。The committers listcommitters
- The committers
- are the people who have write access to
- the CVS tree, and are authorized to make modifications
- to the FreeBSD source (the term committer
- comes from the &man.cvs.1; commit
- command, which is used to bring new changes into the CVS
- repository). The best way of making submissions for review
- by the committers list is to use the &man.send-pr.1;
- command. If something appears to be jammed in the
- system, then you may also reach them by sending mail to
- the &a.committers;.
+ 所謂的 committers
+ 指的是對 CVS tree 有 write 權限,
+ 並依不同授權部分,而有不同權限可修改 FreeBSD source。
+ (committer 這詞源自 &man.cvs.1; 中的 commit
+ 指令,該指令是用來把新的修改提交給 CVS repository。)
+ 而提交修改給 committer 們檢查的最好方式,就是用 &man.send-pr.1; 指令。
+ 若提交 PR 的流程、系統上有壅塞現象的話,也可以改用寄信方式,寄信到 &a.committers; 即可。The FreeBSD core teamcore teamFreeBSD core team
就等於董事會 -- 如果把 FreeBSD 看成是一家公司的話。
core team 的主要職責在於確保此計劃有良好的架構,以朝著正確的方向發展。
此外,邀請熱血且負責的軟體開發者加入 committers 行列,以在若干成員離去時得以補充新血。
目前的 core team 是在 2004 年 6 月 committers 候選人中選出來的,每兩年會舉辦一次選舉Some core team members also have specific areas of
responsibility, meaning that they are committed to
ensuring that some large portion of the system works as
advertised. For a complete list of FreeBSD developers
and their areas of responsibility, please see the Contributors
ListMost members of the core team are volunteers when it
comes to FreeBSD development and do not benefit from the
project financially, so commitment should
also not be misconstrued as meaning guaranteed
support. The board of directors
analogy above is not very accurate, and it may be
more suitable to say that these are the people who gave up
their lives in favor of FreeBSD against their better
judgment!Outside contributorscontributorsLast, but definitely not least, the largest group of
developers are the users themselves who provide feedback and
bug fixes to us on an almost constant basis. The primary
way of keeping in touch with FreeBSD's more non-centralized
development is to subscribe to the &a.hackers; where such
things are discussed. See for more information about
the various FreeBSD mailing lists.The
FreeBSD Contributors List is a long
and growing one, so why not join it by contributing
something back to FreeBSD today?Providing code is not the only way of contributing to
the project; for a more complete list of things that need
doing, please refer to the FreeBSD Project web
site.In summary, our development model is organized as a loose set
of concentric circles. The centralized model is designed for the
convenience of the users of FreeBSD, who are
provided with an easy way of tracking one central code
base, not to keep potential contributors out! Our desire is to
present a stable operating system with a large set of coherent
application programs that the users
can easily install and use — this model works very well in
accomplishing that.All we ask of those who would join us as FreeBSD developers is
some of the same dedication its current people have to its
continued success!最新的 FreeBSD 發行版本NetBSDOpenBSD386BSDFree Software FoundationU.C. BerkeleyComputer Systems Research Group (CSRG)FreeBSD 是免費使用且帶有完整原始程式碼的以 4.4BSD-Lite 為基礎的系統,可以在
Intel &i386;, &i486;, &pentium;,
&pentium; Pro,
&celeron;,
&pentium; II,
&pentium; III,
&pentium; 4 (或者相容型號),
&xeon;, DEC Alpha
和 Sun &ultrasparc; 為基礎的電腦上執行的作業系統。
它主要以加州大學巴爾克利分校 的 CSRG 研究小組的軟體為基礎,並加入了
NetBSD、OpenBSD、386BSD 以及自由軟體基金會的一些東西。自從 1994 年末,我們發佈了 FreeBSD 2.0 之後,系統的執行效率、
功能、穩定性都有了令人注目的提升。
最大的改變就是我們將記憶體與檔案系統的 cache 機制結合在一起。
這不只使得系統的表現變得更好, 並且使得 FreeBSD
系統最少的記憶體需求減少到 5 MB。
其它的改進包括完整的 NIS cilent and server 功能支援,
支援 transaction TCP、PPP 撥接連線、整合的 DHCP 支援、
SCSI 子系統的改進、ISDN 的支援,ATM、FDDI 以及乙太網路 (Ethernet、包括
100 Mbit 和 Gigabit) 的支援,提升了最新的 Adaptec
控制卡驅動程式的改善,以及數以千計的 bug 修正。除了最基本的系統軟體,FreeBSD 還提供了廣受歡迎的套件軟體管理機制: Ports Collection。
到本書付印時,已有超過 &os.numports; 個 ports,其中範疇包括從 http(WWW)
伺服器到遊戲、程式語言、編輯器以及您能想到的幾乎所有的東西。
完整的 Ports Collection 需要約 &ports.size; 的硬碟空間,除了
port 基本架構檔案外,都只儲存與該 port 軟體的原始碼有『須要變更』的部份。
如此一來,我們可以更容易更新這些 ports,
也大量的減少如舊的 1.0 版 Ports Collection 對於硬碟空間的需求。
要安裝一個 port 的話,只需要進入該 port 的目錄,輸入 make install
,這樣子系統就會幫你裝好了。您要編譯的每個程式的完整原始程式,
都可從 FTP 或 CDROM 中獲得,所以您只需準備足夠的硬碟空間來編譯你要的 port 軟體。
幾乎每一個 port 都有已事先編譯好的 package以方便安裝,
如果不想從編譯 port 的人,只要用個簡單指令(pkg_add)就可以安裝。
有關 packages 和 ports 的細節,可以參閱 。FreeBSD 主機的 /usr/share/doc 目錄下找到許多有用的文件,
來幫助您安裝、使用 FreeBSD。也可以使用下面的網址,以瀏覽器來翻閱本機上安裝的手冊︰FreeBSD 使用手冊/usr/share/doc/handbook/index.htmlFreeBSD 常見問答集/usr/share/doc/faq/index.html此外,可在下列網址找到最新版 (也是更新最頻繁的版本):。
diff --git a/zh_TW.Big5/books/handbook/l10n/chapter.sgml b/zh_TW.Big5/books/handbook/l10n/chapter.sgml
index d6330524da..0dec0e3029 100644
--- a/zh_TW.Big5/books/handbook/l10n/chapter.sgml
+++ b/zh_TW.Big5/books/handbook/l10n/chapter.sgml
@@ -1,939 +1,917 @@
AndreyChernovContributed by Michael C.WuRewritten by
- 地區、語系 - I18N/L10N 用法與設定
+ 語系設定 - I18N/L10N 用法與設定概述
- FreeBSD is a very distributed project with users and
- contributors located all over the world. This chapter discusses
- the internationalization and localization features of FreeBSD
- that allow non-English speaking users to get real work done.
- There are many aspects of the i18n implementation in both the system
- and application levels, so where applicable we refer the reader
- to more specific sources of documentation.
+ 由於 FreeBSD 是分佈全世界的使用者及志工所支持的計畫,本章主要探討的是
+ FreeBSD 的國際化、本土化議題,以便讓母語不是英語系的人也能順利完成各項工作。
+ 在作業系統、應用程式兩種層面,主要都是透過 i18n 標準來實作的,所以,
+ 這裡我們將會介紹大致運作方式。讀完這章,您將了解︰
- How different languages and locales are encoded
- on modern operating systems.
- How to set the locale for your login
- shell.
- How to configure your console for non-English
- languages.
- How to use X Window System effectively with different
- languages.
- Where to find more information about writing
- i18n-compliant applications.
+ 各種不同的語言與地區設定如何在作業系統上進行編碼。
+ 如何設定登入用的 shell 語系環境。/para>
+ 如何將你的 console 設為英語以外的語系設定。
+ 如何使用不同語系的設定,來讓 X Window 運作更親切。
+ 哪邊可以找到更多與 i18n 規格相容的應用程式規格資料。在開始閱讀這章之前,您需要︰
- Know how to install additional third-party
- applications ().
+ 知道如何以 ports/packages 來安裝應用程式()。L10N 基礎概念什麼是 I18N/L10N?internationalizationlocalizationlocalization
- Developers shortened internationalization into the term I18N,
- counting the number of letters between the first and the last
- letters of internationalization. L10N uses the same naming
- scheme, coming from localization. Combined
- together, I18N/L10N methods, protocols, and applications allow
- users to use languages of their choice.
-
- I18N applications are programmed using I18N kits under
- libraries. It allows for developers to write a simple file and
- translate displayed menus and texts to each language. We strongly
- encourage programmers to follow this convention.
+ 程式開發人員習慣把 internationalization 縮寫為 I18N,中間的數字 18 乃是最前與最後面字母之間的字母個數總和,
+ 而 L10N 也是以一樣的方式,是 localization 的縮寫。
+ 只要有符合 I18N/L10N 規格、協定的應用程式,就可以讓使用者依各自語系而作設定。
+
+ I18N 應用程式是以 I18N 開發工具來進行開發的,
+ 它可以讓程式開發人員透過寫簡單的文字檔,就可以把執行畫面上的選單、訊息翻譯為各語系的版本。
+ 我們強烈建議程式開發人員遵循這個遊戲規則。為何該使用 I18N/L10N?
- I18N/L10N is used whenever you wish to either view, input, or
- process data in non-English languages.
+ 只要有符合 I18N/L10N 標準,就可以輕鬆地看、輸入、處理非英文的資料。I18N 支援哪些語系?
- I18N 和 L10N 並非 FreeBSD 才有的,目前這世界上的幾乎任一主要語系都有支援,
+ I18N 和 L10N 並非 FreeBSD 所特有的,目前這世界上的幾乎任一主要語系都有支援,
像是:中文、德文、日文、韓文、法文、俄文、越南文等等。
- Using Localization
+ 使用語系設定(Localization)
- In all its splendor, I18N is not FreeBSD-specific and is a
- convention. We encourage you to help FreeBSD in following this
- convention.
+ I18N 和 L10N 並非 FreeBSD 所特有的,而是共通的遊戲規則。
+ 我們鼓勵你在 FreeBSD 世界中同樣遵守這項遊戲規則。locale
- Localization settings are based on three main terms:
- Language Code, Country Code, and Encoding. Locale names are
- constructed from these parts as follows:
+ Locale 設定由三個部分所組成:語言代碼(Language Code)、國碼(Country Code)、編碼(Encoding)。
+ 所以,Locale 的設定名稱就是由這三個一起組成:
- LanguageCode_CountryCode.Encoding
+ 語言代碼_國碼.編碼
- Language and Country Codes
+ 語言、國碼language codescountry codes
- In order to localize a FreeBSD system to a specific language
- (or any other I18N-supporting &unix; like systems), the user needs to find out
- the codes for the specify country and language (country
- codes tell applications what variation of given
- language to use). In addition, web
- browsers, SMTP/POP servers, web servers, etc. make decisions based on
- them. The following are examples of language/country codes:
+ 使用者必須要先知道這些特定的國碼、語言代碼(國碼會告訴應用程式該使用哪一種語言),
+ 才能讓 FreeBSD 或其他支援 I18N 的 &unix; 類系統作 locale 相關設定。
+ 此外,網頁瀏覽器(borwser)、SMTP/POP 主機、Web 主機等也都以這架構為主。
+ 下面是如何使用『語言代碼、國碼』的例子:
- Language/Country Code
- Description
+ 語言代碼/國碼
+ 簡介en_US
- English - United States
+ 英文(美國)ru_RU
- Russian for Russia
+ 俄文(俄國)zh_TW
- Traditional Chinese for Taiwan
+ 正體中文(台灣)
- Encodings
+ 編碼encodingsASCII
- Some languages use non-ASCII encodings that are 8-bit, wide
- or multibyte characters, see &man.multibyte.3; for more
- details. Older applications do not recognize them
- and mistake them for control characters. Newer applications
- usually do recognize 8-bit characters. Depending on the
- implementation, users may be required to compile an application
- with wide or multibyte characters support, or configure it correctly.
- To be able to input and process wide or multibyte characters, the FreeBSD Ports Collection has provided
- each language with different programs. Refer to the I18N
- documentation in the respective FreeBSD Port.
+ 有些語言並非採用 ASCII 編碼,可能是: 8-bit、wide
+ 或 multibyte 字元,詳情請參閱 &man.multibyte.3;。
+ 較古早的程式可能無法正確判別、或誤判為特殊控制字元。而較新的程式都可以辨認
+ 8-bit 字元。 由於各程式的作法不一,使用者可能需要在編譯程式時,加上
+ wide 或 multibyte 字元的支援設定,或是正確調整才行。
+ 要輸入、處理 wide 或 multibyte 字元的話,可多多利用 FreeBSD Ports Collection 內有各國語言版本的程式。
+ 詳情請參閱 FreeBSD 各 port 中的 I18N 相關文件。Specifically, the user needs to look at the application
documentation to decide on how to configure it correctly or to
pass correct values into the configure/Makefile/compiler.Some things to keep in mind are:Language specific single C chars character sets
(see &man.multibyte.3;), e.g.
ISO8859-1, ISO8859-15, KOI8-R, CP437.Wide or multibyte encodings, e.g. EUC, Big5.You can check the active list of character sets at the
IANA Registry.&os; use X11-compatible locale encodings instead.I18N ApplicationsIn the FreeBSD Ports and Package system, I18N applications
have been named with I18N in their names for
easy identification. However, they do not always support the
language needed.Setting LocaleUsually it is sufficient to export the value of the locale name
as LANG in the login shell. This could be done in
the user's ~/.login_conf file or in the
startup file of the user's shell (~/.profile,
~/.bashrc, ~/.cshrc).
There is no need to set the locale subsets such as
LC_CTYPE, LC_CTIME. Please
refer to language-specific FreeBSD documentation for more
information.You should set the following two environment variables in your configuration
files:POSIXLANG for &posix; &man.setlocale.3; family
functionsMIMEMM_CHARSET for applications' MIME character
setThis includes the user shell configuration, the specific application
configuration, and the X11 configuration.Setting Locale Methodslocalelogin classThere are two methods for setting locale, and both are
described below. The first (recommended one) is by assigning
the environment variables in login
class, and the second is by adding the environment
variable assignments to the system's shell startup file.Login Classes MethodThis method allows environment variables needed for locale
name and MIME character sets to be assigned once for every
possible shell instead of adding specific shell assignments to
each shell's startup file. User
Level Setup can be done by an user himself and Administrator Level Setup require
superuser privileges.User Level SetupHere is a minimal example of a
.login_conf file in user's home
directory which has both variables set for Latin-1
encoding:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:Traditional ChineseBIG-5 encodingHere is an example of a
.login_conf that sets the variables
for Traditional Chinese in BIG-5 encoding. Notice the many
more variables set because some software does not respect
locale variables correctly for Chinese, Japanese, and Korean.#Users who do not wish to use monetary units or time formats
#of Taiwan can manually change each variable
me:\
:lang=zh_TW.Big5:\
:lc_all=zh_TW.Big:\
:lc_collate=zh_TW.Big5:\
:lc_ctype=zh_TW.Big5:\
:lc_messages=zh_TW.Big5:\
:lc_monetary=zh_TW.Big5:\
:lc_numeric=zh_TW.Big5:\
:lc_time=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=xcin": #Setting the XIM Input ServerSee Administrator Level
Setup and &man.login.conf.5; for more details.Administrator Level SetupVerify that the user's login class in
/etc/login.conf sets the correct
language. Make sure these settings
appear in /etc/login.conf:language_name:accounts_title:\
:charset=MIME_charset:\
:lang=locale_name:\
:tc=default:So sticking with our previous example using Latin-1, it
would look like this:german:German Users Accounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Before changing users Login Classes execute
the following command&prompt.root; cap_mkdb /etc/login.confto make new configuration in
/etc/login.conf visible to the system.Changing Login Classes with &man.vipw.8;vipwUse vipw to add new users, and make
the entry look like this:user:password:1111:11:language:0:0:User Name:/home/user:/bin/shChanging Login Classes with &man.adduser.8;adduserlogin classUse adduser to add new users, and do
the following:Set defaultclass =
language in
/etc/adduser.conf. Keep in mind
you must enter a default class for
all users of other languages in this case.An alternative variant is answering the specified
language each time that
Enter login class: default []:
appears from &man.adduser.8;.Another alternative is to use the following for each
user of a different language that you wish to
add:&prompt.root; adduser -class languageChanging Login Classes with &man.pw.8;pwIf you use &man.pw.8; for adding new users, call it in
this form:&prompt.root; pw useradd user_name -L languageShell Startup File MethodThis method is not recommended because it requires a
different setup for each possible shell program chosen. Use
the Login Class Method
instead.MIMElocaleTo add the locale name and MIME character set, just set
the two environment variables shown below in the
/etc/profile and/or
/etc/csh.login shell startup files. We
will use the German language as an example below:In /etc/profile:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETOr in /etc/csh.login:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1Alternatively, you can add the above instructions to
/usr/share/skel/dot.profile (similar to
what was used in /etc/profile above), or
/usr/share/skel/dot.login (similar to
what was used in /etc/csh.login
above).For X11:In $HOME/.xinitrc:LANG=de_DE.ISO8859-1; export LANGOr:setenv LANG de_DE.ISO8859-1Depending on your shell (see above).Console SetupFor all single C chars character sets, set the correct
console fonts in /etc/rc.conf for the
language in question with:font8x16=font_name
font8x14=font_name
font8x8=font_nameThe font_name here is taken from
the /usr/share/syscons/fonts directory,
without the .fnt suffix.sysinstallkeymapscreenmapAlso be sure to set the correct keymap and screenmap for your
single C chars character set through
sysinstall (/stand/sysinstall
in &os; versions older than 5.2).
Once inside sysinstall, choose Configure, then
Console. Alternatively, you can add the
following to /etc/rc.conf:scrnmap=screenmap_name
keymap=keymap_name
keychange="fkey_number sequence"The screenmap_name here is taken
from the /usr/share/syscons/scrnmaps
directory, without the .scm suffix. A
screenmap with a corresponding mapped font is usually needed as a
workaround for expanding bit 8 to bit 9 on a VGA adapter's font
character matrix in pseudographics area, i.e., to move letters out
of that area if screen font uses a bit 8 column.If you have the moused daemon
enabled by setting the following
in your /etc/rc.conf:moused_enable="YES"then examine the mouse cursor information in the next
paragraph.mousedBy default the mouse cursor of the &man.syscons.4; driver occupies the
0xd0-0xd3 range in the character set. If your language uses this
range, you need to move the cursor's range outside of it. To enable
the workaround for &os;, add the following line to
/etc/rc.conf:mousechar_start=3The keymap_name here is taken from
the /usr/share/syscons/keymaps directory,
without the .kbd suffix. If you are
uncertain which keymap to use, you use can &man.kbdmap.1; to test
keymaps without rebooting.The keychange is usually needed to program
function keys to match the selected terminal type because
function key sequences cannot be defined in the key map.Also be sure to set the correct console terminal type in
/etc/ttys for all ttyv*
entries. Current pre-defined correspondences are:Character SetTerminal TypeISO8859-1 or ISO8859-15cons25l1ISO8859-2cons25l2ISO8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (VGA default)cons25US-ASCIIcons25wFor wide or multibyte characters languages, use the correct
FreeBSD port in your
/usr/ports/language
directory. Some ports appear as console while the system sees it
as serial vtty's, hence you must reserve enough vtty's for both
X11 and the pseudo-serial console. Here is a partial list of
applications for using other languages in console:LanguageLocationTraditional Chinese (BIG-5)chinese/big5conJapanesejapanese/kon2-16dot or
japanese/mule-freewnnKoreankorean/hanX11 SetupAlthough X11 is not part of the FreeBSD Project, we have
included some information here for FreeBSD users. For more
details, refer to the &xorg;
web site or whichever X11 Server you use.In ~/.Xresources, you can additionally
tune application specific I18N settings (e.g., fonts, menus,
etc.).Displaying FontsX11 True Type font serverInstall &xorg; server
(x11-servers/xorg-server)
or &xfree86; server
(x11-servers/XFree86-4-Server),
then install the language &truetype; fonts. Setting the correct
locale should allow you to view your selected language in menus
and such.Inputting Non-English CharactersX11 Input Method (XIM)The X11 Input Method (XIM) Protocol is a new standard for
all X11 clients. All X11 applications should be written as XIM
clients that take input from XIM Input servers. There are
several XIM servers available for different languages.Printer SetupSome single C chars character sets are usually hardware
coded into printers. Wide or multibyte
character sets require special setup and we recommend using
apsfilter. You may also convert the
document to &postscript; or PDF formats using language specific
converters.Kernel and File SystemsThe FreeBSD fast filesystem (FFS) is 8-bit clean, so it can be used
with any single C chars character set (see &man.multibyte.3;),
but there is no character set
name stored in the filesystem; i.e., it is raw 8-bit and does not
know anything about encoding order. Officially, FFS does not
support any form of wide or multibyte character sets yet. However, some
wide or multibyte character sets have independent patches for FFS
enabling such support. They are only temporary unportable
solutions or hacks and we have decided to not include them in the
source tree. Refer to respective languages' web sites for more
information and the patch files.DOSUnicodeThe FreeBSD &ms-dos; filesystem has the configurable ability to
convert between &ms-dos;, Unicode character sets and chosen
FreeBSD filesystem character sets. See &man.mount.msdos.8; for
details.Compiling I18N ProgramsMany FreeBSD Ports have been ported with I18N support. Some
of them are marked with -I18N in the port name. These and many
other programs have built in support for I18N and need no special
consideration.MySQLHowever, some applications such as
MySQL need to be have the
Makefile configured with the specific
charset. This is usually done in the
Makefile or done by passing a value to
configure in the source.Localizing FreeBSD to Specific LanguagesAndreyChernovOriginally contributed by Russian Language (KOI8-R Encoding)localizationRussianFor more information about KOI8-R encoding, see the KOI8-R References
(Russian Net Character Set).Locale SetupPut the following lines into your
~/.login_conf file:me:My Account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:See earlier in this chapter for examples of setting up the
locale.Console SetupAdd the following line
to your /etc/rc.conf file:mousechar_start=3Also, use following settings in
/etc/rc.conf:keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"For each ttyv* entry in
/etc/ttys, use
cons25r as the terminal type.See earlier in this chapter for examples of setting up the
console.Printer SetupprintersSince most printers with Russian characters come with
hardware code page CP866, a special output filter is needed
to convert from KOI8-R to CP866. Such a filter is installed by
default as /usr/libexec/lpr/ru/koi2alt.
A Russian printer /etc/printcap entry
should look like:lp|Russian local line printer:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:See &man.printcap.5; for a detailed description.&ms-dos; FS and Russian FilenamesThe following example &man.fstab.5; entry enables support
for Russian filenames in mounted &ms-dos; filesystems:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0The option selects the locale name
used, and sets the character conversion
table. To use the option, be sure to
mount /usr before the &ms-dos; partition
because the conversion tables are located in
/usr/libdata/msdosfs. For more
information, see the &man.mount.msdos.8; manual
page.X11 SetupDo non-X locale
setup first as described.If you use &xorg;,
install
x11-fonts/xorg-fonts-cyrillic
package.Check the "Files" section
in your /etc/X11/xorg.conf file.
The following
lines must be added before any other
FontPath entries:FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"If you use a high resolution video mode, swap the 75 dpi
and 100 dpi lines.To activate a Russian keyboard, add the following to the
"Keyboard" section of your
xorg.conf file.Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:toggle"Also make sure that XkbDisable is
turned off (commented out) there.For grp:caps_toggle
the RUS/LAT switch will be CapsLock.
The old CapsLock function is still
available via ShiftCapsLock (in LAT mode
only). For grp:toggle
the RUS/LAT switch will be Right Alt.
grp:caps_toggle does not work in
&xorg; for unknown reason.If you have &windows; keys on your keyboard,
and notice that some non-alphabetical keys are mapped
incorrectly in RUS mode, add the following line in your
xorg.conf file.Option "XkbVariant" ",winkeys"The Russian XKB keyboard may not work with non-localized
applications.Minimally localized applications
should call a XtSetLanguageProc (NULL, NULL,
NULL); function early in the program.See
KOI8-R for X Window for more instructions on
localizing X11 applications.Traditional Chinese Localization for TaiwanlocalizationTraditional ChineseThe FreeBSD-Taiwan Project has an Chinese HOWTO for
FreeBSD at
using many Chinese ports.
Current editor for the FreeBSD Chinese HOWTO is
Shen Chuan-Hsing statue@freebsd.sinica.edu.tw.
Chuan-Hsing Shen statue@freebsd.sinica.edu.tw has
created the
Chinese FreeBSD Collection (CFC) using FreeBSD-Taiwan's
zh-L10N-tut. The packages and the script files
are available at .German Language Localization (for All ISO 8859-1
Languages)localizationGermanSlaven Rezic eserte@cs.tu-berlin.de wrote a
tutorial how to use umlauts on a FreeBSD machine. The tutorial
is written in German and available at
.Japanese and Korean Language LocalizationlocalizationJapaneselocalizationKoreanFor Japanese, refer to
,
and for Korean, refer to
.Non-English FreeBSD DocumentationSome FreeBSD contributors have translated parts of FreeBSD to
other languages. They are available through links on the main site or in
/usr/share/doc.
diff --git a/zh_TW.Big5/books/handbook/ports/chapter.sgml b/zh_TW.Big5/books/handbook/ports/chapter.sgml
index d3c8b7ed44..9144a10407 100644
--- a/zh_TW.Big5/books/handbook/ports/chapter.sgml
+++ b/zh_TW.Big5/books/handbook/ports/chapter.sgml
@@ -1,1332 +1,1334 @@
軟體套件管理篇:Packages 及 Ports 機制概述portspackages儘管 FreeBSD 在 base system 已加了很多系統工具。
然而,在實務運用上,您可能仍需要安裝額外的軟體。
FreeBSD 提供了 2 種安裝應用程式的套件管理系統︰Ports Collection(以 soucre 來編譯、安裝) 和
package(預先編譯好的 binary 檔)。上述的方式,無論要用哪一種,都可以由像是 CDROM
等或網路上來安裝想裝的最新版軟體。讀完這章,您將了解:如何以 packages 來安裝軟體。如何以 ports 來安裝軟體。已安裝的 packages 或 ports 要如何移除。如何更改(override) ports collection 所使用的預設值。如何在套件管理系統中,找出想裝的軟體。如何升級已安裝的軟體。安裝軟體的各種方式介紹通常要在 &unix; 系統上安裝軟體時,有幾個步驟要作:先下載該軟體壓縮檔(tarball),有可能是原始碼或是 binary 執行檔。解開該壓縮檔。(通常是以 &man.compress.1; , &man.gzip.1; 或 &man.bzip2.1; 壓縮的)閱讀相關文件檔,以了解如何安裝。(通常檔名是 INSTALL 或
README, 或在 doc/ 目錄下的一些文件)如果所下載的是原始碼,可能要先修改 Makefile 或是執行
./configure 之類的 script ,接著再編譯該軟體。最後測試再測試與安裝。如果一切順利的話,就這麼簡單。如果在安裝非專門設計(移植)給 FreeBSD 的軟體時出問題,
那可能需要修改一下它的程式碼,才能正常使用。當然,我們可以在 FreeBSD 上使用上述的傳統方式來安裝軟體,但是,我們還有更簡單的選擇。
FreeBSD 提供了兩種省事的軟體管理機制: packages 和 ports。就在寫這篇文章的時候,
已經有超過 &os.numports; 個 port 軟體可以使用。所謂的 FreeBSD package 就是別人把該應用程式編譯、打包完畢。
該 package 會包括該應用程式的所有執行檔、設定檔、文件等。
而下載到硬碟上的 package 都可透過 FreeBSD 套件管理指令來進行管理,比如:
&man.pkg.add.1;、&man.pkg.delete.1;、&man.pkg.info.1;等指令。
所以,只需簡單打個指令就可輕鬆安裝新的應用程式了。而 FreeBSD port 則是用一些檔案,來自動處理應用程式的安裝流程。Remember that there are a number of steps you would normally
carry out if you compiled a program yourself (downloading,
unpacking, patching, compiling, installing). The files that
make up a port contain all the necessary information to allow
the system to do this for you. You run a handful of simple
commands and the source code for the application is
automatically downloaded, extracted, patched, compiled, and
installed for you.事實上,ports 機制還可以用來產生 packages,以便他人可以用
pkg_add 來安裝,或是稍後會介紹到的其他套件管理指令。Both packages and ports understand
dependencies. Suppose you want to install
an application that depends on a specific library being
installed. Both the application and the library have been made
available as FreeBSD ports and packages. If you use the
pkg_add command or the ports system to add
the application, both will notice that the library has not been
installed, and automatically install the library first.Given that the two technologies are quite similar, you might
be wondering why FreeBSD bothers with both. Packages and ports
both have their own strengths, and which one you use will depend
on your own preference.Package 好處在於:A compressed package tarball is typically smaller than
the compressed tarball containing the source code for the
application.Packages do not require any additional compilation. For
large applications, such as
Mozilla,
KDE, or
GNOME this can be important,
particularly if you are on a slow system.Packages do not require any understanding of the process
involved in compiling software on FreeBSD.Ports 好處在於:Packages are normally compiled with conservative options,
because they have to run on the maximum number of systems. By
installing from the port, you can tweak the compilation options to
(for example) generate code that is specific to a Pentium
IV or Athlon processor.Some applications have compile time options relating to
what they can and cannot do. For example,
Apache can be configured with a
wide variety of different built-in options. By building
from the port you do not have to accept the default options,
and can set them yourself.In some cases, multiple packages will exist for the same
application to specify certain settings. For example,
Ghostscript is available as a
ghostscript package and a
ghostscript-nox11 package, depending on
whether or not you have installed an X11 server. This sort
of rough tweaking is possible with packages, but rapidly
becomes impossible if an application has more than one or
two different compile time options.The licensing conditions of some software distributions forbid
binary distribution. They must be distributed as source
code.Some people do not trust binary distributions. At least
with source code, you can (in theory) read through it and
look for potential problems yourself.If you have local patches, you will need the source in order to
apply them.Some people like having code around, so they can read it
if they get bored, hack it, borrow from it (license
permitting, of course), and so on.To keep track of updated ports, subscribe to the
&a.ports; and the &a.ports-bugs;.在安裝軟體前,最好先看 內是否有該軟體的安全漏洞通報。
此外,也可以裝 security/portaudit,它會自動檢查所有已裝的
的軟體是否有已知的安全漏洞,另外,它還會在裝軟體的編譯過程前先行檢查。
也可以在裝了某些軟體之後,用 portaudit -F -a
來作全面強制安檢。The remainder of this chapter will explain how to use
packages and ports to install and manage third party software on
FreeBSD.尋找想裝的軟體在安裝任何軟體之前,你必須先了解你想要什麼的軟體,以及該軟體叫做什麼名稱。FreeBSD 上可裝的軟體清單不斷在增加中,
不過,我們很慶幸有幾種方式可以來找你想裝的軟體:FreeBSD 網站上有更新頻繁的軟體清單,在
http://www.FreeBSD.org/ports/。
各 ports 皆依其性質而分門別類,and you may either
search for an application by name (if you know it), or see
all the applications available in a category.FreshPortsDan Langille 維護 FreshPorts 網站,網址在 。 FreshPorts
tracks changes to the applications in the ports tree as they
happen, allows you to watch one or more
ports, and can send you email when they are updated.FreshMeatIf you do not know the name of the application you want,
try using a site like FreshMeat () to find an
application, then check back at the FreeBSD site to see if
the application has been ported yet.If you know the exact name of the port, but just need to
find out which category it is in, you can use the
&man.whereis.1; command.
Simply type whereis
file, where
file is the program you want to
install. If it is found on your system, you will be told
where it is, as follows:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofThis tells us that lsof (a system
utility) can be found in the
/usr/ports/sysutils/lsof
directory.Yet another way to find a particular port is by using the
Ports Collection's built-in search mechanism. To use the
search feature, you will need to be in the
/usr/ports directory. Once in that
directory, run make search
name=program-name where
program-name is the name of the
program you want to find. For example, if you were looking
for lsof:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps: The part of the output you want to pay particular
attention to is the Path: line, since that
tells you where to find the port. The other information
provided is not needed in order to install the port, so it
will not be covered here.For more in-depth searching you can also use make
search key=string where
string is some text to search for.
This searches port names, comments, descriptions and
dependencies and can be used to find ports which relate to a
particular subject if you do not know the name of the program
you are looking for.In both of these cases, the search string is case-insensitive.
Searching for LSOF will yield the same results as
searching for lsof.ChernLeeContributed by 使用 Packages 管理機制Package 的安裝方式packagesinstallingpkg_add可以用 &man.pkg.add.1; 從本機上或者透過網路來安裝任一 FreeBSD package。手動下載、安裝 Package (譯者chinsan: 這方法比較不便,建議改用 pkg_add -r )&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzIf you do not have a source of local packages (such as a
FreeBSD CD-ROM set) then it will probably be easier to use the
option to &man.pkg.add.1;. This will
cause the utility to automatically determine the correct
object format and release and then fetch and install the
package from an FTP site.
pkg_add&prompt.root; pkg_add -r lsofThe example above would download the correct package and
add it without any further user intervention.
If you want to specify an alternative &os; Packages Mirror,
instead of the main distribution site, you have to set
PACKAGESITE accordingly, to
override the default settings. &man.pkg.add.1;
uses &man.fetch.3; to download the files, which honors various
environment variables, including
FTP_PASSIVE_MODE, FTP_PROXY, and
FTP_PASSWORD. You may need to set one or more
of these if you are behind a firewall, or need to use an
FTP/HTTP proxy. See &man.fetch.3; for the complete list.
Note that in the example above
lsof is used instead of
lsof-4.56.4. When the remote fetching
feature is used, the version number of the package must be
removed. &man.pkg.add.1; will automatically fetch the latest
version of the application.&man.pkg.add.1; will download the latest version of
your application if you are using &os.current; or
&os.stable;. If you run a -RELEASE version, it will grab
the version of the package that was built with your
release. It is possible to change this behavior by
overriding the PACKAGESITE environment
variable. For example, if you run a &os; 5.4-RELEASE
system, by default &man.pkg.add.1; will try to fetch
packages from
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/.
If you want to force &man.pkg.add.1; to download
&os; 5-STABLE packages, set PACKAGESITE
to
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/.
Package files are distributed in .tgz
and .tbz formats. You can find them at ,
or on the FreeBSD CD-ROM distribution. Every CD on the
FreeBSD 4-CD set (and the PowerPak, etc.) contains packages
in the /packages directory. The layout
of the packages is similar to that of the
/usr/ports tree. Each category has its
own directory, and every package can be found within the
All directory.
The directory structure of the package system matches the
ports layout; they work with each other to form the entire
package/port system.
管理 Packagespackagesmanaging&man.pkg.info.1; is a utility that lists and describes
the various packages installed.
pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; is a utility that summarizes the
versions of all installed packages. It compares the package
version to the current version found in the ports tree.
pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...The symbols in the second column indicate the relative age
of the installed version and the version available in the
local ports tree.符號代表意義=The version of the
installed package matches the one found in the
local ports tree.<The installed version is older than the one available
in the ports tree.>The installed version is newer
than the one found in the local ports tree. (The local ports
tree is probably out of date.)?The installed package cannot be
found in the ports index. (This can happen, for instance, if an
installed port is removed from the Ports Collection or
renamed.)*There are multiple versions of the
package.移除已安裝的 Packagepkg_deletepackagesdeleting若要移除已裝的軟體,那麼請多利用 &man.pkg.delete.1; 工具,比如:
&prompt.root; pkg_delete xchat-1.7.1其他細節部份所有已裝的 package 資訊都會存到 /var/db/pkg 目錄內,
在該目錄下可以找到記載已裝的軟體檔案清單及該軟體簡介的檔案。
使用 Ports 管理機制下面我們會介紹如何使用 Ports Collection 來安裝、移除軟體的基本用法。
至於其他可用的 make 詳細用法與環境設定,可參閱 &man.ports.7;。記得安裝 Ports Collection在安裝任一 ports 之前,必須先裝上
Ports Collection —— 它主要是由 /usr/ports 內一堆
Makefiles, patches 以及一些軟體簡介檔所組成的。
在裝 FreeBSD 時,若忘了在 sysinstall 內勾選要裝 Ports Collection 的話,
沒關係,可以照下列方式來安裝 ports collection:CVSup 方式使用 CVSup 是安裝、更新 Ports Collection 的快速方法之一。
若想更瞭解 CVSup 用法的話,請參閱 使用 CVSup。第一次跑 CVSup 之前,請先確認 /usr/ports
是空的! 若你已經裝了 Ports Collection ,但又自行加上其他 patch 檔,那麼 CVSup
並不會刪除你自行加上的 patch 檔,這樣可能會導致要安裝某些軟體時,發生 patch 失敗或編譯失敗。安裝 net/cvsup-without-gui package:&prompt.root; pkg_add -r cvsup-without-gui細節用法請參閱 安裝 CVSup()。執行 cvsup:&prompt.root; cvsup -L 2 -h cvsup.tw.FreeBSD.org /usr/share/examples/cvsup/ports-supfile請把
cvsup.tw.FreeBSD.org 請改成離你比較近(快)的
CVSup Server。
這部分可以參閱完整的 CVSup mirror 站列表()。One may want to use his own
ports-supfile, for example to avoid
the need of passing the CVSup
server on the command line.In this case, as root, copy
/usr/share/examples/cvsup/ports-supfile
to a new location, such as
/root or your home
directory.Edit ports-supfile.Change
CHANGE_THIS.FreeBSD.org
to a CVSup server near
you. See CVSup
Mirrors () for
a complete listing of mirror sites.And now to run cvsup, use the
following:&prompt.root; cvsup -L 2 /root/ports-supfileRunning the &man.cvsup.1; command later will download and apply all
the recent changes to your Ports Collection, except
actually rebuilding the ports for your own system.Portsnap 方式&man.portsnap.8; is an alternative system for distributing the
Ports Collection. It was first included in &os; 6.0. On older
systems, you can install it from sysutils/portsnap port:&prompt.root; pkg_add -r portsnapPlease refer to Using Portsnap
for a detailed description of all Portsnap
features.Create an empty directory /usr/ports if it does not exists.&prompt.root; mkdir /usr/portsDownload a compressed snapshot of the Ports Collection into
/var/db/portsnap. You can
disconnect from the Internet after this step, if you wish.&prompt.root; portsnap fetchIf you are running Portsnap for the
first time, extract the snapshot into /usr/ports:
&prompt.root; portsnap extractIf you already have a populated /usr/ports and you are just updating,
run the following command instead:&prompt.root; portsnap updateSysinstall 方式This method involves using sysinstall
to install the Ports Collection from the installation media. Note
that the old copy of Ports Collection from the date of the release
will be installed. If you have Internet access, you should always
use one of the methods mentioned above.As root, run
sysinstall
(/stand/sysinstall in &os;
versions older than 5.2) as shown below:&prompt.root; sysinstallScroll down and select Configure,
press Enter.Scroll down and select
Distributions, press
Enter.Scroll down to ports, press
Space.Scroll up to Exit, press
Enter.Select your desired installation media, such as CDROM,
FTP, and so on.Scroll up to Exit and press
Enter.Press X to exit
sysinstall.Ports 的安裝方式portsinstallingThe first thing that should be explained when it comes to
the Ports Collection is what is actually meant by a
skeleton. In a nutshell, a port skeleton is a
minimal set of files that tell your FreeBSD system how to
cleanly compile and install a program. Each port skeleton
includes:A Makefile. The
Makefile contains various statements
that specify how the application should be compiled and
where it should be installed on your system.A distinfo file. This file
contains information about the files that must be
downloaded to build the port and their checksums, to
verify that files have not been corrupted during the
download using &man.md5.1;.A files directory. This
directory contains patches to make the program compile and
install on your FreeBSD system. Patches are basically
small files that specify changes to particular files.
They are in plain text format, and basically say
Remove line 10 or Change line 26 to
this .... Patches are also known as
diffs because they are generated by the
&man.diff.1; program.This directory may also contain other files used to build
the port.A pkg-descr file. This is a more
detailed, often multiple-line, description of the program.A pkg-plist file. This is a list
of all the files that will be installed by the port. It
also tells the ports system what files to remove upon
deinstallation.Some ports have other files, such as
pkg-message. The ports system uses these
files to handle special situations. If you want more details
on these files, and on ports in general, check out the FreeBSD Porter's
Handbook.The port includes instructions on how to build source
code, but does not include the actual source code. You can
get the source code from a CD-ROM or from the Internet.
Source code is distributed in whatever manner the software
author desires. Frequently this is a tarred and gzipped file,
but it might be compressed with some other tool or even
uncompressed. The program source code, whatever form it comes
in, is called a distfile. The two methods for
installing a &os; port are described below.You must be logged in as root to
install ports.Before installing any port, you should be sure to have
an up-to-date Ports Collection and you should check for security issues
related to your port.A security vulnerabilities check can be automatically
done by portaudit before any new
application installation. This tool can be found in the
Ports Collection (security/portaudit). Consider
running portaudit -F before installing a
new port, to fetch the current vulnerabilities database. A
security audit and an update of the database will be
performed during the daily security system check. For more
information read the &man.portaudit.1; and &man.periodic.8;
manual pages.The Ports Collection makes an assumption that you have a working
Internet connection. If you do not, you will need to put a copy of the
distfile into /usr/ports/distfiles
manually.To begin, change to the directory for the port you want to
install:&prompt.root; cd /usr/ports/sysutils/lsofOnce inside the lsof directory, you
will see the port skeleton. The next step is to compile, or
build, the port. This is done by simply
typing make at the prompt. Once you have
done so, you should see something like this:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
===> Extracting for lsof-4.57
...
[extraction output snipped]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[configure output snipped]
...
===> Building for lsof-4.57
...
[compilation output snipped]
...
&prompt.root;Notice that once the compile is complete you are
returned to your prompt. The next step is to install the
port. In order to install it, you simply need to tack one word
onto the make command, and that word is
install:&prompt.root; make install
===> Installing for lsof-4.57
...
[installation output snipped]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Once you are returned to your prompt, you should be able to
run the application you just installed. Since
lsof is a
program that runs with increased privileges, a security
warning is shown. During the building and installation of
ports, you should take heed of any other warnings that
may appear.It is a good idea to delete the working subdirectory,
which contains all the temporary files used during compilation.
Not only it consumes a valuable disk space, it would also cause
problems later when upgrading to the newer version of the port.&prompt.root; make clean
===> Cleaning for lsof-4.57
&prompt.root;You can save an extra step by just running make
install clean instead of make,
make install and make clean
as three separate steps.Some shells keep a cache of the commands that are
available in the directories listed in the
PATH environment variable, to speed up
lookup operations for the executable file of these
commands. If you are using one of these shells, you might
have to use the rehash command after
installing a port, before the newly installed commands can
be used. This command will work for shells like
tcsh. Use the hash -r
command for shells like sh. Look at the
documentation for your shell for more information.Some third party DVD-ROM products such as the FreeBSD Toolkit
from the FreeBSD
Mall contain distfiles. They can be used with the Ports
Collection. Mount the DVD-ROM on /cdrom. If
you use a different mount point, set CD_MOUNTPTS
make variable. The needed distfiles will be automatically used
if they are present on the disk.Please be aware that the licenses of a few ports do
not allow for inclusion on the CD-ROM. This could be
because a registration form needs to be filled out before
downloading or redistribution is not allowed, or for
another reason. If you wish to install a port not
included on the CD-ROM, you will need to be online in
order to do so.The ports system uses &man.fetch.1; to download the
files, which honors various environment variables, including
FTP_PASSIVE_MODE, FTP_PROXY,
and FTP_PASSWORD. You may need to set one or
more of these if you are behind a firewall, or need to use
an FTP/HTTP proxy. See &man.fetch.3; for the complete
list.For users which cannot be connected all the time, the
make fetch option is
provided. Just run this command at the top level directory
(/usr/ports) and the required files
will be downloaded for you. This command will also work in
the lower level categories, for example:
/usr/ports/net.
Note that if a port depends on libraries or other ports this will
not fetch the distfiles of those ports too.
Replace fetch with
fetch-recursive
if you want to fetch all the dependencies of a port too.You can build all the ports in a category or as a
whole by running make in the top level
directory, just like the aforementioned make
fetch method. This is
dangerous, however, as some ports cannot co-exist. In other
cases, some ports can install two different files with the
same filename.In some rare cases, users may need to acquire the
tarballs from a site other than the
MASTER_SITES (the location where files
are downloaded from). You can override the
MASTER_SITES option with the following
command:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIn this example we change the
MASTER_SITES option to ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.Some ports allow (or even require) you to provide
build options which can enable/disable parts of the
application which are unneeded, certain security options,
and other customizations. A few which come to mind are
www/mozilla, security/gpgme, and mail/sylpheed-claws. A message
will be displayed when options such as these are
available.更改(Override)預設的 Ports 目錄Sometimes it is useful (or mandatory) to use a different
distfiles and ports directory. The
PORTSDIR and PREFIX
variables can override the default directories. For
example:&prompt.root; make PORTSDIR=/usr/home/example/ports installwill compile the port in
/usr/home/example/ports and install
everything under /usr/local.&prompt.root; make PREFIX=/usr/home/example/local installwill compile it in /usr/ports and
install it in
/usr/home/example/local.And of course,&prompt.root; make PORTSDIR=../ports PREFIX=../local installwill combine the two (it is too long to completely write
on this page, but it should give you the general
idea).Alternatively, these variables can also be set as part
of your environment. Read the manual page for your shell
for instructions on doing so.Dealing with imakeSome ports that use imake (a part of
the X Window System) do not work well with
PREFIX, and will insist on installing
under /usr/X11R6. Similarly, some Perl
ports ignore PREFIX and install in the
Perl tree. Making these ports respect
PREFIX is a difficult or impossible
job.移除已安裝的 PortsportsremovingNow that you know how to install ports, you are probably
wondering how to remove them, just in case you install one and
later on decide that you installed the wrong port.
We will remove our previous example (which was
lsof for
those of you not paying attention). Ports are being removed exactly
the same as the packages (discussed in the Packages section), using the
&man.pkg.delete.1; command:&prompt.root; pkg_delete lsof-4.57升級已安裝的 Portsportsupgrading
- First, list outdated ports that have a newer version available in
- the Ports Collection with the &man.pkg.version.1; command:
+ 首先,用 &man.pkg.version.1; 指令來列出目前 Ports Collection 中提供了那些可升級的 port 版本:&prompt.root; pkg_version -v
-
- Once you updated your Ports Collection, before
- attempting a port upgrade, you should check the
- /usr/ports/UPDATING file. This file
- describes various issues and additional steps users may
- encounter and need to perform when updating a port.
-
+
+ /usr/ports/UPDATING
+
+ 每次更新完 Ports Collection 之後,請務必記得在升級 port 前,
+ 先看看 /usr/ports/UPDATING,
+ 這裡會寫升級方面的各式問題,比如:檔案格式改變、變更設定檔位置、與舊版不相容的問題等,
+ 以及怎麼解決的完整步驟。
+
+ 若 UPDATING 內容與你看到的其他文件有些不同、相衝的話,
+ 那麼以 UPDATING 為主。
+ 以 Portupgrade 來升級已安裝的 Portsportupgradeportupgrade 可以輕鬆升級已裝的軟體。
該工具可從 sysutils/portupgrade port 安裝,
安裝方式就如同其他 port 一樣,用 make install clean 指令就可以了:&prompt.root; cd /usr/ports/sysutils/portupgrade
&prompt.root; make install clean
- Scan the list of installed ports with the pkgdb
- -F command and fix all the inconsistencies it reports. It is
- a good idea to do this regularly, before every upgrade.
+ 首先最好先以 pkgdb -F 來掃瞄已裝的 ports 資料庫是否有誤,並修正有問題的地方。
+ 在每次做升級之前,最好定期做一下 pkgdb -F 動作會較為妥當。When you run portupgrade -a,
portupgrade will begin to upgrade all the
outdated ports installed on your system. Use the
flag if you want to be asked for confirmation of every individual
upgrade.&prompt.root; portupgrade -aiIf you want to upgrade only a
certain application, not all available ports, use portupgrade
pkgname. Include the
flag if portupgrade
should first upgrade all the ports required by the given
application.&prompt.root; portupgrade -R firefoxTo use packages instead of ports for installation, provide
flag. With this option
portupgrade searches
the local directories listed in PKG_PATH, or
fetches packages from remote site if it is not found locally.
If packages can not be found locally or fetched remotely,
portupgrade will use ports.
To avoid using ports, specify .&prompt.root; portupgrade -PR gnome2To just fetch distfiles (or packages, if
is specified) without building or
installing anything, use .
For further information see &man.portupgrade.1;.以 Portmanager 來升級已安裝的 PortsportmanagerPortmanager 也可以用來輕鬆升級已裝的軟體。
該工具可從 sysutils/portmanager port 安裝:&prompt.root; cd /usr/ports/sysutils/portmanager
&prompt.root; make install clean所有已裝的軟體,都可以輕鬆用類似下列指令來升級:&prompt.root; portmanager -u此外,使用參數可以改為 ,如此一來 Portmanager
在升級一些有特殊選項的軟體時,就會詢問該如何升級。
Portmanager 也可以用來裝新 port。與以往常用的
make install clean 指令不同之處在於:它會先升級你要裝的 port 所相依的所有 ports,
然後才開始編譯、安裝要裝的 port。&prompt.root; portmanager x11/gnome2若要裝的 port 之軟體相依關係有問題時,也可以用 Portmanager
使它們重歸正軌。而 Portmanager 解決相依問題完畢之後,該 port
也會重新編譯,以因應正確的相依關係。&prompt.root; portmanager graphics/gimp -f其他運用方式,請參閱
Portmanager 的線上手冊。Ports 與硬碟空間portsdisk-space因為使用 Ports Collection 遲早可能會用光硬碟空間,
所以在裝完軟體後,記得要以 make clean
指令來清除臨時的 work 目錄。
此外,可以用下列指令來清除整個 Ports Collection 內的臨時目錄:&prompt.root; portsclean -CYou will accumulate a lot of old source distribution files in the
distfiles directory over time.
You can remove them by hand, or you can use the following command to
delete all the distfiles that are no longer referenced by any
ports:&prompt.root; portsclean -DThe portsclean utility is part of the
portupgrade suite.Do not forget to remove the installed ports once you no longer need
them. A nice tool to help automate this task is available from the
sysutils/pkg_cutleaves port.安裝之後,有什麼後續注意事項嗎?通常,安裝完軟體後,我們可以閱讀所附的一些文件,或需要編輯設定檔,
來確保這個軟體能順利運作,或在機器開機的時候啟動(如果是 daemon 的話)等等。不同的軟體會有不同的設定步驟。不管怎樣,如果裝好了軟體,
但是不知道下一步怎麼辦的時候, 可以試試看這些小技巧:善用 &man.pkg.info.1; ,這指令可以顯示:透過套件管理系統(Packages/Ports)裝了哪些軟體、檔案裝在哪邊。舉例來說,若剛裝了 FooPackage (版本 1.0.0),那麼下面這指令:&prompt.root; pkg_info -L foopackage-1.0.0 | less就會顯示這軟體所安裝的檔案清單。 Pay
special attention to files in man/
directories, which will be manual pages,
etc/ directories, which will be
configuration files, and doc/, which
will be more comprehensive documentation.If you are not sure which version of the application was
just installed, a command like this&prompt.root; pkg_info | grep -i foopackagewill find all the installed packages that have
foopackage in the package name.
Replace foopackage in your
command line as necessary.Once you have identified where the application's manual
pages have been installed, review them using &man.man.1;.
Similarly, look over the sample configuration files, and any
additional documentation that may have been provided.If the application has a web site, check it for
additional documentation, frequently asked questions, and so
forth. If you are not sure of the web site address it may
be listed in the output from&prompt.root; pkg_info foopackage-1.0.0A WWW: line, if present, should provide a URL
for the application's web site.Ports that should start at boot (such as Internet
servers) will usually install a sample script in
/usr/local/etc/rc.d. You should
review this script for correctness and edit or rename it if
needed. See Starting
Services for more information.如何處理爛掉(Broken)的 Ports?如果發現某個 port 無法順利安裝、運作, 有幾種方法可以試試看:從 Problem Report
資料庫 中挖寶看看,說不定已經有人送可用的 patch 上去囉,
那麼或許就可以順利解決問題哩。向該 port 的 maintainer 尋求協助:請打
make maintainer 或翻閱
Makefile 以查詢 maintainer 的
email address。記得寄信給 maintainer 時,要附註該 port 的名稱、版本(或是把 Makefile 內的 $FreeBSD: 那一整行附上) 以及相關錯誤訊息。有些 port 不是由專門的單一 maintainer 負責,而是透過 mailing
list 的專題討論。許多(但非全部)的聯絡 email 格式通常是
freebsd-list名稱@FreeBSD.org。發問時,請記得把『freebsd-list名稱』改為相關討論的 mailing list 名稱。尤其當 port 的 maintainer 欄位是
freebsd-ports@FreeBSD.org
時,事實上已經沒人當該 port maintainer 了。
因此若該 port 仍有修正或其他技術支援的話,相關討論都會在 freebsd-ports 郵遞論壇上出現。
喔,對了,如果有熟悉該軟體者,志願當該 port maintainer 的話,我們也都很歡迎您的加入喔。若 port maintainer 沒有回覆您的信件, 則可以用 &man.send-pr.1;
來提交問題報告 PR。(請參閱 Writing
FreeBSD Problem Reports)。試試看修正它吧! Porter's
Handbook 包括了 Ports
架構的細節部份,這些書中內容有助您修好有問題的 port 甚至提交自己的 port﹗從較近的 FTP 站點下載編譯好的 package。
package collection 的最上游站是在 ftp.FreeBSD.org 上的 packages
目錄內,但請記得先檢查是否已有 local mirror
站! 通常情況下這些 package 都可以直接使用,而且應該比自行編譯快一些。
用 &man.pkg.add.1; 即可順利安裝 package 。