马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 Linux 服务器上跑文档转换,很多时候用的是 LibreOffice 的 headless 模式。本文记录一套在 CentOS 系机器上手动安装 LibreOffice 7.5.3.2 的完整流程:从官网下载、解压、卸载旧版、安装 rpm 包、补环境变量,到缺失 so 文件的处理、依赖库自行编译、软链接建立,以及中文缺失导致乱码的解决办法。
一、LibreOffice 的安装与验证
1. 从官网下载安装包
到 LibreOffice 官方下载页选择合适的版本,本文下载的是 7.5.3.2 的 rpm 包(x86_64)。官方旧版本归档目录下按版本号分目录存放,可以找到对应 rpm 压缩包。
2. 解压缩
tar -zxvf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz
解压后目录下会有一个 RPMS 子目录,里面的 rpm 文件就是要安装的包。
3. 卸载旧版本
sudo yum erase libreoffice\*
如果机器上之前装过旧版,先清空再加新版,避免文件互相覆盖导致启动异常。
4. 安装
yum install -y libSM.x86_64 libXrender.x86_64 libXext.x86_64
yum groupinstall -y "X Window System"
yum localinstall RPMS/*.rpm
# 或者
su -c "yum install *.rpm"
即将解压后文件夹 RPMS 下的所有 rpm 文件全部安装即可。注意 X Window System 这个包组是图形相关依赖,headless 环境下也建议一并装上,否则启动时可能报找不到显示相关库。
5. 环境变量设置
如果执行时提示 command not found,需要改文档设置,把下面两行追加到文件末尾即可:
vim /etc/profile
# libreoffice
export LibreOffice_PATH=/opt/libreoffice7.5/program
export PATH=$LibreOffice_PATH PATH
然后执行命令刷新缓存:
source /etc/profile
6. 验证 LibreOffice 是否可用
命令:
libreoffice7.5 --version
① 出现版本号(形如 LibreOffice 7.5.3.2 9f56dff12ba03b9acd7730a5a481eea045e468f3)表示正常执行并显示版本号,说明安装成功;② 若提示缺少 so 文件,需要安装对应的依赖文件。
7. 启动服务
/opt/libreoffice7.5/program/soffice --headless --accept="socket,host=127.0.0.1,port=2003;urp;" --nofirststartwizard &
headless 参数让它跑在后台无桌面模式,accept 那串定义了一个监听 127.0.0.1:2003 的 socket 接口,供后续程序调用转换服务,nofirststartwizard 跳过首次启动向导。
8. 验证文档转换
soffice --headless --convert-to pdf /home/usr/apache-tomcat-8.5.87/temp/文档.docx --outdir /home/usr/apache-tomcat-8.5.87/temp/
指定的 docx 会被转换成 pdf 输出到 --outdir 后面的目录。这条命令常用于把上传的 Office 文档统一转 PDF 归档。
二、依赖库的获取(异常 so 文件处理)
1. 先装常见依赖库
yum install cairo -y
yum install cups-libs -y
yum install libSM -y
在这些依赖库文件之中,libcurl.so.4 库文件的安装过程比较复杂,需要编译安装 libcurl 才能完成,单独说。
2. 安装 libcurl.so.4 库文件
- 下载 openssl 源代码(官方 GitHub 仓库有 1.1.1g 版本的 zip 包)。
- 创建安装目录:
mkdir /opt/openssl。
- 解压源码包:
unzip openssl-OpenSSL_1_1_1g.zip。
- 编译配置并安装:
cd openssl-OpenSSL_1_1_1g/
./config --prefix=/opt/openssl --shared
make && make install
- 下载 curl 源代码(官网下载页获取)。
- 创建安装目录:
mkdir /opt/libcurl。
- 解压源码压缩包:
tar -zxvf curl-8.7.1.tar.gz。
- 编译配置并安装:
cd curl-8.7.1
./configure --prefix=/opt/libcurl --with-ssl=/opt/openssl
make && make install
- 把 libcurl.so.4 库文件拷至 /opt/libreoffice7.5/program 目录下,覆盖原来的 libcurl.so.4:
cp /opt/libcurl/lib/libcurl.so.4 /opt/libreoffice7.5/program/libcurl.so.4
# 或
ln -s /opt/libcurl/lib/libcurl.so.4 /opt/libreoffice7.5/program/libcurl.so.4
3. 创建一个软链接
ln -s /opt/libreoffice7.5/program/soffice /usr/bin/libreoffice
# 或
ln -s /opt/libreoffice7.5/program/soffice /usr/local/lib64/libreoffice
常见异常示例与对应处理:
/opt/libreoffice7.5/program/soffice.bin: /lib64/libdbus-1.so.3: no version information available (required by /opt/libreoffice7.5/program/libmergedlo.so) —— dbus 相关,安装 cups-libs / dbus 后重试。
/opt/libreoffice7.5/program/soffice.bin: /lib64/libnss3.so: version `NSS_3.34' not found (required by /opt/libreoffice7.5/program/libcurl.so.4) —— 走上面编译 libcurl + openssl 的路子。
error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory —— 缺 openssl 1.1 的 so,把 /opt/openssl/lib 下的 libssl.so.1.1 拷到 /opt/libreoffice7.5/program/ 下。
error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory —— 同上,拷 /opt/openssl/lib 下的 libcrypto.so.1.1。
也就是说,缺哪个 so 就把对应编译产物的 so 拷进 program 目录,或者用 ln -s 做软链接指过去。
三、安装中文字体(中文乱码的处理)
转换文档出现方块或空白,多半是系统没装中文字体。
- 准备中文字体包(开源中文开源字体即可,例如常见的文泉驿、Noto Sans CJK 系列)。
- 解压到字体目录:
unzip fonts.zip -d /usr/share/fonts/
- 进入目录:
cd /usr/share/fonts
- 如果 fc 工具缺失就先装:
yum -y install fontconfig
- 如果没有 unzip 指令会报错,先装上:
yum install -y unzip zip # 安装 unzip / zip
- 执行字体索引操作,命令:
mkfontscale
如果报错说没有 mkfontscale,则需要先安装:
yum install mkfontscale # 安装
mkfontscale
mkfontdir
fc-cache
小结
LibreOffice 手动安装的核心链条是:下载 rpm 包 → 解压 → 卸载旧版 → 装 X 相关包组 → localinstall 全部 rpm → 配 PATH 并 source 刷新 → libreoffice7.5 --version 验收。跑不通时八成是少了 so 依赖,按报错缺哪个 so 就补哪个的思路,缺 libssl/libcrypto 走编译 openssl,缺 libcurl 走编译 openssl + curl,然后把 so 拷进 program 或用软链接指过去。最后别忘了补中文字体并跑 mkfontscale、mkfontdir、fc-cache,否则转换出来的文档中文全是乱码。
qidao123.com企服评测-应用市场 编辑提示:本文为站点编辑整理的 Linux 下 LibreOffice 手动安装与排错流程,命令已按原意规范化书写;文中未附任何外部下载链接,字体与源码请从各自官方渠道获取,本站不提供网盘转存或加好友送资料一类的服务。 |