O empacotamento de um aplicativo para APT envolve apontar o aplicativo para usar as dependências comuns do APT?

1

Eu recentemente aprendi que as distribuições baseadas no Debian têm essencialmente uma coleção fixa de dependências e bibliotecas comuns que qualquer aplicativo instalado através de um gerenciador de pacotes é requerido para usar.

Compare isso com o Windows, em que acredito que cada aplicativo forneça suas próprias dependências - e, portanto, uma instalação do sistema operacional Windows terá instâncias das mesmas dependências / bibliotecas instaladas várias vezes e cada aplicativo precisará gerenciar a atualização desses arquivos. dependências por conta própria.

Eu sei que alguns desenvolvedores desenvolvem seu software para ser compatível com o gerenciador de pacotes APT, mas eu imagino que deve haver muitos aplicativos onde os desenvolvedores criaram o software da maneira "Windows".

Então, minha pergunta é: se os desenvolvedores upstream criaram seu software com a intenção de distribuir uma grande instalação monolítica completa com dependências agregadas, os mantenedores do pacote APT precisam reescrever a fonte para que o software use a coleção comum de dependências que as dependências locais?

Em caso afirmativo, isso ocorre com frequência e essa é uma tarefa importante para os mantenedores de pacotes?

    
por the_velour_fog 26.06.2016 / 04:04

2 respostas

2

So my question is, if the upstream developers created their software with the intention to distribute a large monolithic install complete with bundled dependencies, do the APT package maintainers need to rewrite the source so that the software uses the communal collection of dependencies rather than the local dependencies?

Não necessariamente, desde que a instalação monolítica não entre em conflito com uma biblioteca ou nome de arquivo existente. Ou seja, se o sistema já tiver um /lib/foobar (versão 12) e o pacote monolítico exigir e empacotar foobar v. 9, esse pacote monolítico não poderá armazenar seu foobar v. 9 usando o nome de arquivo /lib/foobar , porque esse nome de caminho é usado, mas poderia usar /lib/foobar_v9 , ou talvez .../monolithic_app_dir/lib/foobar .

If so, does this occur often and is this a major task for package maintainers?

Sim, prevenir e, se necessário, resolver vários níveis de dependência, é muito do que os mantenedores de pacotes fazem.

    
por 26.06.2016 / 04:21
2

Política Debian é que bibliotecas, ferramentas, etc. empacotadas com um programa devem ser desmembradas dele ao criar um pacote debian. A política Debian também exige que as bibliotecas sejam divididas em pelo menos um pacote de tempo de execução (por exemplo, libfoo-version ) e uma versão de desenvolvimento com a biblioteca estática e cabeçalhos (por exemplo, libfoo-version-dev ).

O que você faz em seu próprio sistema é de sua própria conta, mas espera-se que qualquer desenvolvedor Debian (DD) que empacote um aplicativo monolítico seja descompactado - o que significa depender das bibliotecas existentes no Debian ou criar pacotes para eles se não usarem. já existe.

Outras distros podem ter políticas diferentes, mas a maioria exigirá pacotes nos repositórios oficiais para serem desmembrados - porque o empacotamento subverte o ponto de empacotamento e torna mais difícil, por exemplo, aplicar atualizações de segurança de biblioteca a todos os programas que usam um determinado pacote. biblioteca.

    
por 26.06.2016 / 05:47