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

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


有人可以帮我吗?

评论

最近出现了很多,因为默认情况下18.04 Server已禁用Universe,multiverse和backport。

输入未安装的命令时,是否存在启动板问题以改善给出的有用提示? (仅暗示它在未启用的存储库中会很有帮助)

在构建容器(通常同时使用Docker和Singularity)时,这是我遇到的很多问题。在奇异容器中,您具有不同的BootStrap选项,其中包括debootstrap和docker。出于某种原因,如果我使用debootstrap从基本的Ubuntu映像(例如xenial)开始,则会遇到此错误,在此情况下无法使用apt-get找到某些软件包。解决方案最终是切换到Docker BootStrap,然后再次运行。

这已经停止了我过去几天的进度,这并不是由于wjandrea的建议,是因为宇宙,多重宇宙或反向端口被禁用。
@Jackalope然后,软件包名称可能不正确,或者您需要运行sudo apt update。使用apt-cache搜索,后接搜索词以搜索正确的软件包名称。

#1 楼

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


使用Web浏览器转到packages.ubuntu.com。
向下滚动到“搜索软件包目录”

在“关键字”字段中输入要安装的软件包。

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

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






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

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


通过搜索打开软件源(或13.04+中的软件和更新)为此,请在Dash中。
打开“ Ubuntu软件”选项卡。

确保已启用此选项卡上的前4个复选框:
/>

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

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




评论


我发现一个简单的sudo apt-get更新足以为我修复它。你的旅费可能会改变。

–爱德华·福克
16 Mar 7 '16 at 23:33

sudo apt-get update在Windows 10的Ubuntu上也对我有用(这很重要,因为该答案后半部分引用的UI在该系统上不存在)。

–詹姆斯
19年1月30日在18:49

该软件和更新截图保存了我!

– Kalpesh Soni
19年2月28日在21:29

别忘了也搜索launchpad.net!

–乔纳森
19-4-13在23:12



我正在从外壳运行服务器,但无法打开GUI。是否可以仅通过命令行解决此问题?

–尤利西斯·阿尔维斯(Ulysses Alves)
19年5月20日在11:42

#2 楼

关于此主题有很多问题。在这里,我提供一个基本/一般性的答案。
apt-get install无法找到软件包时,在已添加的存储库(位于/etc/apt/sources.list和位于/etc/apt/sources.list.d/下的存储库)中找不到要安装的软件包。 br />以下(一般)过程有助于解决此问题:


确保已启用Ubuntu存储库:
要启用所有存储库(mainuniverserestrictedmultiverse ),请使用以下命令:
sudo add-apt-repository main
sudo add-apt-repository universe
sudo add-apt-repository restricted
sudo add-apt-repository multiverse  

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


要查找更多软件包的PPA:

转到到Ubuntu软件包搜索。 (已在此答案中进行了解释)

如果无法找到的程序包来自PPA,请转到PPA并检查该程序包是否可用于您的发行版。
对于外部存储库,请访问Ubuntu更新并通过
按钮进行搜索。或访问
PPA。
或在Launchpad ppa中搜索

根据您的Ubuntu发行版查找合适的ppa。



>
(通过命令行)添加PPA:
使用此命令:
sudo add-apt-repository ppa:<repository-name>

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


别忘了更新(注意更改):
更改任何存储库后运行此命令至关重要:
sudo apt-get update

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


最后安装该软件包:
sudo apt-get install <package>

请参阅命令行的软件包管理。


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


相关的常见问答:


如何添加PPA后如何解决未满足的依赖关系?
“软件包没有安装候选对象”是什么意思?注意:如果软件包在存储库中不可用,则必须等到软件包可用(对于新版本/更新版本),或使用apt-get以外的其他安装过程,例如。从源编译,下载可执行二进制文件等。

评论


在Debian / Ubuntu中,当它是libname2时,也可能是用户正在搜索libname。

–saiarcot895
2014年6月10日14:46

首先,取决于包装和您要做出许多假设。首先,假设sai指出了正确的软件包名称,如saiarcot895所指出的。其次,您假设软件包可用。通常,最好先确定问题所在。然后,如果有可能,请从存储库中安装。除非有特殊需要,否则ppa是第二选择。如果软件包不在存储库或ppa中,则可能需要从源代码进行编译。您确实没有足够的信息。

–豹
2014年6月10日15:06



@ saiarcot895 @ bodhi.zazen:提供了apt-cache搜索以从存储库中找到正确的软件包名称的修订答案。

–潘迪亚
2014年9月11日下午13:56

很棒的回答者,你应该是赢家

–梦想
18年6月16日在16:25

我不小心删除了整个内容:这意味着我删除了所有存储库,我可以想象其他人也可能这样做,尤其是如果您对清理回购清单的热情太高

–杰拉德
20 Dec 3'at 12:20



#3 楼

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

如果您具有Ubuntu 12.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的输出。

评论


@EliahKagan我没有想过我的答案可以这样解释,我试图澄清一下。为什么不使用al和zw? (当他们提供线索时,我会尝试为OP选择适当的镜像,但是在这里我不知道。)

–吉尔斯'所以-不再是邪恶的'
2012年7月2日在20:26

#4 楼

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

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


#5 楼

我是Ubuntu的新手,但我正在写这篇文章,是因为我发现了一些避免此“无法找到软件包”错误的解决方案。在三种情况下,这种情况可能会发生震惊。要在以后进行软件更新,请确保通过按Alt + F2上的“更新管理器”来关闭所有重要的安全更新/建议的更新。
即使更新或清除所有更新,问题一和二仍然可能发生。但永恒的解决方案是:
尝试点1和2,然后键入sudo apt-get killmanager,如果不起作用,请继续输入sudo apt-get update,然后键入sudo apt-get upgrade。通过终端软件。

评论


如果在“ sudo apt-get update”行上仍然出现错误,请尝试使用“ sudo apt-get upgrade”。这将工作..伙计们!由于Linux区分大小写,请确保所有命令都使用小写字母,例如“ sudo”,而不是“ Sudo”

–陕·桑达(Shaan Sundar)
2012-12-25 13:36

#6 楼

全新安装Ubuntu?
很多时候只是更新所有存储库和PPA的软件包列表就可以了:
sudo apt-get update

这应该是第一件事。您需要搜索的工作需要搜索包含您要查找的软件包的存储库或PPA,添加它,然后再次运行sudo apt-get update。此页面上的其他答案很好地说明了该过程的步骤。