昨晚上跟新项目较劲的破事
昨儿半夜搞新项目部署,服务器死活报错,日志里蹦出来个"面纱模块版本不兼容"。我当场懵了:这玩意儿不是早八百年就装好了吗?赶紧打开终端敲命令查版本:
some_tool --version
屏幕冷冰冰弹出一行:v0.8.2-r3。心里咯噔一下,隐约记得官方社区早嚷嚷过升级了。摸出手机翻官方文档,首页大横幅明晃晃挂着"最新稳定版 v1.2.0",好家伙,我还在用上古版本!
踩坑踩出来的升级实录
头铁直接冲官网下新版安装包,运行安装脚本时报错"依赖库版本过低"。骂骂咧咧翻依赖文档,果然需要三个库升级:
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
- libA ≥ 5.7 (我的是5.5)
- libB ≥ 2.1.4 (我停留在2.0.3)
- libC == 3.0. (我装着3.1,反而太高)
掏出包管理器更新命令:
sudo package_mgr update libA libB
更新完发现libC还在3.1杵着。手动下载旧版源码编译安装:
- 解压
tar -xvf libC-3.0.*
- 跑配置
./configure --prefix=/usr/local
- 编译半小时
make -j4
- 3手抖输错路径装到临时目录,被迫重装第三次
被官方文档坑惨的配置
满以为万事大吉,新版本装完启动就崩。翻烂社区帖子才知道配置文件结构全改了。旧版长这样:
[server]
address=192.168.1.100 <-- 被废弃的写法
新版得拆成两行:
* = "192.168.1.100"
* = 8080 <-- 新增必填项
更绝的是日志路径配置项直接消失,改到用环境变量传参:
export LOG_DIR=/var/log/new_tool && ./bin/*
挖到宝藏参数
翻开发者discord群时挖到个文档里压根没写的参数:--skip-compat-check
。抱着死马当活马医的心态加上:
./bin/* --skip-compat-check --debug
终于看到服务正常启动!顺手在debug日志里发现个隐藏的监控端口,默认开在6061
,用浏览器打开居然是个实时性能面板。
血的教训
- 别信官方文档的安装指南!先扫一遍社区公告栏
- 升级前用
package_mgr list grep 组件名
把全家福版本抄纸上 - 老项目的配置文件千万别覆盖,先改名备份再新建
- 记得给终端开滚动条锁定,编译出错时才能翻回去看
现在看着跑得稳稳当当的v1.2.0,再瞅瞅垃圾桶里的三罐咖啡空瓶。下次再手贱升大版本我就是狗!(但截图上那个性能面板真香喂)