问题描述
当我尝试通过命令行安装任何软件包时,出现错误。
$ sudo apt-get install <package>
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package <package>
谁可以帮我这个事?
最佳解决方案
首先,检查包是否真的存在:
-
使用网络浏览器转到packages.ubuntu.com。
-
向下滚动到“搜索包目录”
-
输入您要安装到”Keyword”字段中的软件包。启用“仅显示完全匹配:”将”Distribution”更改为您正在使用的Ubuntu版本。
如果没有结果,您正在查找的软件包不存在,并且下一个步骤将不起作用。它可能需要第三方PPA或其他安装方法。
如果找到结果,则包存在,您可以继续执行这些步骤:
-
通过在Dash中搜索它来打开软件源(或13.04+中的软件和更新)。
-
打开”Ubuntu Software”选项卡。
-
确保启用此选项卡上的前4个复选框:
-
更新软件包列表,然后使用以下命令进行测试:sudo apt-get update sudo apt-get install< TEST_PACKAGE>
次佳解决方案
关于这个话题有很多questions。这里我提供一个基本的/一般的答案。
当apt-get install
无法找到某个软件包时,在您添加的软件仓库(/etc/apt/sources.list
和/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
访问Help了解更多信息。
-
为了找到更多软件包的PPA:
-
转到Ubuntu Package Search。 (已在this答案中解释)
-
对于外部存储库,请访问Ubuntu Updates并按按钮搜索。或访问PPAs。
-
或在Launchpad ppa中搜索
-
根据你的Ubuntu发行版找到合适的ppa。
-
-
添加PPA(通过命令行):
使用此命令:
sudo add-apt-repository ppa:<repository-name>
访问Ubuntu community help了解更多信息。
-
不要忘记更新(了解您的更改):
在更改任何存储库后运行此命令至关重要:
sudo apt-get update
选择best download server可能有助于加速更新。
-
最后安装软件包:
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的新手,但是我正在写这个,因为我发现了一些解决方案来避免这种“找不到软件包”的错误。有三种情况可能会发生这种情况。
-
在安装Ubuntu之后,如果您没有更新它然后升级,可能会发生这种情况。
-
如果将来会发生大量软件更新,请确保在按
Alt
+F2
键入”Update Manager”时关闭所有重要的安全更新/推荐的更新。 -
问题一和二即使在更新或清除所有更新之后也可能发生。但永恒的解决方案是:尝试点1& 2,然后输入
sudo apt-get killmanager
,如果不行的话没问题继续输入sudo apt-get update
,然后输入sudo apt-get upgrade
。
现在你应该可以通过终端安装任何软件。