OnlyOffice源码编译arm架构指南

Posted Data-Mining

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OnlyOffice源码编译arm架构指南相关的知识,希望对你有一定的参考价值。

目录

前言

正文

问题一、E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

问题二、locale: 无法将 LC_ALL 设置为缺省的语区: 没有那个文件或目录

问题三、gnutls_handshake() failed: The TLS connection was non-properly terminated.

问题四、E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故

问题五、自己重新编译 5.28.3 版本的perl

问题六、perl-base : 破坏: perl (< 5.26.1~) 但是 5.22.1-9kord0.6 正要被安装

问题七、升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 1128 个软件包未被升级。

问题八、gnutls_handshake() failed: The TLS connection was non-properly terminated.


前言

整个文章是按照时间顺序写的,有些地方可能没有完全整理到一起,大家凑合看吧!

正文

编译 OnlyOffice 还是比较麻烦的,特别是编译 arm 架构的 OnlyOffice,本文整理一下自己在编译过程中遇到的各种各样的问题。希望对有相同需求的小伙伴有所帮助,好了,话不多说,直接进入正题。

在开始罗列问题之前,我们先把官方的编译文档简单介绍一下。

官方编译文档地址:Compiling ONLYOFFICE Docs for a local server - ONLYOFFICE

1. 安装依赖项

sudo apt-get install -y python git

2. 下载编译工具

git clone https://github.com/ONLYOFFICE/build_tools.git 

3. 进入目录并执行编译脚本

cd build_tools/tools/linux
./automate.py server 

好了,接下来开始说遇到的问题。

问题一、E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

具体报错信息:

root@Kylin:~/coDucoment/DocumentServer# sudo apt-get install -y python git

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

解决:

rm /var/cache/apt/archives/lock

rm /var/lib/dpkg/lock

执行结果:

root@Kylin:~/coDucoment/DocumentServer# sudo apt-get install -y python git

正在读取软件包列表... 完成

正在分析软件包的依赖关系树       

正在读取状态信息... 完成       

git 已经是最新版 (1:2.17.1-1ubuntu0.8)。

下列软件包是自动安装的并且现在不需要了:

  cifs-utils localechooser-data user-setup

。。。。。。

问题二、locale: 无法将 LC_ALL 设置为缺省的语区: 没有那个文件或目录

解决:

首先使用 locale 命令查看 LC_ALL 的状态,结果如下:

 我们可以看到 LC_ALL 没有任何值,因此我们手动设置一下,使用如下命令:

export LC_ALL="zh_CN.UTF-8"

之后,再使用 locale 命令查看,LC_ALL 的值发生了变化,重新执行编译命令,报错消失!

问题三、gnutls_handshake() failed: The TLS connection was non-properly terminated.

报错详情:

root@Kylin:~/coDucoment/DocumentServer# git clone https://github.com/ONLYOFFICE/build_tools.git

正克隆到 'build_tools'...

fatal: unable to access 'https://github.com/ONLYOFFICE/build_tools.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.

解决:

本来想尝试下面的方法,结果还没试,手滑重试就OK了,尴尬!

git config --global --unset https.https://github.com.proxy 
git config --global --unset http.https://github.com.proxy 

没想到重试也是可以的。

问题四、E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故

报错详情:

下列软件包有未满足的依赖关系:

 libcups2-dev : 依赖: libcupsimage2-dev (= 2.2.7-1ubuntu2.8) 但是它将不会被安装

 libxcb-image0-dev : 依赖: libxcb-image0 (= 0.4.0-1build1) 但是 0.4.0-1build1kord 正要被安装

 libxcb-keysyms1-dev : 依赖: libxcb-keysyms1 (= 0.4.0-1) 但是 0.4.0-1kord 正要被安装

 libxcb-render-util0-dev : 依赖: libxcb-render-util0 (= 0.3.9-1) 但是 0.3.9-1kord 正要被安装

E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。

Error (sudo): 100

报错截图:

解决:

sudo apt-get install libcupsimage2-dev=2.2.7-1ubuntu2.8

问题五、自己重新编译 5.28.3 版本的perl

解决:

步骤一、下载5.28.3版本的perl源码包

 wget https://www.cpan.org/src/5.0/perl-5.28.3.tar.gz

步骤二、解压perl压缩包

tar zxvf perl-5.28.3.tar.gz

mkdir /usr/local/perl 

步骤三、进入源码目录

 ./Configure -des -Dprefix=/usr/local/perl -Dusethreads -Uversiononly

步骤四、编译源码

make

make install

第五步、更新perl版本

cd /usr/bin

mv perl perl.old       //把原来的perl更名为perl.old

ln -s /usr/local/perl/bin/perl /usr/bin/perl   //做一个软链接,使用新的perl

问题六、perl-base : 破坏: perl (< 5.26.1~) 但是 5.22.1-9kord0.6 正要被安装

报错详情:

下列软件包有未满足的依赖关系:

 perl-base : 破坏: perl (< 5.26.1~) 但是 5.22.1-9kord0.6 正要被安装

E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。

Error (sudo): 100

解决:

sudo apt-get install perl-base -y 

问题七、升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 1128 个软件包未被升级。

报错截图:

解决:

执行命令如下:

sudo apt-get dist-upgrade

命令执行过程:(部分截图)

问题八、gnutls_handshake() failed: The TLS connection was non-properly terminated.

是的,你没有看错,又遇到了这个问题,但是这次重试不好使了。

报错截图:

解决:

因为重试不好使,因此得以尝试如下方法。

git config --global --unset http.proxy
git config --global --unset https.proxy 

果然好用,问题解决。

以上是关于OnlyOffice源码编译arm架构指南的主要内容,如果未能解决你的问题,请参考以下文章

:ARM架构下手动编译StarRocks(拓展篇)

Linuximx6ull Kernel 源码下载和编译环境配置

银河麒麟 ARM架构 Qemu虚拟机

ubootimx6ull uboot 2020.04源码下载和编译环境配置

QT5静态编译工程(arm交叉编译)

Qrencode4.1.1源码交叉编译(arm)及移植