---
title: 第 2 章 自行制作新 port
prev: books/porters-handbook/why-port
next: books/porters-handbook/quick-porting
showBookMenu: true
weight: 2
params:
  path: "/books/porters-handbook/own-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？ 太好了。

下面的内容将会提供一些创建FreeBSD port的指导。 如果想升级一个现有的 port， 那么您应该在看完这些内容并阅读 crossref:port-upgrading[port-upgrading,升级一个 port]。

因为这份文档不是十分详细， 您还应该再参考一下 [.filename]#/usr/ports/Mk/bsd.port.mk#， 所有 port 的 Makefile 文件都会包含它。 即使不是每天都去摆弄 Makefile， 您也会从那个文件里面获得很多知识， 里面的注释非常详细。 还有要补充一下，如果您有其它的问题， 可以给link:{freebsd-ports} 这个 mailing list 发信。

[NOTE]
====
在这份文档里提到的大部分的变量 (`_VAR_`) 是不能修改的。 大多 (但不是全部) 都在 [.filename]#/usr/ports/Mk/bsd.port.mk# 的开始部分进行了介绍； 其它一些也应该可以在那里找到。 注意这些文件使用了非标准的制表符： Emacs 和 Vim 应该能在打开文件的时候自动识别它， 而 man:vi[1] 和 man:ex[1] 则需要在打开文件的时候通过 `:set tabstop=4` 来修正默认的设置。
====

想练练手吗？ 请参阅我们的 http://wiki.freebsd.org/WantedPorts[希望移植的软件列表] 来看看您是否有兴趣完成其中的任务。 
