执行apt-get安装依赖包命令时遇找不到包的错误求助
我正在运行下面的命令:
sudo apt-get install sed wget curl cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libxml2-utils xmlto docbook bsdmainutils iputils-ping cpio python-wand python-pycryptopp python-crypto
但这个命令报错了,错误信息如下:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'git' instead of 'git-core'
E: Unable to locate package python-pysqlite2
E: Unable to locate package python-pycryptopp
E: Unable to locate package python-crypto
看起来你遇到的问题是几个Python相关的包在当前系统的软件源里找不到,这大概率是因为你的系统版本比较新,这些旧的Python2包已经被移除或者替换成Python3版本的了。给你几个实用的解决思路:
替换为对应的Python3包
现在绝大多数新发行版都默认用Python3了,旧的Python2包很多都从官方源里下架了。你可以把找不到的包换成Python3版本的:python-pysqlite2其实对应Python3的sqlite3模块,它是Python3标准库的一部分,不需要单独安装python-pycryptopp替换为python3-pycryptopp(如果你的软件源里存在这个包的话)python-crypto可以替换为python3-crypto,或者更推荐用python3-pycryptodome——这是原pycrypto的活跃维护分支,功能更全也更安全
先更新软件源再重试
先执行下面的命令更新本地的软件源列表,确保你获取的是最新的包信息:sudo apt update之后再重新运行安装命令(记得替换掉那些找不到的包)。
检查你的系统发行版版本
如果你用的是Ubuntu 20.04及以上这类较新的版本,Python2已经被官方废弃,相关的包基本都从默认源里移除了。这种情况下,优先推荐用Python3的替代包;如果确实必须用Python2,那只能手动添加第三方源或者从源码编译这些包,但非常不推荐这么做——因为Python2已经没有任何安全更新了,存在很大的安全隐患。
另外,命令里的git-core已经被git替代了,系统已经自动提示了这一点,你不用手动修改,执行命令时会自动选择安装git。
备注:内容来源于stack exchange,提问作者Ranjeet Singh

