尝试使用APT安装软件包时“无法找到软件包”
当我尝试通过命令行安装任何软件包时,出现错误。
$ sudo apt-get install Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package
谁可以帮我这个事?
首先,检查包是否确实存在:
- 使用Web浏览器访问packages.ubuntu.com 。
- 向下滚动到“搜索包目录”
-
在“关键字”字段中输入您要安装的软件包。
启用“仅显示完全匹配:”
将“分发”更改为您正在使用的Ubuntu版本。
如果没有结果 ,则您要查找的包不存在,后续步骤将不起作用。 它可能需要第三方PPA或替代安装方法。
如果 找到结果,则包存在,您可以继续执行以下步骤:
- 通过在Dash中搜索它来打开软件源 (或13.04+中的软件和更新 )。
- 打开“Ubuntu软件”选项卡。
-
确保已启用此选项卡上的前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/
)。
以下(一般)程序有助于解决此问题:
-
确保您已启用Ubuntu存储库:
要启用所有存储库(
main
,universe
,restricted
,multiverse
),请使用以下命令:sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository restricted sudo add-apt-repository multiverse
访问帮助以获取更多信息。
-
要获得更多包装的PPA:
- 转到Ubuntu Package Search 。 (已经在这个答案中解释)
- 对于外部存储库,请访问Ubuntu更新并搜索 按钮。 或访问PPA 。
- 或者在Launchpad中搜索ppa
- 根据您的Ubuntu发行版找到合适的ppa 。
-
添加PPA(通过命令行) :
使用此命令:
sudo add-apt-repository ppa:
访问Ubuntu社区帮助以获取更多信息。
-
不要忘记更新 (了解您的更改):
更改任何存储库后运行此命令至关重要:
sudo apt-get update
选择最佳下载服务器可能有助于加快更新速度。
-
最后安装包:
sudo apt-get install
请参阅命令行包管理 。
附加/提示 :您可以使用
apt-cache search
找到正确的软件包名称(即存储库中的名称)。
-
相关常见问答:
- 如何在添加PPA后解决未满足的依赖关系?
- 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的新手,但我正在写这篇文章,因为我发现了一些避免这种“无法找到软件包”错误的解决方案。 有三种情况可能会发生冲击。
- 安装Ubuntu后如果不更新它,然后升级,可能会发生这种情况。
- 如果将来有大量软件更新,请确保在按Alt + F2键入“ Update Manager ”时关闭所有重要的安全更新/建议更新。
- 即使在更新或清除所有更新后,问题一和二也可能发生。 但永恒的解决方案是:尝试点1和2,然后键入
sudo apt-get killmanager
,如果不工作没有问题继续键入sudo apt-get update
,然后键入sudo apt-get upgrade
。
现在您应该可以通过终端安装任何软件。