---
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 清單] 瞧瞧，看看是否有你可以幫上忙的。
