环境要求
1 | 系统: Ubuntu 14.04 |
为什么要求科学上网?
OnlyOffice源码存放在github上,且编译时会从google服务器下载v8相关资源,所以必须科学上网
说明
锚定
build_toolsgit版本:be06b3c2c8df1559d2198d3c7e186a9d5913799f/build_tools路径指的是OnlyOffice编译工具仓库clone后的本地地址OnlyOffice连接数限制在build_tools同级目录/server/Common/sources/contants.js1
2// 改为9999就可以无限连接数
exports.LICENSE_CONNECTIONS = 20;
Linux下源码编译步骤
- 1.build_tools工具下载
1 | git clone https://github.com/ONLYOFFICE/build_tools.git |
2.相关资源预下载
node环境准备这里不再介绍如何安装
node,但有以下几点需要注意:node版本必须大于10.20如果想使用国内的
npm镜像,例如淘宝的npm镜像,我在尝试的时候发现一些包不能正确安装,因此最好是科学上网,不使用镜像每一次编译的时候,
build_tools都会尝试全局安装grunt-cli和pkg这两个包,因此可以提前安装好,然后修改build_tools源码,避免每次都安装npm安装grunt-cli和pkg
1
2npm install -g grunt-cli
npm install -g pkg- 修改
\build_tools\tools\linux\deps.py中源码,注释掉以下两行
1
2# base.cmd("sudo", ["npm", "install", "-g", "grunt-cli"])
# base.cmd("sudo", ["npm", "install", "-g", "pkg"])
java环境准备这里不再介绍具体的
java安装,但须注意以下几点:java版本仅支持11,1.8编译的时候每次都会尝试全局安装
open-jdk,如果java环境已经配置好,可以修改\build_tools\tools\linux\deps.py中源码,注释掉以下几行
1
2
3
4
5
6
7
8
9
10# java_error = base.cmd("sudo", ["apt-get", "-y", "install", "openjdk-11-jdk"], True)
# if (0 != java_error):
# java_error = base.cmd("sudo", ["apt-get", "-y", "install", "openjdk-8-jdk"], True)
# if (0 != java_error):
# base.cmd("sudo", ["apt-get", "-y", "install", "software-properties-common"])
# base.cmd("sudo", ["add-apt-repository", "-y", "ppa:openjdk-r/ppa"])
# base.cmd("sudo", ["apt-get", "update"])
# base.cmd("sudo", ["apt-get", "-y", "install", "openjdk-8-jdk"])
# base.cmd("sudo", ["update-alternatives", "--config", "java"])
# base.cmd("sudo", ["update-alternatives", "--config", "javac"])qt环境准备qt版本:5.9.9重命名
下载后将文件名改为qt_source_5.9.9.tar.xz并放置在/build_tools/tools/linux文件夹下解压
解压/build_tools/tools/linux/qt_source_5.9.9.tar.xz到/build_tools/tools/linux/qt-everywhere-opensource-src-5.9.9文件加下
为什么需要资源预下载
如果不预下载一些资源,会在编译时自动下载.但是编译时下载的资源很慢,碰上网络波动,极易造成编译失败3.编译
进入/build_tools/tools/linux目录下
1 | ./automate.py server |
编译完成后,可以在/build_tools/out下看到最终编译产物
初始编译通过后,如果不需要更新OnlyOffice的代码,需要修改/build_tools/tools/linux/automate.py
1 | build_tools_params = ["--branch", branch, |
- 4.编译字体与主题
第3步,编译产物/build_tools/out下没有字体与主题资源,所以还需要生成字体与主题
1 |
|