it-swarm-pt.tech

Quando usar pacotes no aptitude versus CPAN / Gems / PyPI?

Qual é a regra geral para quando instalar um pacote dos repositórios .deb oficiais, em comparação com quando instalar com o gerenciador de pacotes do idioma? Aqueles nos repositórios upstream estão frequentemente pelo menos um pouco desatualizados, mas eu também não quero que meus pacotes colidam com os "oficiais", e parece que o aptitude vai me forçar a instalar o servidor oficial. em muitos casos, de qualquer maneira.

5
Benjamin Pollack

Esta é uma pergunta difícil de responder em geral.

Os pacotes .deb oficiais oferecem estabilidade e suporte completo pela comunidade Ubuntu. Se você não precisar da versão mais recente, talvez seja melhor aproveitar essa solução. Você também tem o suporte do gerenciador de pacotes para atualizações, remoção, etc.

Se você precisar de suporte do upstream ou precisar dos recursos mais recentes, será melhor obtê-lo dos sistemas de distribuição, como CPAN, gem, pear etc.

6
txwikinger

Na minha (reconhecidamente não tão vasta) experiência, os gerenciadores de pacotes específicos de cada idioma não fazem um trabalho tão bom quanto os de .deb no rastreamento de dependências que são totalmente fora o limite da linguagem (eu sou especialmente pensando em dependências em bibliotecas codificadas em C que um pacote envolve para uso em Python, Perl, Ruby, etc).

Se (digamos) um Pypi Python package 'barfoo' requer alguma biblioteca libfoobar para construir a extensão _bf.so Python que o pacote usa, e precisa que libfoobar esteja pelo menos no release 5.2, é até você para rastrear qual .deb fornece versões adequadas de libfoobar (e você pode não encontrar uma, se o pacote Pypi estiver rastreando próximo ao último e melhor do upstream) - e de alguma forma manter o controle caso você desinstale barfoo mais tarde o fornecedor libfoobar fica "órfão" e poderia/deveria ser removido).

Eu não acho que o problema de integrar o Pypi/CPAN/etc com outros sistemas de distribuição de pacotes ainda possa ser considerado um "resolvido". Para dores de cabeça mínimas de administração, se você puder conviver com um .deb oficial (não precisa de feechurz & c ultimo e melhor), acho que seria aconselhável; no outro extremo, é claro, para um pacote que você do deseja ser super atualizado (por exemplo, você é um dos autores/mantenedores do pacote ;-), existe a opção de manter um repo fresco em qualquer sistema de controle de versão que o pacote usa (svn, hg, git, Bazaar, ...) e mantê-lo construído a partir de fontes. Pypi/CPAN/& c estão "no meio". Certamente, em algumas ocasiões, esse meio termo também será aconselhável.

E, uma opção que pode ser considerada é construir seu próprio pacote .deb (baseado no Pypi/CPAN/& c, ou até mesmo em fontes upstream) e manter seu repositório de tais pacotes (para aqueles pacotes que você achar oficiais .deb repos muito pobres ou para trás). Não é muito mais problemático do que instalar de outra forma (rastrear manualmente as dependências fora do idioma) e ajudar na identificação de "pacotes órfãos" e similares (além disso, se você publicar sua embalagem, também poderá ajudar outras pessoas ;-).

5
Alex Martelli

Eu realmente fui contra o uso do Aptitude para gerenciar pacotes de outro Gerenciador de Pacotes. CPAN, Gems, Pecl, Pear, etc são gerentes de pacotes para seus respectivos idiomas. Eles são o que você deve usar como padrão - na minha opinião - porque é para isso que eles são projetados. Para não mencionar a maioria de todos os que lidam com upgrades e atualizações agora (atualização gem, upgrade gem, etc). Seria como usar o yum para instalar o Apache na sua máquina Ubuntu.

Dito isto, há algumas ocasiões em que a versão da Aptidão reina suprema. Uma delas é quando uma instalação de um módulo de um gerenciador de pacotes de idiomas falha (isso é tipicamente devido a vários problemas de configuração). Eu raramente me deparo com esse problema - mas quando eu faço o pacote correlacionado do Aptitude, o truque.

Prioridade na minha opinião Language Package Manager> Aptitude.

1
Marco Ceppi