在FreeBSD中编译软件包

本文摘要FreeBSD是一个基于 Unix 的免费、强大、健壮、灵活和稳定的开源操作系统,它可以在多种 CPU 架构上运行,并且可以为服务器、台式机和某些定制的嵌入式系统提供基本平台,例如常见的防火墙 pfSense 和 OPNsense。FreeBSD 带有大量预编译软件包,这些软件包可以从存储库中简单地安装到系统中,这些软件包称为“Ports”。近期研究如何在 pfSense 下使用 Zerotier...

FreeBSD是一个基于 Unix 的免费、强大、健壮、灵活和稳定的开源操作系统,它可以在多种 CPU 架构上运行,并且可以为服务器、台式机和某些定制的嵌入式系统提供基本平台,例如常见的防火墙 pfSense 和 OPNsense。FreeBSD 带有大量预编译软件包,这些软件包可以从存储库中简单地安装到系统中,这些软件包称为“Ports”。

近期研究如何在 pfSense 下使用 Zerotier,但苦于作者只提供了软件包源码,并没有提供编译好的安装包,不得已只能自己搭建 FreeBSD 平台来编译这个软件包(在我编译完成后并发布到 github 后,作者随即更新了编译好的软件包 ^_^)。接下我把自己编译pFense-pkg-zerotier软件包的过程记录下来,供网友参考。

安装 FreeBSD

我是在虚拟机中安装 FreeBSD 13.0 版本的,安装方法可以参考官方的安装手册。基本上采用默认安装设置就行。由于是编译环境,我并没有安装 FreeBSD 的桌面环境。详细安装可以参考这篇文章

配置 FreeBSD

这一步主要解决 ssh 访问的问题。由于我是在虚拟机中进行的安装,需要解决文件上传和下载的问题,必须使用 ssh 来访问 FreeBSD。默认的 root 帐号并不能访问 ssh,需要对默认配置进行修改。

修改 /etc/ssh/sshd_config 文件,将 PermitRootLogin 选项从 no 改为 yes

# nano /etc/ssh/sshd_config

修改如下:

PermitRootLogin yes

修改 SSH 配置允许 Root 登录

然后重启 ssh 服务来应用更改。

# service sshd restart

要测试连接,可以使用以下命令从 MAC 或 Windows 下进行访问。

# ssh root@FreeBSD服务器的IP地址

我使用国产的 FinalShell 软件来进行 SSH 连接和访问 FreeBSD 文件后台。

编译软件包

下面我们开始编译 pfSense-pkg-zerotier 软件包。

克隆 FreeBSD Ports

配置完成后,我们首先要完整下载整个 FreeBSD Ports。这里注意,在安装 FreeBSD 时,确保配置的 IP 地址正确,并能正常访问外部网络。

以 root 用户登录系统,执行以下命令:

# git clone https://github.com/pfsense/FreeBSD-ports.git

整个过程视网络连接情况而定,一般 10-20 分钟左右完成。

修改配置文件

由于是未被官方正式支持的 Ports,需要修改 /etc/make.conf 文件,以便能正常编译。将以下内容添加到文件当中并保存。

ALLOW_UNSUPPORTED_SYSTEM=YES

复制源码文件

下载软件包源码并复制到 FreeBSD-ports/net/pfSense-pkg-zerotier 目录。

复制 pfSense-pkg-zerotier 源码文件到 ports 目录

运行编译命令

进入软件包目录

# cd /root/FreeBSD-ports/net/pfSense-pkg-zerotier

输入以下命令,开始编译。

# make clean ; make package

第一次编译需要几分钟时间,再次编译所需要时间就非常短了。

下载软件包

编译完成后,软件包保存在 /root/FreeBSD-ports/net/pfSense-pkg-zerotier/work/pkg 目录下,文件名为 pfSense-pkg-zerotier-0.00.1.pkg

编译完成的 pfSense-pkg-zerotier 软件包文件

如果需要在 pfSense 中配置 ZeroTier 网络,可以参考在 pfSense 中配置 ZeroTier 网络这篇文章。

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~