关于修改软件依赖及游戏服务器Netcat依赖替换的技术问询
嘿,这个问题其实挺常见的——不少游戏服务器会硬依赖netcat这个默认命令名,但在Debian、Ubuntu这类发行版里,netcat通常是个软链接,默认指向的是openbsd变体,而你装的是netcat-traditional,自然会被服务器判定为“缺失依赖”。给你几个实用的解决思路:
用系统 alternatives 工具切换默认 Netcat 版本
很多Linux发行版用alternatives系统管理同类型软件的默认版本,你可以直接切换:
先运行命令查看可选的Netcat版本:sudo update-alternatives --config nc
或者如果有netcat的alternatives项,也可以用:sudo update-alternatives --config netcat
然后在弹出的选项里,输入对应netcat-traditional的编号(一般是2),回车确认就好。这样系统里的netcat和nc命令都会指向传统版,游戏服务器就能识别到了。手动创建软链接映射命令
如果alternatives没配置Netcat的选项,那就手动改软链接:- 先备份原来的
netcat链接(防止出问题能恢复):sudo mv /usr/bin/netcat /usr/bin/netcat.bak - 创建新的软链接指向传统版:
sudo ln -s /usr/bin/nc.traditional /usr/bin/netcat
这样游戏服务器调用netcat时,实际执行的就是你装的传统版了。
- 先备份原来的
直接修改游戏服务器的启动配置/脚本
要是担心切换全局Netcat版本影响其他程序,那可以单独给游戏服务器改命令:
找到游戏服务器的启动脚本(通常在/opt/[你的游戏服务器目录]或者/etc/init.d/里),用文本编辑器打开后,搜索netcat或者nc关键词,把对应的命令改成nc.traditional;如果是图形化配置界面,找找“依赖命令路径”之类的设置,替换成/usr/bin/nc.traditional就行。
注意:如果用前两种方法切换了全局Netcat版本,最好确认下其他依赖Netcat的程序会不会受影响——有些工具可能依赖openbsd版的特定参数,要是出问题,直接恢复备份的软链接或者用alternatives切回去就行。
备注:内容来源于stack exchange,提问作者santa20191 santa20191

