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?
fonte
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?
apt-cache depends pkgname
mostrará as dependências de um pacote.
Se você quiser tudo em um comando, poderá fazer pior do que:
apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`
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.
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?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 reversafoo
:ou
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 usandoaptitude mark
ou oapt-mark
comandoNo 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 oequiv
pacote para criar um pacote fictício com as dependências corretas para seu programa compilado manualmente. Veja informações sobreequivs
em O APT HOWTOfonte
No caso de construir pkgname a partir de fontes
fonte