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

当我尝试通过命令行安装任何软件包时,出现错误。

$ sudo apt-get install  Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package  

谁可以帮我这个事?

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

  1. 使用Web浏览器访问packages.ubuntu.com 。
  2. 向下滚动到“搜索包目录”
  3. 在“关键字”字段中输入您要安装的软件包。

    启用“仅显示完全匹配:”

    将“分发”更改为您正在使用的Ubuntu版本。

    在此处输入图像描述

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

如果 找到结果,则包存在,您可以继续执行以下步骤:

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

    在此处输入图像描述

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

     sudo apt-get update
     sudo apt-get install 
    

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

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

以下(一般)程序有助于解决此问题:

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

    要启用所有存储库( mainuniverserestrictedmultiverse ),请使用以下命令:

     sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository restricted sudo add-apt-repository multiverse 

    访问帮助以获取更多信息。

  2. 要获得更多包装的PPA:

    • 转到Ubuntu Package Search 。 (已经在这个答案中解释)
    • 对于外部存储库,请访问Ubuntu更新并搜索 屏幕 按钮。 或访问PPA 。
    • 或者在Launchpad中搜索ppa
    • 根据您的Ubuntu发行版找到合适的ppa
  3. 添加PPA(通过命令行)

    使用此命令:

     sudo add-apt-repository ppa: 

    访问Ubuntu社区帮助以获取更多信息。

  4. 不要忘记更新 (了解您的更改):

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

     sudo apt-get update 

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

  5. 最后安装包:

     sudo apt-get install  

    请参阅命令行包管理 。

    附加/提示 :您可以使用apt-cache search 找到正确的软件包名称(即存储库中的名称)。


  • 相关常见问答:

    1. 如何在添加PPA后解决未满足的依赖关系?
    2. Package 没有安装候选是什么意思?

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

xbmc仅在Universe存储库中可用,仅从Ubuntu 12.04开始(精确)。 如果您有较旧版本的Ubuntu,则需要升级或从其他地方获取xbmc。

如果您有Ubuntu 12.04,请确保已打开Universe存储库 。 您可以在文件/etc/apt/sources.list (以及目录/etc/apt/sources.list.d中的/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.6 E: 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的包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键入“ Update Manager ”时关闭所有重要的安全更新/建议更新。
  3. 即使在更新或清除所有更新后,问题一和二也可能发生。 但永恒的解决方案是:尝试点1和2,然后键入sudo apt-get killmanager ,如果不工作没有问题继续键入sudo apt-get update ,然后键入sudo apt-get upgrade

现在您应该可以通过终端安装任何软件。