FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 中文手册
  • 编辑日志
  • 译者说明
  • FreeBSD 中文手册
  • 概述
  • 前言
    • 致读者
    • 第四版
    • 第三版
    • 第二版(2004)
    • 第一版(2001)
    • 本书的组织结构
    • 本书中使用的一些约定
    • 致谢
  • 第一部分:快速开始
  • 第1章 简介
    • 1.1.概述
    • 1.2.欢迎来到 FreeBSD!
    • 1.3.关于 FreeBSD 项目
  • 第2章 安装 FreeBSD
    • 2.1.概述
    • 2.2.最低硬件要求
    • 2.3.安装前的准备工作
    • 2.4.开始安装
    • 2.5.使用 bsdinstall
    • 2.6.分配磁盘空间
    • 2.7.获取安装文件
    • 2.8.账户、时区、服务和安全
    • 2.9.故障排除
    • 2.10.使用 Live CD
  • 第3章 FreeBSD 基础
    • 3.1.概述
    • 3.2.虚拟控制台和终端
    • 3.3.用户和基本账户管理
    • 3.4.权限
    • 3.5.目录结构
    • 3.6.磁盘结构
    • 3.7.文件系统的挂载与卸载
    • 3.8.进程和守护进程
    • 3.9.Shell
    • 3.10.文本编辑器
    • 3.11.设备和设备节点
    • 3.12.手册页
  • 第4章 安装应用程序:软件包和 Ports
    • 4.1.概述
    • 4.2.软件安装的概述
    • 4.3.寻找所需的应用程序
    • 4.4.使用 pkg 管理二进制包
    • 4.5.使用 Ports
    • 4.6.使用 Poudriere 构建软件包
    • 4.7.安装后的注意事项
    • 4.8.如何处理损坏的 port
  • 第5章 X Window 系统
    • 5.1.概述
    • 5.2.安装 Xorg
    • 5.3.显卡驱动
    • 5.4.Xorg 配置
    • 5.5.在 X11 中使用字体
  • 第6章 FreeBSD 中的 Wayland
    • 6.1.简介
    • 6.2.Wayland 概述
    • 6.3.Wayfire 混成器
    • 6.4.Hikari 混成器
    • 6.5.Sway 混成器
    • 6.6.使用 Xwayland
    • 6.7.使用 VNC 进行远程连接
    • 6.8.Wayland 登录管理器
    • 6.9.实用工具
  • 第7章 网络
    • 7.1.概述
    • 7.2.设置网络
    • 7.3.有线网络
    • 7.4.无线网络
    • 7.5.主机名
    • 7.6.DNS
    • 7.7.故障排除
  • 第二部分:常见任务
  • 第8章 桌面环境
    • 8.1.概述
    • 8.2.桌面环境
    • 8.3.浏览器
    • 8.4.开发工具
    • 8.5.桌面办公应用
    • 8.6.文档阅读器
    • 8.7.财务
  • 第9章 多媒体
    • 9.1.概述
    • 9.2.设置声卡
    • 9.3.音频播放器
    • 9.4.视频播放器
    • 9.5.视频会议
    • 9.6.图像扫描仪
  • 第10章 配置 FreeBSD 内核
    • 10.1.概述
    • 10.2.为什么要构建定制内核
    • 10.3.浏览系统硬件
    • 10.4.配置文件
    • 10.5.构建并安装定制内核
    • 10.6.如果发生了错误
  • 第11章 打印
    • 11.1.快速入门
    • 11.2.连接打印机
    • 11.3.常见的页面描述语言(PDL)
    • 11.4.直接打印
    • 11.5.LPD(行式打印机程序)
    • 11.6.其他打印系统
  • 第12章 Linux 二进制兼容层
    • 12.1.概述
    • 12.2.配置 Linux 二进制兼容层
    • 12.3.Linux 用户空间
    • 12.4.高级主题
  • 第13章 WINE
    • 13.1.概述
    • 13.2.WINE 概述和概念
    • 13.3.在 FreeBSD 上安装 WINE
    • 13.4.在 FreeBSD 上运行第一个 WINE 程序
    • 13.5.配置 WINE 安装程序
    • 13.6.WINE 图形化用户管理界面
    • 13.7.多用户 FreeBSD 与 WINE
    • 13.8.FreeBSD 上的 WINE 常见问题
  • 第三部分:系统管理
  • 第14章 配置与优化
    • 14.1.概述
    • 14.2.配置文件
    • 14.3.管理 FreeBSD 中的服务
    • 14.4.Cron 和 Periodic
    • 14.5.配置系统日志
    • 14.6.电源和资源管理
    • 14.7.添加交换空间
  • 第15章 FreeBSD 的引导过程
    • 15.1.概述
    • 15.2.FreeBSD 的引导过程
    • 15.3.Device Hints
    • 15.4.关机流程
  • 第16章 安全
    • 16.1.概述
    • 16.2.简介
    • 16.3.账户安全
    • 16.4.入侵检测系统(IDS)
    • 16.5.安全等级
    • 16.6.文件标志位
    • 16.7.OpenSSH
    • 16.8.OpenSSL
    • 16.9.Kerberos
    • 16.10.TCP 封装器(TCP Wrapper)
    • 16.11.访问控制列表(ACL)
    • 16.12.Capsicum
    • 16.13.进程记账
    • 16.14.资源限制
    • 16.15.监控第三方安全问题
    • 16.16.FreeBSD 安全公告
  • 第17章 jail 与容器
    • 17.1.概述
    • 17.2.jail 的类型
    • 17.3.主机配置
    • 17.4.传统 jail(厚 jail)
    • 17.5.瘦 jail
    • 17.6.管理 jail
    • 17.7.更新 jail
    • 17.8.jail 资源限制
    • 17.9.jail 管理器与容器
  • 第18章 强制访问控制
    • 18.1.概述
    • 18.2.关键术语
    • 18.3.了解 MAC 标签
    • 18.4.规划安全配置
    • 18.5.可用的 MAC 策略
    • 18.6.用户锁定
    • 18.7.MAC Jail 中的 Nagios
    • 18.8.MAC 框架的故障排除
  • 第19章 安全事件审计
    • 19.1.概述
    • 19.2.关键术语
    • 19.3.审计配置
    • 19.4.使用审计跟踪
  • 第20章 存储
    • 20.1.概述
    • 20.2.添加磁盘
    • 20.3.调整和增加磁盘大小
    • 20.4.USB 存储设备
    • 20.5.创建和使用 CD
    • 20.6.创建和使用 DVD
    • 20.7.创建和使用软盘
    • 20.8.备份的基础知识
    • 20.9.内存盘
    • 20.10.文件系统快照
    • 20.11.磁盘配额
    • 20.12.加密磁盘分区
    • 20.13.加密交换分区
    • 20.14.高可用性存储(HAST)
  • 第21章 GEOM: 模块化磁盘转换框架
    • 21.1.概述
    • 21.2.RAID0——条带
    • 21.3.RAID1——镜像
    • 21.4.RAID3——带有专用奇偶校验的字节级条带
    • 21.5.软件 RAID 设备
    • 21.6.GEOM Gate 网络设备
    • 21.7.为磁盘设备添加卷标
    • 21.8.通过 GEOM 实现 UFS 日志
  • 第22章 Z 文件系统(ZFS)
    • 22.1.是什么使 ZFS 与众不同
    • 22.2.快速入门指南
    • 22.3.zpool 管理
    • 22.4.zfs 管理
    • 22.5.委托管理
    • 22.6.高级主题
    • 22.7.更多资源
    • 22.8.ZFS 特性和术语
  • 第23章 其他文件系统
    • 23.1.概述
    • 23.2.Linux® 文件系统
    • 23.3.Windows® 文件系统
    • 23.4.MacOS® 文件系统
  • 第24章 虚拟化
    • 24.1.概述
    • 24.2.使用 macOS® 上的 Parallels Desktop 安装 FreeBSD
    • 24.3.使用 macOS® 上的 VMware Fusion 安装 FreeBSD
    • 24.4.使用 VirtualBox™ 安装 FreeBSD
    • 24.5.在 FreeBSD 上安装 VirtualBox™
    • 24.6.使用 FreeBSD 上的 QEMU 虚拟化
    • 24.7.使用 FreeBSD 上的 bhyve 虚拟机
    • 24.8.基于 FreeBSD 的 Xen™ 虚拟机
  • 第25章 本地化——i18n/L10n 的使用和设置
    • 25.1.概述
    • 25.2.使用本地化
    • 25.3.寻找 i18n 应用程序
    • 25.4.特定语言的区域配置
  • 第26章 FreeBSD 更新与升级
    • 26.1.概述
    • 26.2.更新 FreeBSD
    • 26.3.更新 Bootcode
    • 26.4.更新文档
    • 26.5.追踪开发分支
    • 26.6.从源代码更新 FreeBSD
    • 26.7.多台机器的追踪
    • 26.8.在非 FreeBSD 主机上进行构建
  • 第27章 DTrace
    • 27.1.概述
    • 27.2.实现上的差异
    • 27.3.开启 DTrace 支持
    • 27.4.启用内核外部模块 DTrace
    • 27.5.使用 DTrace
  • 第28章 USB 设备模式/USB OTG
    • 28.1.概述
    • 28.2.USB 虚拟串行端口
    • 28.3.USB 设备模式网络接口
    • 28.4.USB 虚拟存储设备
  • 第四部分:网络通讯
  • 第29章 串行通信
    • 29.1.概述
    • 29.2.串行术语和硬件
    • 29.3.终端
    • 29.4.拨入服务
    • 29.5.拨出服务
    • 29.6.设置串行控制台
  • 第30章 PPP
    • 30.1.概述
    • 30.2.配置 PPP
    • 30.3.PPP 连接的故障排除
    • 30.4.使用以太网 PPP(PPPoE)
    • 30.5.使用 ATM 上的 PPP (PPPoA)
  • 第31章 电子邮件
    • 31.1.概述
    • 31.2.邮件组件
    • 31.3.DragonFly 邮件代理(DMA)
    • 31.4.Sendmail
    • 31.5.修改邮件传输代理
    • 31.6.邮件用户代理
    • 31.7.高级主题
  • 第32章 网络服务器
    • 32.1.概述
    • 32.2.inetd 超级服务器
    • 32.3.网络文件系统(NFS)
    • 32.4.网络信息系统(NIS)
    • 32.5.轻型目录访问协议(LDAP)
    • 32.6.动态主机设置协议(DHCP)
    • 32.7.域名系统(DNS)
    • 32.8.零配置网络(mDNS/DNS-SD)
    • 32.9.Apache HTTP 服务器
    • 32.10.文件传输协议(FTP)
    • 32.11.用于 Microsoft® Windows® 客户端的文件和打印服务(Samba)
    • 32.12.用 NTP 进行时钟同步
    • 32.13.iSCSI target 和 initiator 的配置
  • 第33章 防火墙
    • 33.1.概述
    • 33.2.防火墙的概念
    • 33.3.PF
    • 33.4.IPFW
    • 33.5.IPFILTER(IPF)
    • 33.6.Blacklistd
  • 第34章 高级网络
    • 34.1.概述
    • 34.2.网关和路由
    • 34.3.虚拟主机
    • 34.4.无线高级身份验证
    • 34.5.无线自组织(Ad-hoc)模式
    • 34.6.USB 网络共享
    • 34.7.蓝牙
    • 34.8.桥接
    • 34.9.链路聚合与故障转移
    • 34.10.使用 PXE 进行无盘操作
    • 34.11.共用地址冗余协议(CARP)
    • 34.12.VLAN
  • 第五部分:附录
  • 附录 A.获取 FreeBSD
    • A.1.镜像站
    • A.2.使用 Git
    • A.3.使用 Subversion
    • A.4.光盘
  • 附录 B.书目
    • B.1.FreeBSD 相关书籍
    • B.2.安全性参考文献
    • B.3.UNIX 历史
    • B.4.期刊与杂志
  • 附录 C.网络资源
    • C.1.网站
    • C.2.邮件列表
    • C.3.Usenet 新闻组
  • 附录 D.OpenPGP 密钥
    • D.1.官方成员
  • 术语表
  • 后记
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 4.5.1. 安装 Ports
  • 4.5.2. 安装 Ports
  • 4.5.2.1. 自定义 Ports 安装
  • 4.5.3. 移除已安装的 Ports
  • 4.5.4. 升级 Ports
  • 4.5.4.1. 升级和管理 Ports 的工具
  • 4.5.4.2. 使用 Portmaster 升级 Ports
  • 4.5.4.3. 使用 Portupgrade 升级 Ports
  • 4.5.5. Ports 与磁盘空间
在GitHub上编辑
导出为 PDF
  1. 第4章 安装应用程序:软件包和 Ports

4.5.使用 Ports

上一页4.4.使用 pkg 管理二进制包下一页4.6.使用 Poudriere 构建软件包

最后更新于6天前

Ports 是一组 Makefile、补丁和描述文件的。每一组文件用于在 FreeBSD 上编译并安装某个独立应用程序,被称为一个 port。

默认情况下,Ports 本身被存储在 /usr/ports 的子目录中。

警告

在安装和使用 Ports 之前,请注意:通常不建议将 Ports 与通过 pkg 提供的二进制软件包混用。pkg 默认跟踪的是 Ports 树的季度分支(quarterly branch),而不是 HEAD。某些 port 在 HEAD 中的依赖项,可能与其在季度分支中的不同,这可能会导致 pkg 安装的依赖项与 Ports 安装的依赖项之间产生冲突。如果必须同时使用 Ports 和 pkg,请确保它们使用的是同一分支版本的 Ports 树。

Ports 包含以软件类别划分的目录,每个类别目录中包含若干应用程序的子目录。每个应用程序的子目录包含一组告诉 FreeBSD 如何编译和安装该程序的文件,这组文件称为 port 骨架(ports skeleton)。每份 port 骨架包含以下文件和目录:

  • Makefile:包含指定如何编译应用程序以及将组件安装到何处的指令。

  • distinfo:包含构建该 port 所需下载文件的名称和校验和。

  • files/:此目录包含为了使程序能在 FreeBSD 上编译和安装所需的补丁;此外也可能包含构建该 port 所用的其他文件。

  • pkg-descr:提供程序的详细描述。

  • pkg-plist:列出该 port 安装的所有文件;它也告诉 Ports 系统在卸载时要删除哪些文件。

一些 port 还包含 pkg-message 或其他用于处理特殊情况的文件。有关这些文件以及 Ports 的更多信息,请参考 。

port 本身并不包含实际的源代码(也叫 distfile)。在构建 port 时的 extract 阶段会自动将下载的源代码保存到 /usr/ports/distfiles。

4.5.1. 安装 Ports

在通过 port 编译应用程序之前,必须先安装 Ports。如果在安装 FreeBSD 时未选择安装 Ports,可以使用以下方法来安装:

操作步骤:Git 方法

如果你需要对 ports 树有更多控制,或需要保留本地修改,或你正在使用 FreeBSD-CURRENT,可以使用 Git 获取 Ports。详细的 Git 使用说明请参考 。

我们在 Git 命令中加入 --depth 1 参数,以便在克隆时不获取提交历史,这样能节省时间,对于大多数用户而言已经足够。如果你对 ports 树有自己的修改,或出于其他需要需要保留历史记录,则可以省略下面命令中的 --depth 1 参数。

  1. 在使用 Git 克隆 ports 树之前,必须先安装 Git。如果系统上已经有 ports 树,可以通过以下方式安装 Git:

    # cd /usr/ports/devel/git
    # make install clean

    如果系统上没有 ports 树,或是使用 pkg 来管理软件包,也可以用 pkg 安装 Git:

    # pkg install git
  2. 克隆 ports 树的 HEAD 分支:

    # git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports
  3. 或者,克隆某个季度分支的 ports 树:

    # git clone --depth 1 https://git.FreeBSD.org/ports.git -b 2023Q1 /usr/ports
  4. 在完成首次 Git 克隆之后,如需更新 /usr/ports:

    # git -C /usr/ports pull
  5. 如需将 /usr/ports 切换到其他季度分支:

    # git -C /usr/ports switch 2023Q1

4.5.2. 安装 Ports

警告

使用 Ports 编译程序需要系统具备正常的网络连接,并且需要超级用户权限。

要编译并安装 port,先切换到目标 port 的目录下,然后输入 make install。屏幕上会显示安装进度信息:

# cd /usr/ports/sysutils/lsof
# make install
>> lsof_4.88D.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.88
...
[解压输出略]
...
>> Checksum OK for lsof_4.88D.freebsd.tar.gz.
===>  Patching for lsof-4.88.d,8
===>  Applying FreeBSD patches for lsof-4.88.d,8
===>  Configuring for lsof-4.88.d,8
...
[配置输出略]
...
===>  Building for lsof-4.88.d,8
...
[编译输出略]
...

===>  Installing for lsof-4.88.d,8
...
[安装输出略]
...
===>   Generating temporary packing list
===>   Compressing manual pages for lsof-4.88.d,8
===>   Registering installation for lsof-4.88.d,8
===>  SECURITY NOTE:
      This port has installed the following binaries which execute with
      increased privileges.
/usr/local/sbin/lsof
#

由于 lsof 是一款以提升权限运行的程序,因此在安装过程中会显示安全警告。安装完成后,系统会返回 shell 提示符。

某些 shell 会缓存 PATH 环境变量所列目录中的可执行命令列表,以加快命令查找速度。使用 tcsh 的用户应在安装新命令后输入 rehash,以便无需指定完整路径即可调用该命令;使用 sh 的用户应使用 hash -r。更多信息请参考各自的 shell 文档。

在安装过程中,系统会创建一个用于临时编译的子目录。删除该目录可以节省磁盘空间,并减少将来升级该 port 时可能出现的问题:

# make clean
===>  Cleaning for lsof-88.d,8
#

注意

若想省去这一步,可在编译时直接使用命令 make install clean。

4.5.2.1. 自定义 Ports 安装

技巧

使用 config-recursive 时,待配置的 port 列表由 all-depends-list 目标生成。建议重复运行 make config-recursive,直到所有依赖项的选项都已定义,且不再弹出配置界面,以确保所有依赖项的选项都已设置。

对于无法始终连接网络的用户,可以在 /usr/ports 中运行 make fetch 来下载所有 distfiles,也可以在某个类别目录(如 /usr/ports/net)或具体 port 目录中运行该命令。但请注意,如果该 port 有依赖项,则在分类或 port 目录中运行此命令 不会 下载其他分类中依赖项的 distfiles。如需同时下载所有依赖的 distfiles,请使用 make fetch-recursive。

在少数情况下,如组织有本地 distfiles 仓库,可使用 MASTER_SITES 变量来覆盖 Makefile 中指定的下载路径。例如:

# cd /usr/ports/directory
# make MASTER_SITE_OVERRIDE= \
ftp://ftp.organization.org/pub/FreeBSD/ports/distfiles/ fetch

WRKDIRPREFIX 和 PREFIX 变量可用来覆盖默认的构建目录和安装目录。例如:

# make WRKDIRPREFIX=/usr/home/example/ports install

将在 /usr/home/example/ports 下进行编译,并将程序安装到 /usr/local。

# make PREFIX=/usr/home/example/local install

将在 /usr/ports 下进行编译,并将程序安装到 /usr/home/example/local。再如:

# make WRKDIRPREFIX=../ports PREFIX=../local install

则会同时更改工作目录和安装目录。

这些变量也可以通过环境变量来设置。如何设置环境变量,请参考所使用 shell 的手册页。

4.5.3. 移除已安装的 Ports

另外,也可以在该 port 的目录中运行 make deinstall:

# cd /usr/ports/sysutils/lsof
# make deinstall
===>  Deinstalling for sysutils/lsof
===>   Deinstalling
Deinstallation has been requested for the following 1 packages:

	lsof-4.88.d,8

The deinstallation will free 229 kB
[1/1] Deleting lsof-4.88.d,8... done

建议在卸载 port 时阅读相关提示信息。如果该 port 有其他依赖它的程序,将会显示相关信息,但卸载过程仍将继续。在这种情况下,可能更好的做法是重新安装该程序,以避免依赖损坏。

4.5.4. 升级 Ports

随着时间推移,Ports 中的软件可能会有更新版本。本节说明如何判断哪些软件可以升级,以及如何执行升级操作。

# pkg version -l "<"

重要

在尝试升级之前,请阅读 /usr/ports/UPDATING 文件,从文件顶部阅读到离上一次升级 ports 或系统安装时间最近的日期。该文件描述了用户在升级 port 时可能遇到的各种问题和所需的额外步骤,例如文件格式变化、配置文件路径变更,或与旧版本不兼容等问题。请记录与需升级的 port 匹配的所有说明,并在执行升级时遵循这些指引。

4.5.4.1. 升级和管理 Ports 的工具

Ports Collection 提供了若干实用工具用于执行实际升级操作。每种工具都有其优点和局限。

以往大多数系统使用的是 Portmaster 和 Portupgrade。Synth 是一款较新的可选工具。

注意

应选择哪个工具由系统管理员根据具体情况决定。建议在使用任何这些工具之前先备份数据。

4.5.4.2. 使用 Portmaster 升级 Ports

# cd /usr/ports/ports-mgmt/portmaster
# make install clean

Portmaster 将 ports 分为以下四类:

  • 根 port(Root port):没有依赖,也不会被其他 ports 依赖。

  • 树干 port(Trunk port):没有依赖,但会被其他 ports 依赖。

  • 分支 port(Branch port):有依赖,且会被其他 ports 依赖。

  • 叶子 port(Leaf port):有依赖,但不会被其他 ports 依赖。

要列出这些类别并检查可用更新:

# portmaster -L
===>>> Root ports (No dependencies, not depended on)
===>>> ispell-3.2.06_18
===>>> screen-4.0.3
        ===>>> New version available: screen-4.0.3_1
===>>> tcpflow-0.21_1
===>>> 7 root ports
...
===>>> Branch ports (Have dependencies, are depended on)
===>>> apache22-2.2.3
        ===>>> New version available: apache22-2.2.8
...
===>>> Leaf ports (Have dependencies, not depended on)
===>>> automake-1.9.6_2
===>>> bash-3.1.17
        ===>>> New version available: bash-3.2.33
...
===>>> 32 leaf ports

===>>> 137 total installed ports
        ===>>> 83 have new versions available

要升级所有已过期的 ports:

# portmaster -a

注意

如果升级过程中出现错误,可加上 -f 强制升级并重建所有 ports:

# portmaster -af

Portmaster 也可以用于安装新的 ports,会在构建和安装新 port 之前先升级所有依赖项。示例如下:

# portmaster shells/bash

4.5.4.3. 使用 Portupgrade 升级 Ports

警告

Portupgrade 已被弃用,并将在不久后移除。

# cd /usr/ports/ports-mgmt/portupgrade
# make install clean

在使用此工具执行升级前,建议使用 pkgdb -F 扫描已安装的 ports 列表,并修复其报告的所有不一致问题。

要升级系统上所有过期的 ports,使用 portupgrade -a。或者,加上 -i 逐一确认每个升级:

# portupgrade -ai

若只想升级指定的程序,而不是所有可用 ports,使用 portupgrade pkgname。必须加上 -R 以先升级该程序所依赖的所有 ports:

# portupgrade -R firefox

加上 -P 后,Portupgrade 会在 PKG_PATH 中列出的本地目录中查找已有的包文件,若找不到,则尝试从远程站点获取。如果本地和远程都无法获取,则会使用 Ports 构建。若希望完全不使用 ports,请使用 -PP,该选项在找不到包时会直接中止:

# portupgrade -PP gnome3

若只想获取 port 的 distfiles 或包文件(若加了 -P),不进行构建或安装,可使用 -F。更多选项请参考 portupgrade 的手册页。

4.5.5. Ports 与磁盘空间

随着时间推移,使用 Ports 会逐渐占用磁盘空间。在构建并安装某 port 之后,在该 port 的目录中运行 make clean 可以清理临时的 work 目录。如果使用 Portmaster 安装 port,它默认会自动移除该目录,除非指定了 -K 选项。而如果已安装 Portupgrade,以下命令可以移除本地 Ports 副本中所有的 work 目录:

# portsclean -C

此外,过时的源代码分发文件(distfiles)会在 /usr/ports/distfiles 中逐渐堆积。若要删除所有不再被任何 port 引用的 distfile,可使用 Portupgrade 提供的命令:

# portsclean -D

Portupgrade 也可以移除系统中所有当前安装的 ports 不再引用的 distfile:

# portsclean -DD

若使用 Portmaster,可执行以下命令:

# portmaster --clean-distfiles

默认情况下,该命令是交互式的,会逐个询问用户是否删除某个 distfile。

本节介绍如何使用 Ports 安装或移除软件的基本方法。关于可用的 make 目标和环境变量的详细说明,请参阅 。

在编译任何 port 之前,请务必按照上一节中的说明更新 Ports。由于安装任何第三方软件都可能带来安全漏洞,建议事先在 上查看该 port 是否存在已知安全问题。或者,可以在安装新 port 之前运行 pkg audit -F。此命令也可以配置为在每日安全检查中自动执行安全审计并更新漏洞数据库。详见 和 。

某些 ports 提供构建选项,可用于启用或禁用应用程序组件、设置安全选项,或进行其他定制。例如 和 。如果该 port 依赖其他也提供可配置选项的 port,安装过程中可能会多次暂停并提示用户从菜单中选择选项。为避免多次交互并一次性完成所有配置,可在该 port 的目录中运行 make config-recursive。然后再执行 make install [clean] 以编译并安装该 port。

要在 port 构建后重新进入构建选项菜单,以便添加、删除或更改选项,有几种方法。一种是进入该 port 所在目录并输入 make config。另一种是使用 make showconfig 查看当前选项。还可以执行 make rmconfig 删除所有已选项,然后重新配置。这些方法及其他选项在 中有详细说明。

Ports 系统使用 下载源代码文件,它支持多种环境变量。如果 FreeBSD 系统处于防火墙或 FTP/HTTP 代理之后,可能需要设置 FTP_PASSIVE_MODE、FTP_PROXY 和 FTP_PASSWORD 等变量。完整变量列表请参考 。

已安装的 ports 可以使用 pkg delete 卸载。该命令的使用示例可见于 手册页。

要判断已安装的 ports 是否有新版本可用,首先确保使用 中描述的命令更新 ports 树。然后执行以下命令列出已过期的 ports:

是一个非常小巧的工具,用于升级已安装的 ports。它的设计目标是仅使用 FreeBSD 基系统中已有的工具,而不依赖其他 ports 或数据库。要通过 Ports 安装该工具:

默认情况下,Portmaster 会在删除旧版本 port 之前创建一个备份包。如果新版本安装成功,它会删除该备份。使用 -b 可以指示 Portmaster 不自动删除备份。加上 -i 可启用交互模式,升级每个 port 前询问用户确认。Portmaster 提供了许多其他选项,详情请阅读 手册页。

更多关于 的信息请参考其 pkg-descr。

是另一款用于升级 ports 的工具。它会安装一组应用程序,用于管理 ports。但该工具依赖 Ruby。要安装该 port:

更多关于 的信息可见其 pkg-descr。

除了以上命令之外, 可用于自动化清理那些不再需要的已安装 ports。

FreeBSD Porter’s Handbook
Git 入门指南
ports(7)
https://vuxml.freebsd.org/
pkg-audit(8)
periodic(8)
www/firefox
security/gpgme
ports(7)
fetch(1)
fetch(3)
pkg-delete(8)
Git 方法
ports-mgmt/portmaster
portmaster(8)
ports-mgmt/portmaster
ports-mgmt/portupgrade
ports-mgmt/portupgrade
ports-mgmt/pkg_cutleaves