Instale apenas dependências de um determinado pacote no Debian ou Ubuntu (apt)

15

Existe uma maneira melhor de instalar apenas as dependências necessárias de um pacote, em vez de instalá-lo diretamente com o apt-get (ou qualquer outro frontend do dpkg) e removê-lo imediatamente, deixando de lado suas dependências?

    
por Vinícius Ferrão 24.02.2014 / 18:17

4 respostas

19

apt-cache depends pkgname mostrará as dependências de um pacote.

Se você quer tudo em um comando, você pode fazer pior que:

apt-get install 'apt-cache depends pkgname | awk '/Depends:/{print$2}''
    
por 24.02.2014 / 18:58
15

apt-get fornece um comando exatamente para isso ...

apt-get build-dep <package name>

Nas páginas do manual você recebe

build-dep causes apt-get to install/remove packages in an attempt to satisfy the build dependencies for a source package. By default the dependencies are satisfied to build the package natively. If desired a host-architecture can be specified with the --host-architecture option instead.

    
por 24.02.2014 / 19:29
4
O

aptitude permitirá que você especifique uma consulta em vez de um nome de pacote ao instalar. Se você quisesse instalar as dependências do pacote chamado foo , você pode instalar os pacotes que têm dependência reversa em foo :

aptitude install '?reverse-depends(foo)'

ou

aptitude install '~Rfoo'

O problema com a instalação de um pacote e sua remoção, é que todos os pacotes que são instalados como dependências serão marcados como "instalados automaticamente" e serão removidos por qualquer ação de instalação / remoção / atualização pelo aptitude ou quando você execute apt-get autoclean , a menos que você os marque como instalados manualmente usando aptitude mark ou o comando apt-mark .

No entanto, isso levanta a questão de por que você gostaria de fazer isso, meu melhor palpite é que você está tentando instalar dependências para algum software que você vai compilar manualmente. Nesse caso, você deve instalar as dependências de compilação primeiro com apt-get build-dep packagename , mas deve criar um pacote fictício que tenha as dependências de tempo de execução (que geralmente diferem das dependências de compilação) usando o pacote equiv para construir um fictício pacote com as dependências corretas para o seu programa compilado manualmente. Veja informações sobre equivs em O APT HOWTO

    
por 24.02.2014 / 20:54
3

No caso de construir o pkgname a partir de fontes

apt-get build-dep pkgname
    
por 24.02.2014 / 19:27