AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 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

Compreendendo o processo apt-get build-dep

  • 772

Adendo adicionado ao final desta pergunta publicada para responder à resposta de Stephen Kitt.


Publicação cruzada: não é uma boa ideia postar no fórum asymptote (sourceforge).

Nesta postagem, descrevo experimentos que fiz tentando executar o apt-get build-depcomando e também executando o apt-updatecomando. Gostaria de entender o que está causando esses erros e se (usando o código-fonte extraído, como está) há uma solução.

No Linux Mint 22, instalei o VirtualBox 7 e criei um convidado Linux Mint 22, para experimentação. No convidado, primeiro instalei o TexLive e, em seguida, instalei com sucesso o Asymptote 3.00, um plug-in de látex, a partir do seu código-fonte. Para fazer isso, tive que instalar primeiro os seguintes pacotes:

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

Após esse experimento bem-sucedido, restaurei o snapshot do VirtualBox tirado logo após instalar o TexLive e extrair o código-fonte do Asymptote 3.00. Como um segundo experimento, tentei então encurtar o processo. Fui avisado de que posso deixar uma única instalação lidar com as dependências, por meio dos seguintes comandos:

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

Com base na pesquisa preliminar, sudo xedatualizei \etc\apt\sources.list com a seguinte linha:

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

Em seguida, naveguei para /home/steve/Downloads/asymptote-3.00 e executei sudo apt-get build-dep asymptote. Isso falhou com a mensagem:

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

Para investigar, executei então sudo apt update, o que resultou

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)
...

Com base no apt updaterelatório acima, tentei novamente sudo apt-get build-dep asymptote, após substituir a linha anexada por:

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

Isso resultou

$ 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.

Investigando novamente, executei novamente sudo apt update, o que resultou

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

Investigando mais a fundo, a lista completa de subdiretórios do diretório 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 

Adendo
I: testei e verifiquei a resposta de Stephen Kitt.

Depois de ler sua resposta e recarregar o instantâneo (anterior) do VirtualBox, descobri que as entradas debrather than já estavam incluídas em .deb-src/etc/apt/sources.list.d/official-source-repositories.list

Eu já havia determinado que, nessa situação, o apt-get build-dep asymptotecomando não funcionaria. Era necessário adicionar as deb-srcentradas em \etc\apt\sources.list. Conforme sua resposta, adicionei as cinco deb-srcentradas em \etc\apt\sources.list.

Então, eu executei menu : software-sources : enable-source-code-repositories : update-cache.

Então eu executei apt update.

Então, naveguei até o diretório do asymptotecódigo extraído e executei o apt-get build-dep asymptotecomando.

Presumivelmente, isso funcionou bem (ou seja, abortei após 10 minutos porque o processamento do VirtualBox é lento e o processo estava adicionando mais de 1 GB de empacotamento).

Com base em um comentário na resposta de Stephen Kitt, executei novamente todo o experimento, com uma exceção: em vez de adicionar todas as 5 deb-srclinhas \etc\apt\sources.list, adicionei apenas a deb-src http://archive.ubuntu.com/ubuntu noble main restricted universe multiverselinha.

Isso também pareceu funcionar perfeitamente. Novamente, abortei a execução do VirtualBox após 10 minutos, pelo mesmo motivo.

No geral, esta foi uma ótima experiência de aprendizado para mim.

linux-mint
  • 1 1 respostas
  • 42 Views

1 respostas

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

    As deb-srcentradas não devem apontar para o código-fonte que você está tentando construir; elas devem apontar para os pacotes-fonte da distribuição que você está usando. Para o Mint 22, você desejaria

    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
    

    (Pois asymptotea linha que importa é a primeira noblelinha.)

    Provavelmente eles já estão habilitados (em /etc/apt/sources.list.d/official-source-repositories.list). Se não estiverem, habilite-os, então apt-get build-depserá possível encontrar os asymptotemetadados do pacote de origem e instalar suas dependências de compilação.

    Tudo isso funciona porque o Ubuntu, através do Debian, já tem umasymptote pacote. apt-get build-depnão está descobrindo as dependências do código-fonte que você extraiu, ele está usando as dependências descritas pelos mantenedores do pacote. É por isso que build-depprecisa de ponteiros para o pacote-fonte da distribuição em vez do código-fonte que você extraiu; isso também significa que essa técnica não funcionará para um projeto que ainda não esteja empacotado, e mesmo quando o projeto estiver empacotado, pode não funcionar se a versão que você está construindo tiver dependências diferentes daquela que está empacotada em sua distribuição.

    • 4

relate perguntas

  • Atualizar libinput no Linux Mint

  • linux java -version funciona apenas para usuário root [fechado]

  • Qual é o procedimento correto para substituir o MDM pelo LightDM no Linux Mint?

  • Danos no kernel do Linux Mint

  • Configurações de Arquivo do Gerenciador de Pacotes Synaptic

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve