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

pan*_*ter 20 compiling apt

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

奇迹般有效。

现在我试图在我的 Linux Mint 17 上实现同样的目标。当我尝试

sudo apt-get build-dep libgtk2.0-0
Run Code Online (Sandbox Code Playgroud)

它给了我以下输出:

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
Run Code Online (Sandbox Code Playgroud)

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

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

Gil*_*il' 21

正如其他人已经指出,确保每一个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)、使用这些库构建程序的相应包 ( …-dev)、开发人员文档 ( …-doc)、配套程序 ( libgtk2.0-bin) 等。

您可以通过检查(如果已安装包)或Source: …的输出中的行来查看与二进制包对应的源包的名称。dpkg -s BINARY_PACKAGE_NAMEapt-cache show BINARY_PACKAGE_NAME

您可以列出由源包生成的二进制包aptitude search '?source-package(^SOURCE_PACKAGE_NAME$)

该命令apt-get source下载一个源包。如果你给它一个不是已知源包的参数,它会在可安装二进制包的数据库中查找它并尝试下载相应的源包。

该命令apt-get build-dep按照相同的方法推导源包的名称,然后查询源包数据库以获取二进制包列表(Build-Dep:字段中的列表),并安装这些二进制包。

Software Sources GUI 有一个复选框“enable repositories with source code”用于官方存储库,确保它被勾选。如果您手动添加第三方存储库,请确保同时添加deb-srcdeb行。


Cir*_*郝海东 9

命令行方式

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 18.04 Docker 镜像上测试。在此更改后,我可以成功执行例如:

sudo apt-get build-dep hello
Run Code Online (Sandbox Code Playgroud)

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

E: You must put some 'source' URIs in your sources.list
Run Code Online (Sandbox Code Playgroud)

另见:https : //askubuntu.com/questions/496549/error-you-must-put-some-source-uris-in-your-sources-list/857433#857433

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

从 GUI 中,您可以运行:

software-properties-gtk
Run Code Online (Sandbox Code Playgroud)

然后在“Ubuntu 软件”选项卡下单击“源代码”:

在此处输入图片说明

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

在 Ubuntu 16.04 到 18.04 上测试。


pan*_*ter 6

感谢@steeldriver,我想出了该怎么做。

只需将以下 ling 添加到我的/etc/apt/sources.list

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib
Run Code Online (Sandbox Code Playgroud)

deb-src 存储库包含编译所需的源包(而不是二进制、即装即用的包)。

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