由于在高中时候听同学大吹特吹 FreeBSD 的好处后,高考后就在购入新服务器的 PVE 上部署了 FreeBSD 作为网络服务器(一些基础功能,比如 DNS过滤 ,MCSM 的 Web 面板 )和NAS服务器(ZFS特性),这篇文章用来记录使用陌生的 FreeBSD 遇到的难题。
注:看懂这篇文档需要具有较强的搜索能力和耐心,默认阅读这篇文档的人为开发人员和 FreeBSD 已经开始入门的使用者。
我们可以通过在 Linux 上部署 MCSM10 的经验来迁移到 FreeBSD 。MCSM10 使用 NodeJS 进行开发,由于 NodeJS 和 Java 一样具有跨平台特性,我们可以直接在 FreeBSD 上安装 Node 环境来运行 MCSM 。
首先我们需要部署 Node 环境。
# pkg install node
我们通过自带的包管理器安装 Node20 后,我们需要将 MCSM 的文件放入系统中(此处不讲解如何往 FreeBSD 上传文件)。找个自己喜欢的地方解压好文件,接下来就准备运行文件了。
$ cd /your-path/MCSM/daemon
# node app.js
这个时候 daemon 进程会报错,因为 MCSM Daemon 需要通过 file_zip 和 pty 来和系统打交道。但是双羽比较懒没给 FreeBSD 编译,需要我们自己去编译这两个文件。请理解下面每一行命令的意义,不要执行任何你不明白其意义的命令!
$ cd ~
(回家)
$ mkdir gittemp
(创建一个名叫 gittemp 的文件夹,别把家里搞得太乱)
$ cd gittemp
(切换工作目录到 gittemp )
# pkg install go git
(安装 go 和 git 包)
$ git clone https://github.com/MCSManager/PTY.git
(克隆 PTY 项目到本地)
$ git clone https://github.com/MCSManager/Zip-Tools.git
(克隆 Zip-Tools 项目到本地)
$ cd PTY
(切换工作目录到 PTY )
$ go mod download
(下载所有项目依赖)
$ go build
(编译)
$ mv ./pty /your-path/daemon/lib/pty_freebsd_x64
(重命名文件然后丢到 MCSM Daemon 目录下)
$ cd ../Zip-Tools
(切换工作目录到 Zip-Tools )
$ go mod download
(下载所有项目依赖)
$ go build
(编译)
$ mv ./file-zip /your-path/daemon/lib/file_zip_freebsd_x64
(重命名文件然后丢到 MCSM Daemon 目录下)
这个时候 daemon 进程就能运行起来了,web 进程一样的方法,但是不用和系统打交道所以不需要重新编译就可以运行。
但是这些程序只能运行在前台啊,我们该如何让 MCSM 在后台运行?这个时候我们需要 PM2管理器 来进程保活和开机自启动。
# pkg install npm
# npm install pm2
然后自己去看 PM2文档 ,我累了 bruh 。按照 Linux 方法就可以了,两个大差不差其实。你说什么?PM2安装太慢?换源去!