当前位置: 首页>>技术教程>>正文


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

, ,

问题描述

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

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

谁可以帮我这个事?

最佳解决方案

首先,检查包是否真的存在:

  1. 使用网络浏览器转到packages.ubuntu.com

  2. 向下滚动到“搜索包目录”

  3. 输入您要安装到”Keyword”字段中的软件包。启用“仅显示完全匹配:”将”Distribution”更改为您正在使用的Ubuntu版本。

    apt,package-management,ubuntu

如果没有结果,您正在查找的软件包不存在,并且下一个步骤将不起作用。它可能需要第三方PPA或其他安装方法。

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

  1. 通过在Dash中搜索它来打开软件源(或13.04+中的软件和更新)。

  2. 打开”Ubuntu Software”选项卡。

  3. 确保启用此选项卡上的前4个复选框:

    apt,package-management,ubuntu

  4. 更新软件包列表,然后使用以下命令进行测试:sudo apt-get update sudo apt-get install< TEST_PACKAGE>

次佳解决方案

关于这个话题有很多questions。这里我提供一个基本的/一般的答案。

apt-get install无法找到某个软件包时,在您添加的软件仓库(/etc/apt/sources.list/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
    

    访问Help了解更多信息。

  2. 为了找到更多软件包的PPA:

  3. 添加PPA(通过命令行):

    使用此命令:

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

    访问Ubuntu community help了解更多信息。

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

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

    sudo apt-get update
    

    选择best download server可能有助于加速更新。

  5. 最后安装软件包:

    sudo apt-get install <package>
    

    请参阅Package management by commandline

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



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

第三种解决方案

xbmc仅在universe repository中可用,仅在Ubuntu 12.04(精确)以后。如果您的Ubuntu发行版较旧,则需要升级或从其他位置获取xbmc。

如果你有Ubuntu 12.04,请确保你有turned on the universe repository。您可以在文件/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.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的软件包:

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/468.html,未经允许,请勿转载。