--- title: 章 2. 製作新的 Port prev: books/porters-handbook/porting-why next: books/porters-handbook/quick-porting showBookMenu: true weight: 2 params: path: "/books/porters-handbook/new-port/" --- [[own-port]] = 製作新的 Port :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: 2 :partnums: :source-highlighter: rouge :experimental: :images-path: books/porters-handbook/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] 開始對製作新的 port 或更新現有 port 有一些興趣了嗎?太好囉! 下面將介紹一些建立 port 時該注意的事項。如果是想升級現有的 port ,那麼也請參閱 crossref:upgrading[port-upgrading,Upgrading a Port] 說明。 因為這份文件可能講得不是十分詳細,可能需要參考 [.filename]#/usr/ports/Mk/bsd.port.mk# 這檔是所有 port 的 [.filename]#Makefile# 檔都會用到的。就算你不是每天不斷 hacking [.filename]#Makefile#,也可以也可以從中獲得很多相關知識。 此外,若有其他特定 port 的問題,也可以到 http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports[FreeBSD ports mailing list] 來獲得答案。 [NOTE] ==== 本文內所提及的環境變數 (`_VAR_`)部份, 只有一些可以替換(overridden)。大部份的環境變數(非全部)通常都會寫在 [.filename]#/usr/ports/Mk/bsd.port.mk# 內,其他的也是差不多。 請注意:該檔並非使用一般的 tab 設定值,而是採用 1 個 tab 等於 4 個 space。 Emacs 與 Vim 應該都會在載入該檔時順便讀取相關設定值。 man:vi[1] 及 man:ex[1] 這兩個程式也都可以打 `:set tabstop=4` 以修改設定值。 ==== 想要找簡單的開始上手嗎? 到 http://wiki.freebsd.org/WantedPorts[請求協助的 ports 清單] 瞧瞧,看看是否有你可以幫上忙的。