完整指南:onlyoffice开源办公套件的编译过程

发表时间: 2024-04-28 17:49

onlyoffice 是开源的文档编辑器,社区版是免费的,如果只是简单的文档编辑使用直接从ONLYOFFICE github 下载docker 镜像就可以。但是往往有一些情况需要修改源码,其实修改源码的难度不大,主要的问题在于源码编译打包,官方也给了编译方法。参考下面链接。Compiling ONLYOFFICE Docs for a local server - ONLYOFFICE

————————————————

下面我谈谈我linux环境下编译过程的总结;

首选如果要编译,还是先在github上看看build_tools目录下
/script/develop/dependence.py这个文件钟安装的依赖、环境情况,提前了解。

如官方指导,请先安装python和git

1、选择自己需要的分支比如

git clone --depth=1 --recursive --branch v6.2.2.44 http://xxx-master:xxxxx@github.com/ONLYOFFICE/build_tools.git

这里使用git账号密码的方式clone

2、拉取代码,一般两种方式,一,执行
build_tools/tools/linux/automate.py自动执行;二,获取每个分支的git地址,在build_tools同级目录拉取。

因为代码拉取的时候有一些依赖也要拉取,所以最好配置Fan墙工具

2.1虚拟代理设置,我这里使用了Oracle virtual VM

如果有现有linux连外网环境好办,如果使用虚拟机比较麻烦:

export http_proxy=htttp://Ip:代理port

export https_proxy=htttp://Ip:代理port

--------------------

使用oracle Vm virtualBox ,请选择:

oracle Vm virtualBox网络配置

进入系统,ip route show

查看IP

所以代理设置如下:

export http_proxy=htttp://10.0.2.2:7890
export https_proxy=htttp://10.0.2.2:7890

另外注意
/etc/netplan/00-config.yaml文件如这样设置

yaml文件

注意:这种方式有个问题就是主机连不了虚拟机,用ssh,不过也没关系,直接在系统窗口操作就好了。

2.2拉取的子项目:

onlyoffice的目录结构

像integration 和templates dictionaries 如下git:

git clone --recursive -b v7.1.1.76 https://github.com/ONLYOFFICE/document-server-integration.git

3、编译

3.1先进入build-tools 下,执行./configure.py ,会生成config 文件

修改:

vi config

update="0",意思是不更新最新的代码,及要使用的数据库是mysql 还是 postgresql。

3.2编译

进入:/build-tools/tools/linux 目录,执行:./automate.py server

这个执行过程要在代理设置好的情况下,否则终究不能成功。

开始会先下载qt,如果代理配置的没问题,那就自动过了,否则可以wget拉取。

注意

可以读一读automate.py的源码,难点在core-common.make()这里是最耗时间的

尤其是V8编译,先下载depot_tools ,这个如果过程中有编译的错误,一步一步解决,不要相信网上的其他什么换镜像地址等,都是坑,老老实实的配置好代理就啥问题都能解决。笔者参考了很多网上的帖子,最后还是将地址换成
https://chromium.googlesource.com/chromium/tools/depot_tools.git

在编译过程中,如果那个依赖被编译了会生成对应的.pyc文件,但是下次再执行automate.py,会绕过去继续往下执行,结果执行到后面又会报出来那个依赖的问题,比如:

如果core_common下的某个错了,可以 删掉core\CommondParty\icu 下生成icu 或V8 或boost ,再删掉build_tools\scripts\core_common\modules\下的对应的.pyc 文件,再执行automate.py

4、打包过程

一般编译成功,就成功百分之八十了。

像这个错误:Fetching base Node.js bibaries to PKG_CACHE_PATH

的问题:

先env |grep PKG_CACHE_PATH ,看看这个目录在哪里,如果能查到,再该目录下创建v3.4(根据提示),在这个目录使用:wget 下载
https://github.com/vercel/pkg-fetch/releases/download/v3.4/node-v14.20.0-linux-x64

下载完之后,cp node-v14.20.0-linux-x64
fetched-v14.20.0-linux-x64

而后继续执行automate.py

5、成功之后,会在build_tools下生成out/linux_64/onlyoffice 目录

————————————————

以下是我CSDN地址:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:
https://blog.csdn.net/shishangshiziwang/article/details/135529868