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 fora suas dependências?
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 fora suas dependências?
Respostas:
O apt-get fornece um comando exatamente para isso ...
apt-get build-dep <package name>
Nas páginas de manual que você obtém
O build-dep faz com que o apt-get instale / remova pacotes na tentativa de satisfazer as dependências de compilação de um pacote de origem. Por padrão, as dependências são satisfeitas para criar o pacote nativamente. Se desejado, uma arquitetura de host pode ser especificada com a opção --host-architecture.
O aptitude permitirá que você especifique uma consulta em vez de um nome de pacote durante a instalação. Se você deseja instalar as dependências do pacote nomeado foo
, é possível instalar os pacotes que possuem uma dependência reversa foo
:
aptitude install '?reverse-depends(foo)'
ou
aptitude install '~Rfoo'
O problema de instalar um pacote e removê-lo é que todos os pacotes 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 do aptitude ou quando você executar, a apt-get autoclean
menos que você execute marque-os como instalados manualmente usando aptitude mark
ou o apt-mark
comando
No entanto, isso levanta a questão de por que você desejaria fazer isso, meu melhor palpite é que você está tentando instalar dependências para alguns softwares que você irá compilar manualmente. Nesse caso, você deve instalar primeiro as dependências de compilação apt-get build-dep packagename
, mas deve criar um pacote fictício que possua as dependências de tempo de execução (que geralmente diferem das dependências de compilação) usando o equiv
pacote para criar um pacote fictício com as dependências corretas para seu programa compilado manualmente. Veja informações sobre equivs
em O APT HOWTO
No caso de construir pkgname a partir de fontes
apt-get build-dep pkgname
build dependencies
edependencies
? Por exemplo, se você normalmente instala um programa, obtém dependências que ele realmente precisa executar e, com dependências de compilação, penso mais em bibliotecas, compiladores, coisas assim. Então, como não tenho certeza (esta resposta tem votos positivos), mas parece-me que não é trivial que obter dependências de compilação seja o mesmo que obter dependências (executadas) que os pacotes possuem?