Debian 9.4无头环境下运行meshlabserver过滤器失败求助
解决Debian 9.4上MeshLabServer导出过滤器列表时的段错误问题
我之前碰到过类似的情况,Debian 9官方软件源里的MeshLab版本存在插件加载的兼容性bug,尤其是那两个XML配置文件对应的插件,很容易触发段错误。下面是几个亲测有效的解决步骤:
1. 先尝试修复损坏的安装文件
首先可能是部分插件的XML文件损坏了,先重新安装MeshLab和它的服务端组件,修复所有可能的损坏文件:
sudo apt-get update sudo apt-get --reinstall install meshlab meshlab-server sudo apt-get install -f # 确保依赖都安装完整
重新安装后再运行你的命令试试,很多时候这就能解决问题。
2. 临时禁用有问题的插件
如果重新安装后还是报错,那直接把那两个出问题的插件临时禁用掉就行。先找到对应的插件文件:
ls /usr/lib/meshlab/plugins/*measure* /usr/lib/meshlab/plugins/*mutualinfo*
一般会看到libfilter_measure.so和libfilter_mutualinfo.so这两个文件,把它们移到临时目录:
sudo mkdir -p /tmp/meshlab-disabled-plugins sudo mv /usr/lib/meshlab/plugins/libfilter_measure.so /tmp/meshlab-disabled-plugins/ sudo mv /usr/lib/meshlab/plugins/libfilter_mutualinfo.so /tmp/meshlab-disabled-plugins/
然后再执行你的命令:
sudo xvfb-run -a -s "-screen 0 800x600x24" meshlabserver -d filters
跳过这两个有问题的插件后,应该就能成功导出过滤器列表了,后续如果需要用到这些插件再移回去就行。
3. 编译安装最新版MeshLab
如果上面的方法都没效果,那说明官方源里的版本太老了,bug还没修复。建议直接从源码编译最新版:
- 先装编译依赖:
sudo apt-get install build-essential cmake git libqt5opengl5-dev libqt5xmlpatterns5-dev libeigen3-dev libboost-all-dev libgmp-dev libmpfr-dev
- 克隆源码并初始化子模块:
git clone https://github.com/cnr-isti-vclab/meshlab.git cd meshlab git submodule update --init --recursive
- 编译安装:
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j$(nproc) # 用所有CPU核心加速编译 sudo make install
编译完成后,新版的meshlabserver应该能完美运行,不会再出现旧版本的插件加载问题。
4. 调整XVFB的运行参数
有时候XVFB的屏幕参数设置也可能导致问题,试试简化参数或者调整分辨率:
# 简化参数试试 sudo xvfb-run meshlabserver -d filters # 或者调整屏幕分辨率 sudo xvfb-run -a -s "-screen 0 1024x768x24" meshlabserver -d filters
说不定就能绕过这个问题。
内容的提问来源于stack exchange,提问作者Evan Levesque
相关产品推荐
相关产品推荐

