apt-get build-dep无法找到源包


16

我已经按照本指南在Ubuntu 12.04上禁用了鼠标中键粘贴。

奇迹般有效。

现在,我试图在Linux Mint 17上实现相同的目标。

sudo apt-get build-dep libgtk2.0-0

它给了我以下输出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

对我来说,apt-get似乎以某种方式“解析” 'libgtk2.0-0''gtk+2.0',但是没有找到任何这样的软件包。

编辑:尽管我现在可以编译该程序(请参阅我的答案),但我仍然不知道Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'应该是什么 意思。任何对此的见解将不胜感激,谢谢!


您是否deb-src在/etc/apt/sources.list中启用了相关的存储库?
steeldriver

Answers:


18

正如其他人已经指出,确保每一个deb …在入口/etc/apt/sources.list/etc/apt/sources.list.d/*,你有一个匹配deb-src …条目。该行的其余部分必须相同。该deb条目用于二进制软件包(即准备安装),而deb-src用于源软件包(即准备编译)。两种源分开的原因是它们的管理方式非常不同:二进制软件包具有依赖项跟踪机制和当前安装的列表,而仅跟踪源软件包以便可以方便地下载它们。请注意,在讨论软件包存储库时,“ ”一词意味着两件无关的事情:位于从中下载软件包的位置的源,以及与二进制软件包相对的源软件包。

libgtk2.0-0是二进制软件包的名称。它是从名为的源程序包中构建的gtk+2.0。源软件包名称和二进制软件包名称不总是匹配的原因是,构建源软件包可以产生多个二进制软件包。例如,gtk+2.0是14个软件包的来源,因为它分为两个库(libgtk2.0,libgail ), corresponding packages to build programs using these libraries (…-dev ), documentation for developers (…-doc ), companion programs (libgtk2.0-bin`),等等。

通过检查(如果已安装)或Source: …的输出中的行,可以查看与二进制软件包相对应的源软件包的名称。您可以使用列出源包产生的二进制包。dpkg -s BINARY_PACKAGE_NAMEapt-cache show BINARY_PACKAGE_NAMEaptitude search '?source-package(^SOURCE_PACKAGE_NAME$)

该命令apt-get source下载源程序包。如果给它提供一个不是已知源软件包的参数,它将在可安装的二进制软件包的数据库中查找它,并尝试下载相应的源软件包。该命令apt-get build-dep采用相同的方法推导源软件包的名称,然后查询源软件包数据库以获得二进制软件包的列表(该Build-Dep:字段中的列表),然后安装这些二进制软件包。

Software Sources GUI上有一个复选框“使用源代码启用存储库”以供正式存储库使用,请确保已选中它。如果您手动添加第三方存储库,请确保同时添加deb-srcdeb行。


6

感谢@steeldriver,我弄清楚该怎么做。

只需向我添加以下代码/etc/apt/sources.list

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

deb-src信息库包含编译所需的源程序包(与二进制,即装即用包相反)。

编辑:添加此之后,您必须执行 sudo apt-get update


5

CLI方法

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

在Ubuntu 18.04 Docker映像上进行了测试。进行此更改后,我可以成功执行以下操作:

sudo apt-get build-dep hello

并在更改之前因错误而失败:

E: You must put some 'source' URIs in your sources.list

software-properties-gtk 选项“源代码”

从GUI,您可以运行:

software-properties-gtk

然后在“ Ubuntu软件”标签下,单击“源代码”:

在此处输入图片说明

这已经在下面添加了一些deb-src/etc/apt/sources.list,现在我可以了sudo apt-get build-dep <package>

在Ubuntu 16.04至18.04上测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.