安装前准备
yum -y upgrade
yum install -y "@Standard" "@Development Tools"
yum install -y automake autoconf cups-devel fontconfig-devel gperf libxslt-devel python3-devel libXext-devel libICE-devel libSM-devel libXrender-devel xorg-x11-xauth x11* libX11 libXrandr-devel cairo-devel gtk3-devel gstreamer-devel gstreamer-plugins-base gstreamer1-* gstreamer* glibc-headers gcc-c++ fakeroot wget
cd /mnt/
mkdir -p libreoffice/dependence
useradd libreoffice |
nss与nspr编译安装
nspr编译安装
先从官网下载安装包
cd libreoffice/dependence
wget https://archive.mozilla.org/pub/nspr/releases/v4.35/src/nspr-4.35.tar.gz |
进行解压安装
tar -zxvf nspr-4.35.tar.gz
cd nspr-4.35/nspr
#这里是一步操作,全部拷贝到命令行一把执行 ./configure --prefix=/usr \ --with-mozilla \ --with-pthreads \ $([ $(uname -m) = aarch64 ] && echo --enable-64bit) && make |
编译完成后应如下图所示,无ERROR信息
执行安装
make install |
安装完成后应如下图所示,无报错信息
检查sqlite3是否安装
ls /usr/include/sqlite3.h |
如果如下图所示则未安装
下载sqlite3安装包
cd /mnt/libreoffice/dependence
wget https://sqlite.org/2024/sqlite-autoconf-3460000.tar.gz |
解压并编译安装
tar -zxvf sqlite-autoconf-3460000.tar.gz
cd sqlite-autoconf-3460000
#这里是一步操作,全部拷贝到命令行一把执行 ./configure --prefix=/usr \ --disable-static \ --enable-fts{4,5} \ CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 \ -D SQLITE_ENABLE_UNLOCK_NOTIFY=1 \ -D SQLITE_ENABLE_DBSTAT_VTAB=1 \ -D SQLITE_SECURE_DELETE=1" && make |
编译后应如下图所示无ERROR信息
再执行安装
make install |
安装完成后可执行以下命令校验
sqlite3 |
打印的版本信息应如下图所示
如果不是,则执行以下命令
mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak cp ./sqlite3 /usr/bin |
nss编译安装
下载nss安装包和补丁包
cd /mnt/libreoffice/dependence
wget https://archive.mozilla.org/pub/security/nss/releases/NSS_3_102_1_RTM/src/nss-3.102.1.tar.gz
wget https://www.linuxfromscratch.org/patches/blfs/svn/nss-3.102.1-standalone-1.patch
tar -zxvf nss-3.102.1.tar.gz
cd nss-3.102.1
patch -Np1 -i ../nss-3.102.1-standalone-1.patch |
打完补丁后应如下图所示
再执行编译安装
cd nss
#这里是一步操作,全部拷贝到命令行一把执行 make BUILD_OPT=1 \ NSPR_INCLUDE_DIR=/usr/include/nspr \ NSPR_LIB_DIR=/usr/lib \ USE_SYSTEM_ZLIB=1 \ ZLIB_LIBS=-lz \ NSS_ENABLE_WERROR=0 \ $([ $(uname -m) = aarch64 ] && echo USE_64=1) \ $([ -f /usr/include/sqlite3.h ] && echo NSS_USE_SYSTEM_SQLITE=1) |
编译完成后应如下图所示无ERROR信息
再执行安装操作
#这里是一步操作,全部拷贝到命令行一把执行 cd ../dist && install -v -m755 Linux*/lib/*.so /usr/lib && install -v -m644 Linux*/lib/{*.chk,libcrmf.a} /usr/lib && install -v -m755 -d /usr/include/nss && cp -v -RL {public,private}/nss/* /usr/include/nss && install -v -m755 Linux*/bin/{certutil,nss-config,pk12util} /usr/bin && install -v -m644 Linux*/lib/pkgconfig/nss.pc /usr/lib/pkgconfig |
执行完成后应如下图所示
libreoffice的编译安装
先下载libreoffice源码
cd /mnt/libreoffice
git clone --depth=1 --branch libreoffice-7-1 https://git.libreoffice.org/core/ ./libreoffice-7-1
cd libreoffice-7-1/
git submodule init |
子模块初始化后应如下图所示
再下载子模块代码
git submodule update --progress --depth=1 |
下载完成后应如下图所示
新建autogen.input文件
vim autogen.input |
文件填入以下内容并保存
# 禁用帮助文档 --without-help --without-helppack-integration
# 启用简体中文用户界面 --with-lang=zh-CN
# 禁用在线更新及崩溃报告功能 --disable-online-update --disable-breakpad
# 禁用 Office Development Kit。若启用 ODK,则额外需要doxygen依赖项。 --disable-odk --without-doxygen
# 若编译好之后您需要rpm (或deb)包,则需要启用下列两项: --enable-epm --with-package-format=rpm
# 现在很多功能都用不到java了,因此直接将其禁用 --without-java
# 需要用到firebird数据库,因此启用 --enable-firebird-sdbc --without-system-firebird
--enable-python=internal |
执行预编译
./autogen.sh |
预编译执行完成后应如下图所示无任何报错
使用普通用户进行编译
cd /mnt/libreoffice
chown libreoffice:libreoffice libreoffice-7-1/ -R
su - libreoffice
cd /mnt/libreoffice/libreoffice-7-1/ |
开始编译前还需要执行一步操作,这是因为麒麟10系统不能被正确识别
cp /mnt/libreoffice/libreoffice-7-1/workdir/UnpackedTarball/python3/LO_lib/_sysconfigdata__linux_aarch64-linux-gnu.py /mnt/libreoffice/libreoffice-7-1/workdir/UnpackedTarball/python3/LO_lib/_sysconfigdata__linux_aarch64-unknown-linux-gnu.py |
开始编译(过程漫长,耐心等待)
make |
编译完成后应如下图所示,无任何报错信息
编译完成后的软件在/mnt/libreoffice/libreoffice-7-1/instdir/program
编译完成后的rpm包在/mnt/libreoffice/libreoffice-7-1/workdir/installation/LibreOfficeDev/rpm/install/LibreOfficeDev_7.1.8.0.0_Linux_aarch64_rpm/RPMS
理论上可以在其他的麒麟10环境,执行完安装前准备后,直接执行yum -y install ./*.rpm安装
kkfileview的安装
Kkfileview的jar包,可以在自己idea上下载其源码并打包,把打完的zip包上传到服务器即可,此处直接从服务器拿到zip包后开始
将包上传到/mnt/libreoffice下,以root身份执行以下步骤
解压压缩包
tar -zxvf kkFileView-4.4.0-beta.tar.gz
cd kkFileView-4.4.0-beta |
解压后修改下配置
vim config/application.properties |
注释掉原来的office.home,使用本地的libreoffice软件目录
修改bin目录下的startup.sh并保存
修改后保存,启动libreoffice
cd bin
sh startup.sh |
启动无异常应如下图
查看日志文件
tail -200f ../log/kkFileView.log |
启动成功应如下图
页面访问 ip:8012应可以进入kkfileview的预览页面
上传个文件验证下功能是否正常
能正常查看文件则部署成功
注意
Kkfileview占用8012端口,请注意端口占用情况以及开放对应的白名单,或关闭服务器防火墙
2024-09-10更新
经过实践,打出的rpm包确实可以直接安装,且不需要经过安装前准备的步骤,可以支持无网环境安装,rpm包可自行下载
通过百度网盘分享的文件:LibreOff....zip 链接:百度网盘 请输入提取码 提取码:67m3 复制这段内容打开「百度网盘APP 即可获取」
安装步骤也简化了很多:
1、将压缩包上传到服务器任意位置后解压
2、cd进入解压后的rpm目录,执行rpm -Uvh *.rpm --nodeps --force
3、安装无报错后,libreoffice会被安装在/opt/libreofficedev7.1
4、安装kkfileview,修改application.properties中的office.home=/opt/libreofficedev7.1
5、修改kkfileview的bin目录下的start.sh,将grep 'office\.home' ../config/application.properties | grep '!^#' 改为grep 'office\.home' ../config/application.properties | grep -v '#'后保存
6、启动kkfileview,验证