Ubuntu上需要更新apt-get库报错
$sudo apt-get update [100]
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu bionic InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-security InRelease
Hit:5 https://dl.google.com/linux/chrome/deb stable InRelease
Traceback (most recent call last):
File "/usr/lib/cnf-update-db", line 8, in <module>
from CommandNotFound.db.creator import DbCreator
File "/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py", line 11, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
E: Sub-process returned an error code
核心错误:
ModuleNotFoundError: No module named 'apt_pkg'
原因:
安装python库的时候估计是某些原因apt_pkg.so没有被正确生成,但实际apt_pkg.so对应的版本是有的。
解决办法:
让python能够找到这个so
cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
#注意apt_pkg.cpython-36m-x86_64-linux-gnu.so不一定存在 使用ls看一下或者table补全
ls -l #查看软连接
sudo apt-get update
最后可以用了:
$sudo apt-get update [0]
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu bionic InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-security InRelease
Hit:5 https://dl.google.com/linux/chrome/deb stable InRelease
Reading package lists... Done