apt-get O build-dep não consegue encontrar um pacote fonte

12

Eu já segui este guia para desativar a pasta do botão do meio do mouse no meu Ubuntu 12.04.

Funciona como um encanto.

Agora estou tentando alcançar o mesmo no Linux Mint 17. Quando tento

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

me dá a seguinte saída:

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

Para mim, parece que o apt-get está de alguma forma "resolvendo" 'libgtk2.0-0' to 'gtk+2.0' , mas então não encontra nenhum pacote chamado assim.

EDITAR: embora agora eu possa compilar o programa (veja minha resposta), eu ainda não sei o que o Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' deveria significar. Qualquer ideia sobre isso seria apreciada, obrigado!

    
por panepeter 30.09.2014 / 12:45

3 respostas

14

Como outros já observaram, certifique-se de que, para cada entrada deb … em /etc/apt/sources.list e /etc/apt/sources.list.d/* , você tenha uma entrada deb-src … correspondente. O resto da linha deve ser idêntico. A entrada deb é para pacotes binários (ou seja, pronta para instalar), o deb-src é para pacotes de origem (ou seja, pronto para compilar). A razão pela qual os dois tipos de fontes são separados é que eles são gerenciados de maneira muito diferente: os pacotes binários têm um mecanismo de rastreamento de dependência e uma lista atualmente instalada, enquanto os pacotes de origem são rastreados apenas para que possam ser baixados convenientemente. Note que ao discutir os repositórios de pacotes, a palavra source significa duas coisas não relacionadas: uma fonte como em um local para baixar pacotes, e um pacote fonte em oposição a um pacote binário.

libgtk2.0-0 é o nome de um pacote binário. É construído a partir de um pacote fonte chamado gtk+2.0 . A origem da razão e os nomes dos pacotes binários nem sempre coincidem é que construir um pacote fonte pode produzir múltiplos pacotes binários; por exemplo, gtk+2.0 é a fonte de 14 pacotes, pois é dividida em duas bibliotecas ( libgtk2.0 , libgail ), corresponding packages to build programs using these libraries ( … -dev ), documentation for developers ( … -doc ), companion programs ( libgtk2.0-bin '), etc.

Você pode ver o nome do pacote de origem correspondente a um pacote binário verificando a linha Source: … na saída de dpkg -s BINARY_PACKAGE_NAME (se o pacote estiver instalado) ou apt-cache show BINARY_PACKAGE_NAME . Você pode listar os pacotes binários produzidos por um pacote fonte com aptitude search '?source-package(^SOURCE_PACKAGE_NAME$) .

O comando apt-get source faz o download de um pacote de origem. Se você der um argumento que não seja um pacote fonte conhecido, ele procurará no banco de dados de pacotes binários instaláveis e tentará fazer o download do pacote fonte correspondente. O comando apt-get build-dep segue a mesma abordagem para deduzir o nome de um pacote de origem, em seguida, consulta o banco de dados do pacote de origem para obter uma lista de pacotes binários (a lista no campo Build-Dep: ) e instala esses pacotes binários. p>

A GUI Fontes de Software tem uma caixa de seleção "habilitar repositórios com código-fonte" para repositórios oficiais, certifique-se de que está marcada. Se você adicionar repositórios de terceiros manualmente, adicione as linhas deb-src e deb .

    
por 01.10.2014 / 00:55
5

Graças a @steeldriver, descobri o que fazer.

Apenas tive que adicionar a seguinte mensagem ao meu /etc/apt/sources.list :

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib
Os repositórios

deb-src contêm pacotes de fontes (em oposição a pacotes binários prontos para instalação) necessários para compilar.

Editar: Depois de adicionar isso, você deve executar sudo apt-get update

    
por 30.09.2014 / 15:40
3

Método CLI

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

Testado na imagem do Docker do Ubuntu 18.04. Depois dessa mudança, posso fazer com sucesso por exemplo:

sudo apt-get build-dep hello

e antes da mudança falhou com o erro:

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

software-properties-gtk option "Código-fonte"

Na GUI, você pode executar:

software-properties-gtk

depois, na guia "Software Ubuntu", clique em "Código-fonte":

Isso adicionou algumas linhas deb-src em /etc/apt/sources.list e agora posso fazer sudo apt-get build-dep <package> .

Testado no Ubuntu 16.04 a 18.04.

    
por 07.04.2018 / 21:33

Tags