当我尝试通过命令行安装任何软件包时,我得到一个错误。
$ sudo apt-get install <package>Reading package lists... DoneBuilding dependency tree Reading state information... DoneE: Unable to locate package <package>
有人能帮我吗?
当我尝试通过命令行安装任何软件包时,我得到一个错误。
$ sudo apt-get install <package>Reading package lists... DoneBuilding dependency tree Reading state information... DoneE: Unable to locate package <package>
有人能帮我吗?
首先,检查包是否实际存在:
在"关键字"字段中输入要安装的软件包。
启用"仅显示完全匹配:"
将"发行版"更改为您使用的Ubuntu版本。
如果有 没有结果,您正在寻找的软件包不存在,后续步骤将不起作用。 它可能需要第三方PPA或替代安装方法。
如果 结果 被发现,包存在,您可以继续执行这些步骤:
确保启用此选项卡上的前4个复选框:
更新软件包列表,然后使用以下命令进行测试:
sudo apt-get updatesudo apt-get install <TEST_PACKAGE>
有很多 问题: 关于这个话题。 在这里,我提供了一个基本/一般的答案。
何时 apt-get install
无法找到包,您要安装的包在您添加的存储库中找不到( /etc/apt/sources.list
和下 /etc/apt/sources.list.d/
).
以下(常规)过程有助于解决此问题:
确保您已启用Ubuntu存储库:
要启用所有存储库(main
, universe
, restricted
, multiverse
),使用以下命令:
sudo add-apt-repository mainsudo add-apt-repository universesudo add-apt-repository restrictedsudo add-apt-repository multiverse
参观 救命! 有关更多信息。
寻找更多包裹的PPA:
添加PPA(通过命令行):
使用此命令:
sudo add-apt-repository ppa:<repository-name>
参观 Ubuntu社区帮助 有关更多信息。
别忘了更新 (让apt意识到你的变化):
在更改任何存储库后运行此命令至关重要:
sudo apt-get update
选择 最佳下载服务器 可能有助于加快更新速度。
最后安装包:
sudo apt-get install <package>
参考 通过命令行管理包.
附加/提示:您可以使用以下方法找到正确的软件包名称(即存储库中的名称) apt-cache search <package-name>
.
注意事项:如果软件包在存储库上不可用,那么您必须等待它可用(在新/更新版本的情况下)或使用其他安装过程。 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的新手,但我正在写这篇文章,因为我发现了一些解决方案来避免这种"无法找到包"错误。 有三种情况下,这可能会发生休克。
sudo apt-get killmanager
,如果不工作没有问题继续输入 sudo apt-get update
,然后键入 sudo apt-get upgrade
.现在,您应该能够通过终端安装任何软件。
很多时候,只是从所有存储库更新软件包列表,PPA就可以做到这一点:
sudo apt-get update
这应该是 第一个 该做的事。
如果这不起作用,您需要搜索包含您所追求的包的存储库或PPA,添加它并运行 sudo apt-get update
又来了。 该过程的步骤在本页的其他答案中有很好的解释。
最近出现了很多问题,因为18.04服务器默认禁用了universe,multiverse和backports。
当输入未安装的命令时,是否存在用于改进有用提示的启动板问题? (只是暗示它在未启用的存储库中会非常有帮助)
@Jackalope那么也许软件包名称不正确,或者您需要运行’sudo apt update’。 使用"apt-cache search"后跟搜索词来搜索正确的软件包名称。
这是我在构建容器时遇到的很多东西,通常同时使用Docker和Singularity。 在奇点容器中,您有不同的引导选项,其中包括debootstrap
和docker
。 出于某种原因,如果我使用debootstrap
从基础Ubuntu映像(例如xenial
)开始,我遇到了这个错误,其中一些软件包无法使用apt-get
找到。 解决方案最终是切换到’docker’引导程序,然后它再次起作用。
这在过去几天停止了我的进步,这不是由于宇宙,多元宇宙或backports被禁用,正如wjandrea所暗示的那样。
我做过那些事。 我已经三重检查了包的名称(libsdl2-2.0-0),并使用apt-cache搜索验证了可用性。 我最终能够通过安装docs来安装这个软件包,它似乎已经将软件包安装为依赖项。