有时候,当使用APT包管理器在Ubuntu系统上安装包时,可能会遇到“ E: Unable to locate package ”错误。这可能看起来有点令人困惑,尤其是当你确定其它操作都是正确的时候,多少让人有些措手不及。
在本文中,小编主要介绍出现“ E: Unable to locate package ”错误的原因以及在Ubuntu中补救的可能解决方案。如果有遇到此类问题的小伙伴,可以进行参考设置。
1、检查软件包名称的拼写/大小写
软件包名称中的拼写错误可能会导致此错误。事实上,这是应该检查的第一件事。例如,要在Ubuntu上安装Mariadb服务器,如果键入的是mariabd-server
而不是mariadb-server
,则会出现错误:
$ sudo apt install mariabd-server
此外,以大写字符键入包名称也会导致此错误。例如,键入MARIADB-SERVER
将导致相同的错误。因此,建议检查软件包的拼写,以防遇到此错误。此外,确保大小写正确(大部分是小写)。
2、更新本地包索引
如果包名称中没有拼写错误,并且仍然遇到错误,则可能需要考虑刷新本地包索引。如果你使用的是带有空缓存的全新安装Ubuntu系统,则尤其如此。要更新本地缓存,请运行以下命令:
$ sudo apt update
更新缓存后,APT包管理器将引用新构建的本地缓存,并最终从默认的Ubuntu存储库安装有问题的包。
在Ubuntu Packages Search上搜索软件包
你可以采取的另一种方法是在Ubuntu Packages Search上检查软件包的可用性,该网站显示有关Ubuntu软件包存档中托管的所有软件包的信息。它允许用户浏览可用于任何Ubuntu版本的软件包列表,这些软件包包含在Ubuntu提供的四个主要存储库中的任何一个 [ main、multiverse、restricted和universe ]。
在这样做之前,首先检查你正在使用的Ubuntu版本,具体如下:
$ hostnamectl 或者是 $ lsb_release -a
从提供的输出中,可以看到正在运行Ubuntu 22.04和Jammy JellyFish。
现在,转到Keyword搜索框并输入包的名称。接下来,选择你的发行版。如果不确定包包含在哪个存储库中,请将“ Section ”选项设置为“ any ”并单击“ Search ”。
在本文示例中,小编正在搜索Flameshot包的可用性情况:
如果包可用,你将获得匹配项。在本文例子中,得到了一个精确的匹配,详细说明了操作系统版本、软件包的简单描述以及提供它的存储库 ( Universe )。如果结果是肯定的,你就可以继续安装软件包。如果找不到该包,说明它在默认存储库中尚不可用,则无法使用APT包管理器直接安装。
4、安装缺少的Ubuntu存储库
正如上面已经介绍的,Ubuntu系统提供了4个存储库,分别是:
- Main
- Multiverse
- Restricted
- Universe
其中每一个都提供了一组软件包供用户下载到系统上。如果使用的是缺少任何这些存储库的旧系统,则可以按如下方式添加它们:
$ sudo add-apt-repository main $ sudo add-apt-repository multiverse $ sudo add-apt-repository Restricted $ sudo add-apt-repository Universe
添加存储库后,请确保更新本地缓存以通知你的系统它提供的新包:
$ sudo apt update
现在再试一次,这一次,你应该能够毫无问题地安装该软件包。
5、检查正在运行的Ubuntu版本
Ubuntu提供了两个主要版本。LTS (长期支持)是一个支持或维护5年的版本。支持包括错误修复、补丁和安全更新。最新的LTS版本是Ubuntu 22.04。另一个版本是标准或临时版本,支持九个月。目前,最新的标准版本是Ubuntu 23.04。
当一个版本达到生命周期结束 ( EOL ) 时,它不再受到Canonical的支持,并且不再接收补丁、更新和新软件。要检查是否正在运行活动的Ubuntu版本,请运行以下命令。
$ hwe-support-status --verbose
该命令提供以下输出。最后一句话将告诉系统是否受支持。在本文例子中,运行的是Ubuntu 22.04,它将支持到2027年4月。
所以,如果你的系统不受支持,那么肯定是会遇到此类错误的。
结论
以上这些是解决Ubuntu系统上“Unable to locate package”错误的一些可能的解决方案。如果你在安装软件包时仍然遇到困难,请考虑尝试从Snap或flatpak安装它。此外,你还可以从称为PPA(个人包存档)的第三方存储库安装软件包,这是一个存储库,提供由个人或开发人员组维护的软件包,这些软件包在官方Ubuntu存储库中是不可用的。
总之,以上就是解决Ubuntu系统出现“E: Unable to locate package”错误的几种方法,希望能够对大家有所帮助。