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 发生故障,这可能是有软件包被要求保持现状的缘故
问题六、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架构指南的主要内容,如果未能解决你的问题,请参考以下文章
Linuximx6ull Kernel 源码下载和编译环境配置