LibreOffice
LibreOffice
LibreOffice的x86架构可以直接从官网下载二进制包安装,但是官网未提供arm64的安装包,所以以下基于ubuntu20.04系统,编译安装LibreOffice7.5版本。
1.下载源码包
下载地址:https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/src/,需要下载以下2个:
- libreoffice-7.5.3.2.tar.xz
- libreoffice-translations-7.5.3.2.tar.xz
2.准备服务器
在arm64服务器上使用docker启动一个ubuntu20.04容器来进行操作(如果有ubuntu20.04系统的服务器,可以直接使用)。
# 启动容器,其中-v 挂载存放刚刚下载的源代码的目录到容器,根据实际环境修改
docker run -dit --name office-build -v /tmp/down/:/data/ ubuntu:20.04
3.准备编译环境
# 进入容器
docker exec -it office-build /bin/bash
# 安装vim
apt update && apt install -y vim
# 解压两个包
cd /data/
tar xJf libreoffice-7.5.3.2.tar.xz
tar xJf libreoffice-translations-7.5.3.2.tar.xz
# 进入目录
cd libreoffice-7.5.3.2
首先根据自己需要,自定义一些编译选项,选项写在autogen.input文件里,这个文件代码里没自带,需要我们自己创建,写入:
vim autogen.input
完整的编译配置选项及其含义,见源代码根目录下的configure文件。这里我们只需要3个选项,粘贴进去,保存:
- 第一个是中文选项
- 第二个是第三个必须的
- 第三个是会自动生成deb的安装包
--with-lang=zh-CN
--enable-epm
--with-package-format=deb
接下来安装相关依赖(重要:官方源比较慢,网不好的需要切到国内源)切换命令:
sed -i 's#ports.ubuntu.com#mirrors.tuna.tsinghua.edu.cn#' /etc/apt/sources.list && apt-get clean && apt-get update
开始安装依赖(耗时较长:
./install_deps.sh
然后运行:
./autogen.sh
如果提示缺少nss、nspr时,需要安装一下:
apt install libnss3-dev libnspr4-dev
出现以下信息说明环境准备好了:
****************************************************************************
To build, run:
/usr/bin/make
To view some help, run:
/usr/bin/make help
After the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice
If you want to run the smoketest, run:
/usr/bin/make check
4. 开始编译
make
耗时较长,编译完成后进入宿主机刚刚解压后的源代码目录里面就有编译好的相关文件,可以直接使用运行:
cd /tmp/down/libreoffice-7.5.3.2/instdir
ls
# 这里面就是编译后生成的东西了( program里面就是我们需要的arm64的可运行程序)
CREDITS.fodt help LICENSE LICENSE.html NOTICE presets program readmes sdk share user
也可以使用编译后的deb安装包在其他服务器安装:
# 安装包位置
/tmp/down/libreoffice-7.5.3.2/workdir/installation/LibreOfficeDev/deb/install
5.安装和使用
在其他的arm64服务器上使用,可以直接使用编译后的文件,或者使用deb包安装,以下是制作libreoffice容器镜像流程:
FROM ubuntu:20.04
# tzdata被某些软件依赖,这里设置tzdata为非交互方式,避免在制作容器镜像时卡住
ENV DEBIAN_FRONTEND=noninteractive
# 安装依赖
RUN apt-get update && apt-get install -y libxinerama1 libdbus-1-3 libnss3 libxml2 libglib2.0-0 libcairo2 libcups2 libx11-xcb1 libxslt1-dev
# 直接将编译后的文件拷贝
COPY instdir /opt/libreoffice7.5