AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 792517
Accepted
user2661923
user2661923
Asked: 2025-03-16 02:33:47 +0800 CST2025-03-16 02:33:47 +0800 CST 2025-03-16 02:33:47 +0800 CST

了解 apt-get build-dep 过程

  • 772

在本问题末尾添加了附录,以回应 Stephen Kitt 的回答。


交叉发布:在渐近线(sourceforge)论坛上发布帖子没有什么乐趣。

在这篇文章中,我描述了我尝试执行该apt-get build-dep命令以及执行该apt-update命令时进行的实验。我想了解导致这些错误的原因,以及是否有补救措施(使用提取的源代码)。

在 Linux Mint 22 中,我安装了 VirtualBox 7 并创建了一个 Linux Mint 22 客户机,用于实验。在客户机中,我首先安装了 TexLive,然后从其源代码成功安装了 Latex 插件 Asymptote 3.00。为此,我必须首先安装以下软件包:

freeglut, cmake, libx11-dev, bison, flex, libgl1-mesa-dev, libglu1-mesa-dev  zlib1g-dev

这次实验成功后,我恢复了刚安装 TexLive 并提取 Asymptote 3.00 源代码后拍摄的 VirtualBox 快照。作为第二次实验,我尝试简化该过程。有人建议我可以通过以下命令让单个安装处理依赖项:

apt-get build-dep asymptote 
./configure
make all
make install

根据初步研究,我sudo xed使用以下行更新了 \etc\apt\sources.list:

deb-src file:/home/steve/Downloads/asymptote-3.00 unstable main contrib 

然后我导航到 /home/steve/Downloads/asymptote-3.00 并执行sudo apt-get build-dep asymptote。此操作失败并显示以下消息:

$ sudo apt-get build-dep asymptote
Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list

为了进行调查,我随后执行sudo apt update了

Get:1 file:/home/steve/Downloads/asymptote-3.00 unstable InRelease
Ign:1 file:/home/steve/Downloads/asymptote-3.00 unstable InRelease
Get:2 file:/home/steve/Downloads/asymptote-3.00 unstable Release
Err:2 file:/home/steve/Downloads/asymptote-3.00 unstable Release
File not found - /home/steve/Downloads/asymptote-3.00/dists/unstable/Release (2: No such file or directory)
...

根据以上apt update报告,我将sudo apt-get build-dep asymptote附加的行替换为以下内容后重试:

deb-src file:/home/steve/Downloads/asymptote-3.00

这产生了

$ sudo apt-get build-dep asymptote
E: Malformed entry 8 in list file /etc/apt/sources.list (Suite)
E: The list of sources could not be read.
E: Malformed entry 8 in list file /etc/apt/sources.list (Suite)
E: The list of sources could not be read.

再次调查,我重新执行sudo apt update,结果

$ sudo apt update
E: Malformed entry 8 in list file /etc/apt/sources.list (Suite)
E: The list of sources could not be read.

进一步调查,asymptote 3.0 目录的完整子目录列表如下:

backports           examples                patches                         
base                gc                      prc             
build-scripts       gl-matrix-2.4.0-pruned  tests           
cmake-preset-files  GUI                     thirdparty_impl 
cmake-scripts       libatomic_ops           tinyexr         
cudareflect         LspCpp                  webgl           
cxxtests            misc                    windows         
doc 

附录
我对 Stephen Kitt 的答案进行了测试验证。

读完他的回答并重新加载(之前的)VirtualBox 快照后,我发现而deb不是deb-src条目已经包含在内/etc/apt/sources.list.d/official-source-repositories.list。

我已经确定在这种情况下,该apt-get build-dep asymptote命令不起作用。必须将deb-src条目添加到 中\etc\apt\sources.list。根据他的回答,我将这五个deb-src条目添加到 中\etc\apt\sources.list。

然后,我执行了menu : software-sources : enable-source-code-repositories : update-cache。

然后我执行了apt update。

然后,我导航到提取的代码的目录asymptote并执行apt-get build-dep asymptote命令。

据推测,这工作得很好(即我在 10 分钟后中止,因为 VirtualBox 处理很慢,并且该过程增加了额外的 1+ gb 的包装)。

根据 Stephen Kitt 的回答中的评论,我重新执行了整个实验,但有一个例外:我没有将所有 5deb-src行都添加到中\etc\apt\sources.list,而是只添加了deb-src http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse行。

这似乎也运行得很好。同样,出于同样的原因,我在 10 分钟后中止了 VirtualBox 的运行。

总的来说,这对我来说是一次很棒的学习经历。

linux-mint
  • 1 1 个回答
  • 42 Views

1 个回答

  • Voted
  1. Best Answer
    Stephen Kitt
    2025-03-16T06:35:24+08:002025-03-16T06:35:24+08:00

    这些deb-src条目不应该指向你试图构建的源代码;它们应该指向你正在使用的发行版的源包。对于 Mint 22,你需要

    deb-src http://packages.linuxmint.com wilma main upstream import backport
    
    deb-src http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
    deb-src http://archive.ubuntu.com/ubuntu noble-backports main restricted universe multiverse
    
    deb-src http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse
    

    (因为asymptote最重要的是第一行noble。)

    这些可能已经启用(在 中/etc/apt/sources.list.d/official-source-repositories.list)。如果尚未启用,请启用它们,然后apt-get build-dep将能够找到asymptote源包的元数据并安装其构建依赖项。

    所有这些都有效,因为 Ubuntu 通过 Debian已经有一个asymptote包。apt-get build-dep它不是从您提取的源代码中找出依赖项,而是使用包维护者描述的依赖项。这就是为什么build-dep需要指向发行版的源包而不是您提取的源代码的指针;这也意味着这种技术不适用于尚未打包的项目,即使项目已打包,如果您正在构建的版本与发行版中打包的版本具有不同的依赖项,它也可能无法工作。

    • 4

相关问题

  • 在 Linux Mint 上更新 libinput

  • linux java -version 仅适用于 root 用户[关闭]

  • 在 Linux Mint 上用 LightDM 替换 MDM 的正确程序是什么?

  • Linux Mint 内核损坏

  • Synaptic 包管理器文件设置

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve