Como posso remover todas as dependências de compilação de um pacote específico?


10

Quando eu quero compilar algo da fonte no Ubuntu / Debian, normalmente recebo dependências de compilação executando " sudo apt-get build-dep PACKAGE_NAME" no terminal.

Eles são (geralmente) inúteis quando o trabalho de compilação é concluído.

Então, como faço para remover todas as dependências de compilação de um pacote específico?

Respostas:


5

Para descobrir as dependências de compilação de um programa, você pode executar apt-cache showsrc pkgnamee listar, entre outras informações Build-Depends, os que geralmente são arquivos que terminam em -dev; embora valha a pena verificar se algum dos arquivos (principalmente os que não -devestão marcados ) são necessários por outros programas. Você pode descobrir isso usando apt-cache depends filee apt-cache rdepends file. O exemplo a seguir é para Shotwell:

apt-cache showsrc shotwell

Depende da compilação: debhelper (> = 7.0.50 ~), m4, valac-0.16 (> = 0.15), libgee-dev (> = 0.5.0), libgtk-3-dev (> = 3.0.11), libexif O comando libsqlite3-dev (> = 3.5.9), libgexiv2-dev (> = 0.4.1-1build1), libgnomevfs2-dev (> = 2.24.2), libgphoto2-2-dev (> = 2.4.2), libsoup2.4-dev (> = 2.26.0), libxml2 (> = 2.6.32), libunique-3.0-dev (> = 1.0.0), libwebkitgtk-3.0-dev (> = 1.1.5), libgudev-1.0-dev (> = 145), libdbus-glib-1-dev (> = 0.80), libraw-dev (> = 0.13.1-2), libusb-dev, libjson-glib -dev (> = 0.7.6), libgstreamer0.10-dev (> = 0.10.28), libgstreamer-plugins-base0.10-dev (> = 0.10.32), python-scour, libunity-dev, liblaunchpad- integração-3.0-dev (> = 0.1.36), librest-dev

Existe um comando para fazer tudo de uma só vez no site webupd8 , mas eu descobri que ele não parece funcionar de maneira confiável com a versão atual do Ubuntu, pois parece remover muito. Eu tentei com Pinta e sugeriu a remoção de toda a biblioteca mono. Há discussões sobre esses problemas com o uso de comandos como o webupd8 no Launchpad . Tenha muito cuidado ao experimentar qualquer 'solução' que possa encontrar.

É uma pena que não haja autoremovecomando para build-deppacotes instalados.


1
Eu tentei o método aptitude e sim, você está certo, remove muito ... pode por causa de dependências cruzadas. Uma outra mothod eu encontrei é passar a seguinte opção (ao usar comando build-dep): sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME. Agora eles podem ser removidos com apt-get autoremove. Mas isso funciona somente após a remoção do pacote principal.
Khurshid Alam

2
De qualquer forma, eu acabei de aprender que a maneira correta de fazer isso é usar pbuilder. Portanto, ninguém precisa se preocupar em instalar / desinstalar dependências.
Khurshid Alam

6

Tumbleweed escreve :

Para o futuro, eu recomendo usar mk-build-deps... em vez de aptitude build-dep. Isso deixa um pacote ... em seu sistema, [que tem dependências] nos build-deps, que você pode desinstalar facilmente mais tarde.

mk-build-deps pode ser instalado com sudo apt install devscripts


4

Opção 1:

Lembre-se de quais pacotes foram instalados sudo apt-get build-dep PACKAGE_NAMEe remova-os após a compilação.

Opção 2:

apt-cache showsrc fornece muitas informações sobre pacotes de origem, incluindo uma lista de dependências de compilação.

apt-cache showsrc PACKAGE_NAME

Por exemplo:

$ apt-cache showsrc pithos
Package: pithos
Binary: pithos
Version: 0.3.17~git07dcbd86a1
Section: python
Maintainer: Kevin Mehall <km@kevinmehall.net>
Build-Depends: cdbs (>= 0.4.43), debhelper (>= 6), python, python-central (>= 0.6.11), python-distutils-extra (>= 2.10)
Architecture: all
Standards-Version: 3.8.2
Format: 1.0
Directory: pool/main/p/pithos
Files:
 cdf2129923e62bb62c246965453b40bd 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
 97689e8ada8be527d689f2c83415d3b0 1544 pithos_0.3.17~git07dcbd86a1.dsc
Python-Version: current
Checksums-Sha1: 35cbf3ae52922e50a0b81afcce2cd97a86afb254 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
Package-List: pithos deb python extra
Checksums-Sha256: 2b704d86f3dc1d36d180177d11e578bdcf74ea97b09b530144afe754e570b262 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
$ sudo apt-get remove cdbs debhelper python python-central python-distutils-extra

O risco com esta opção é que você pode remover um pacote que é importante para algo além da criação de PACKAGE_NAME. Basta ler a lista de pacotes a serem removidos antes de prosseguir.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.