在FreeBSD上安装supervisor提示OS版本识别错误如何解决
FreeBSD安装supervisor报错解决方案
报错说明
安装时触发的完整报错如下:
make: "/usr/ports/Mk/bsd.port.mk" line 1175: Unable to determine OS version. Either define OSVERSION, install /usr/include/sys/param.h or define SRC_BASE.
报错原因是系统最小安装时默认没有装基础源码包,ports框架依赖的系统版本检测文件/usr/include/sys/param.h缺失导致。
解决方案
方案1:使用pkg二进制包安装(推荐,操作最简单)
该方法无需依赖ports环境和系统源码,执行以下命令即可完成安装:
- 先更新本地pkg源:
pkg update - 直接安装supervisor:
pkg install py39-supervisor
注意:包名中的py39对应系统默认Python大版本,可根据实际环境替换为py38/py310等对应版本号
方案2:修复ports依赖后编译安装
如果需要自定义编译参数走ports安装,按照以下步骤操作:
- 安装系统基础源码包,获取缺失的头文件:
执行命令调用系统自带工具安装源码:bsdinstall src,按照界面提示完成对应版本系统源码的安装即可。 - 验证头文件是否正常存在:
ls /usr/include/sys/param.h,有返回文件路径即表示安装成功。 - 回到supervisor的ports目录重新执行安装命令:
cd /usr/ports/sysutils/py-supervisor && make install clean
临时应急解决方法
如果不想安装完整源码包,可临时手动指定OSVERSION变量执行安装,命令如下:make OSVERSION=$(sysctl -n kern.osreldate) install clean
该配置仅对当前安装命令生效,后续安装其他ports包仍会触发相同报错,仅适合临时单次使用
内容的提问来源于stack exchange,提问作者Moritz Pfennig
相关产品推荐
相关产品推荐

