尝试使用APT安装软件包时"无法找到软件包"

当我尝试通过命令行安装任何软件包时,我得到一个错误。

$ sudo apt-get install <package>Reading package lists... DoneBuilding dependency tree       Reading state information... DoneE: Unable to locate package <package>

有人能帮我吗?

首先,检查包是否实际存在:

  1. 前往 packages.ubuntu.com 用web浏览器。
  2. 向下滚动到"搜索包目录"
  3. 在"关键字"字段中输入要安装的软件包。

    启用"仅显示完全匹配:"

    将"发行版"更改为您使用的Ubuntu版本。

    enter image description here

如果有 没有结果,您正在寻找的软件包不存在,后续步骤将不起作用。 它可能需要第三方PPA或替代安装方法。

如果 结果 被发现,包存在,您可以继续执行这些步骤:

  1. 打开 软件来源 (或 软件和更新 在13.04+)通过在短跑中搜索它。
  2. 打开"Ubuntu软件"选项卡。
  3. 确保启用此选项卡上的前4个复选框:

    enter image description here

  4. 更新软件包列表,然后使用以下命令进行测试:

    sudo apt-get updatesudo apt-get install <TEST_PACKAGE>

有很多 问题: 关于这个话题。 在这里,我提供了一个基本/一般的答案。

何时 apt-get install 无法找到包,您要安装的包在您添加的存储库中找不到( /etc/apt/sources.list 和下 /etc/apt/sources.list.d/).

以下(常规)过程有助于解决此问题:

  1. 确保您已启用Ubuntu存储库:

    要启用所有存储库(main, universe, restricted, multiverse),使用以下命令:

    sudo add-apt-repository mainsudo add-apt-repository universesudo add-apt-repository restrictedsudo add-apt-repository multiverse  

    参观 救命! 有关更多信息。

  2. 寻找更多包裹的PPA:

    • 前往 Ubuntu软件包搜索. (已经在解释 答)
    • 如果您无法找到的软件包来自PPA,请转到PPA并检查它是否可用于您的版本。
    • 对于外部存储库,请访问 Ubuntu更新 及搜寻screen 按钮。 或参观PPAs的.
    • 或搜寻 发射器ppa
    • 寻找合适的ppa 根据您的Ubuntu发布版本。
  3. 添加PPA(通过命令行):

    使用此命令:

    sudo add-apt-repository ppa:<repository-name>

    参观 Ubuntu社区帮助 有关更多信息。

  4. 别忘了更新 (让apt意识到你的变化):

    在更改任何存储库后运行此命令至关重要:

    sudo apt-get update

    选择 最佳下载服务器 可能有助于加快更新速度。

  5. 最后安装包:

    sudo apt-get install <package>

    参考 通过命令行管理包.

附加/提示:您可以使用以下方法找到正确的软件包名称(即存储库中的名称) apt-cache search <package-name>.


  • 相关常见问题解答:
  1. 添加PPA后如何解决未满足的依赖关系?
  2. 什么是"包<包>没有安装候选"意味着什么?

注意事项:如果软件包在存储库上不可用,那么您必须等待它可用(在新/更新版本的情况下)或使用其他安装过程。 apt-get 例如,从源代码编译,下载可执行二进制文件等。

xbmc 只适用于 宇宙存储库,只有从Ubuntu12.04(精确)。 如果您有较旧的Ubuntu版本,则需要升级或从其他地方获取xbmc。

如果你有Ubuntu12.04,请确保你有 打开universe存储库. 您可以在文件中查看已启用的存储库 /etc/apt/sources.list (并在目录中的文件 /etc/apt/sources.list.d). 检查此文件是否包含如下行

deb http://al.archive.ubuntu.com/ubuntu/ precise universe

deb http://zw.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse

如果你只找到一条像

deb http://mn.archive.ubuntu.com/ubuntu/ precise main restricted

也没有与...... universe,添加 universe 在该行的末尾,或与 precise universe,如上所示。

如果需要修改 /etc/apt/sources.list,跑 sudo apt-get update 之后,然后再次尝试安装。 如果仍未找到包,请将 /etc/apt/sources.list 和输出的 sudo apt-get update.

在尝试安装文件的情况下:

sudo apt-get install libstdc++.so.6

而不是一个包。 您收到错误消息:

E: Unable to locate package libstdc++.so.6E: Couldn't find any package by regex 'libstdc++.so.6'

因为你试图安装一个文件 libstdc++.so.6 您无法安装,因为它位于debian软件包中。

您可以使用 apt-file 搜索包含该文件的包。 要安装它,请键入:

sudo apt-get install apt-file

然后你必须更新索引。

sudo apt-file update

之后,您可以搜索包含该文件的包 libstdc++.so.6:

sudo apt-file find libstdc++.so.6

然后你会发现很多包含搜索文件的软件包。 对于这个例子,我只粘贴一个搜索结果:

libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6

然后您可以安装所需的软件包 libstdc++6:

sudo apt-get install libstdc++6

我是Ubuntu的新手,但我正在写这篇文章,因为我发现了一些解决方案来避免这种"无法找到包"错误。 有三种情况下,这可能会发生休克。

  1. 安装Ubuntu后,如果你不更新它,然后升级,这可能会发生。
  2. 如果将来会有大量软件更新,请确保通过键入"关闭所有重要的安全更新/推荐更新更新管理器"在按 Alt+F2.
  3. 即使在更新或清除所有更新后,问题1和2也可能发生。 但永恒的解决方案是:尝试点1&amp;2,然后键入 sudo apt-get killmanager,如果不工作没有问题继续输入 sudo apt-get update,然后键入 sudo apt-get upgrade.

现在,您应该能够通过终端安装任何软件。

全新Ubuntu安装?

很多时候,只是从所有存储库更新软件包列表,PPA就可以做到这一点:

sudo apt-get update

这应该是 第一个 该做的事。

如果这不起作用,您需要搜索包含您所追求的包的存储库或PPA,添加它并运行 sudo apt-get update 又来了。 该过程的步骤在本页的其他答案中有很好的解释。

最近出现了很多问题,因为18.04服务器默认禁用了universe,multiverse和backports。

当输入未安装的命令时,是否存在用于改进有用提示的启动板问题? (只是暗示它在未启用的存储库中会非常有帮助)

@Jackalope那么也许软件包名称不正确,或者您需要运行’sudo apt update’。 使用"apt-cache search"后跟搜索词来搜索正确的软件包名称。

这是我在构建容器时遇到的很多东西,通常同时使用Docker和Singularity。 在奇点容器中,您有不同的引导选项,其中包括debootstrapdocker。 出于某种原因,如果我使用debootstrap从基础Ubuntu映像(例如xenial)开始,我遇到了这个错误,其中一些软件包无法使用apt-get找到。 解决方案最终是切换到’docker’引导程序,然后它再次起作用。

这在过去几天停止了我的进步,这不是由于宇宙,多元宇宙或backports被禁用,正如wjandrea所暗示的那样。

我做过那些事。 我已经三重检查了包的名称(libsdl2-2.0-0),并使用apt-cache搜索验证了可用性。 我最终能够通过安装docs来安装这个软件包,它似乎已经将软件包安装为依赖项。