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 ,请选择:
进入系统,ip route show
所以代理设置如下:
export http_proxy=htttp://10.0.2.2:7890
export https_proxy=htttp://10.0.2.2:7890
另外注意
/etc/netplan/00-config.yaml文件如这样设置
注意:这种方式有个问题就是主机连不了虚拟机,用ssh,不过也没关系,直接在系统窗口操作就好了。
2.2拉取的子项目:
像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