Debian:如何找到软件包位于哪个存储库?

Debian:如何找到软件包位于哪个存储库?

我想在我的 Debian Wheezy 上安装文件 libgmp-dev。我应该将哪个存储库添加到我的 sources.list 中?

一般来说,如何找到给定软件包/程序在哪个存储库中可用?或者它根本不适用于 Debian?在后一种情况下,我必须从源代码安装它。但如果存储库中有可用的软件包/程序,我想安装它。

换句话说,我想我需要知道:如何知道要将哪些存储库添加到我的 sources.list 中以满足我的包安装要求?

我已经看到了以下问题及其答案,但它们似乎只适用于本地缓存。 如何判断软件包来自哪个 Ubuntu 或 Debian 存储库?

因为如果我按照答案中的建议运行以下任何命令

$ apt-cache policy libgmp-dev $ apt-cache show-pkg libgmp-dev

我总是收到错误:N: Unable to locate package libgmp-dev

答案1

这只是意味着 APT 认为名称匹配的包确切地您输入的内容可在您本地 APT 知道的任何存储库中使用。

这是什么意思?以下两种情况之一:

  • 您要查找的包有其他名称;
  • APT 不知道具有该确切名称的软件包的存储库。

你能做什么呢?

首先,尝试在软件包缓存(系统上 APT 已知的所有软件包的列表)中搜索不太精确的名称,例如

apt-cache search libgmp

甚至

apt-cache search gmp

可能会奏效(您可能希望将输出通过管道传输到以便less能够进一步搜索)。例如,包中可能包含一个版本,如libgmp4-dev(表示可能有libgmp3-dev可用版本或类似内容)。

接下来,确保 APT 知道包含该包的存储库。

在我的 Wheezy 系统上,我有:

$ apt-cache search libgmp-dev
libgmp-dev - Multiprecision arithmetic library developers tools
libgmp3-dev - Multiprecision arithmetic library developers tools

$ apt-cache policy libgmp-dev
libgmp-dev:
  Installed: (none)
  Candidate: 2:5.0.5+dfsg-2
  Version table:
     2:5.0.5+dfsg-2 0
        500 http://http.debian.net/debian/ wheezy/main amd64 Packages

这意味着该软件包在标准(主)Debian 存储库中可用。

因此...请确保你有可用的存储库:

  1. 找到文件/etc/apt/sources.list
  2. 尝试找到一个未注释的(没有以字符为前缀的#)行,如下所示

    deb http://ftp.de.debian.org/debian wheezy main
    

    如果你没有,请尝试添加

    deb http://http.debian.net/debian wheezy main
    

    在那里保存文件。

  3. 跑步

    # apt-get update
    

    从该存储库获取软件包列表,并将其中可用软件包的列表添加到本地 APT 的缓存中。

  4. 使用以下命令验证包是否可用

    $ apt-cache policy libgmp-dev
    

答案2

要查找包位于哪个存储库,请转到:
https://www.debian.org/distrib/packages

在该页面上,您可以查找包名称,也可以输入文件名并获取包含您搜索的文件的所有包的名称的结果集。

关于你的例子

libgmp-dev是来自常见 Debian 存储库的软件包,请看这里

如果您有可用的 Debian 系统,则应该能够使用 进行安装apt-get install libgmp-dev。如果您遇到问题,请提出新问题。

相关内容