在 CentOS 下 LibreOffice(你写的 liboffice,一般叫 LibreOffice)报错,常见原因有:依赖缺失、字体问题、权限问题、版本不兼容、headless 模式配置错误等。下面按最常见场景给你一套排查和处理方法。
先运行:
libreoffice --version
或(headless 场景):
libreoffice --headless --convert-to pdf test.docx
把完整报错贴出来(尤其是 error, cannot, segfault, .so 相关)。
报错示例:
error while loading shared libraries: libXext.so.6
解决:
sudo yum install -y libreoffice-core libreoffice-writer libreoffice-calc
sudo yum groupinstall -y "X Window System"
sudo yum install -y cairo cups-libs libSM libICE
如果是最小化系统(无桌面):
sudo yum install -y libreoffice-headless
CentOS 7 默认是 5.x,很多新格式不支持。
✅ 建议升级:
sudo yum remove libreoffice*
然后安装官方 RPM:
wget https://download.documentfoundation.org/libreoffice/stable/24.2.5/rpm/x86_64/LibreOffice_24.2.5_Linux_x86_64_rpm.tar.gz
tar -xzf LibreOffice_24.2.5_Linux_x86_64_rpm.tar.gz
cd LibreOffice_24.2.5_Linux_x86_64_rpm/RPMS
sudo yum localinstall *.rpm
常见错误:
no suitable windowing environment found
解决:
libreoffice --headless --nofirststartwizard --convert-to pdf file.docx
或用:
soffice --headless --convert-to pdf file.docx
确保用户目录可写:
mkdir -p ~/.config/libreoffice
报错或生成 PDF 没字:
sudo yum install -y wqy-zenhei-fonts wqy-microhei-fonts
fc-cache -fv
export HOME=/tmp
libreoffice --headless --convert-to pdf file.docx
或:
chmod 777 /tmp
报错示例:
Java framework error
关闭 Java:
libreoffice --headless --convert-to pdf --writer
或:
sudo yum install -y java-1.8.0-openjdk
cat /etc/redhat-release)你可以直接把报错原文 + CentOS 版本 + 使用方式(桌面 / 命令行 / Java 调用)发给我,我可以精确告诉你是哪一行错了、该装哪个包。