我是由于一冲动装了aptitude,想解决依赖包的问题,结果问题没解决,apt-get不能用了
1. 可以通过查看apt/history.log来查看自己执行过什么apt操作
vim /var/log/apt/history.log
Start-Date: 2022-06-15 02:11:20
Commandline: apt-get install aptitude
2. 到这个路径下,查看libapt相关文件
cd /usr/lib/x86_64-linux-gnu
ll libapt-*
lrwxrwxrwx 1 root root 19 Oct 17 2018 libapt-pkg.so.5.0 -> libapt-pkg.so.5.0.0
-rw-r--r-- 1 root root 1.5M Oct 17 2018 libapt-pkg.so.5.0.0
lrwxrwxrwx 1 root root 23 Apr 29 04:14 libapt-private.so.0.0 -> libapt-private.so.0.0.0
-rw-r--r-- 1 root root 415K Apr 29 04:14 libapt-private.so.0.0.0
可以看到存在文件,但是仍然报错。可能是装的libapt-pkg 版本不对
3. 如何确定libapt-pkg的版本
ls /var/cache/apt/archives/libapt*
/var/cache/apt/archives/libapt-inst2.0_1.6.14_amd64.deb /var/cache/apt/archives/libapt-pkg5.0_1.6.14_amd64.deb
4. 然后去apt网站上找到对应版本的libapt-pkg
wget http://archive.ubuntu.com/ubuntu/pool/main/a/apt/libapt-pkg5.0_1.6.14_amd64.deb
sudo dpkg --install --force-all libapt-pkg5.0_1.6.14_amd64.deb
安装了正确版本的就不会报relocation error,网上说直接重装libapt-pkg 如果没对上版本还是会有问题
5. 在2.中如果你连 libapt-private.so.0.0.0都没有,可以装一下apt_1.6.15_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/a/apt/apt_1.6.15_amd64.deb
sudo dpkg --install --force-downgrade ~/apt_1.6.15_amd64.deb
参考文献: relocation error: /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0: