执行apt相关命令时发生错误
#问题描述:
在执行apt相关命令时报出如下错误:
apt-get: relocation error: /usr/lib/aarch64-linux-gnu/libapt-private.so.0.0: symbol _ZN9pkgSystem9LockInnerEv, version APTPKG_5.0 not defined in file libapt-pkg.so.5.0 with link time reference
系统环境:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
参考链接:https://answers.launchpad.net/ubuntu/+question/675775
解决方法:降低apt版本
命令
dpkg -l apt libapt-pkg5.0
结果
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii apt 1.2.31 arm64 commandline package manager
ii libapt-pkg5.0: 1.4.8 arm64 package management runtime librar
可以看到架构是arm64
下载libapt-pkg5.0
wget https://launchpad.net/ubuntu/+archive/primary/+files/libapt-pkg5.0_1.2.29_***xxxxx***.deb
注意将xxxx替换为架构(例如arm64)
安装:
sudo dpkg --install --force-downgrade libapt-pkg5.0_1.2.29_arm64.deb
同样注意替换架构。
原因分析:
这似乎不是Ubuntu问题,但最有可能是由zentyal引起的。
在Ubuntu xenial中,apt和libapt-pkg5.0包是从同一个源构建的(apt版本1.2.29)。
zentyal存储库提供libapt-pkg5.0版本1.5.1,它显然与apt 1.2.29冲突
(来自https://answers.launchpad.net/ubuntu/+question/675775)