Forma correta de liberar um software

1. Forma correta de liberar um software

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 23/08/2013 - 17:49h

Olá pessoal!

Sou desenvolvedor de software há mais de 4 anos, e apesar de bastante experiência na parte de projeto/desenvolvimento, há um tópico que me atormenta há bastante tempo.

Eis minha dúvida:
Digamos que eu tenha criado um software que utiliza diversas bibliotecas de terceiros, e eu queira liberar o meu código de uma maneira "light", ou seja, sem carregar todas as bibliotecas junto.

Logo, o que vem na cabeça, é utilizar um formato de pacote aceitável pela distribuição de destino (RPM, Deb., etc).

Pesquisei alguns formatos de pacotes (RPM e DEB) e vi que os mesmos permitem mencionar, em sua construção, suas dependências, para na hora de instalá-lo, o gerenciador de pacotes da máquina alerte para essas dependências e as resolva antes de instalar o pacote propriamente dito.

A minha dúvida é: como listar as dependências de um software?

Por exemplo:
Digamos que eu tenha utilizado o OpenSSL no meu projeto. Eu, obviamente, sei que o OpenSSL é uma dependência do meu pacote, porém como posso descobrir qual a versão mínima requerida desse pacote? Ou pior, como posso dizer qual a versão mínima da LibC necessária para meu projeto?

Ou então, digamos que eu tenha utilizado uma biblioteca mas não sei qual a procedência dela. Então, dou um search via gerenciador de pacotes e vejo que 5 bibliotecas diferentes suprem essa necessidade. Como saber qual a mais adequada para ser inserida como dependência?

Minha dúvida toda é: como criar uma lista EXATA de todas as dependências de um pacote, para que nenhuma delas seja esquecida e, futuramente, cause um erro na hora de aplicá-lo na máquina destino?

Desde já, grato pela atenção de todos!


  


2. Re: Forma correta de liberar um software

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/08/2013 - 22:40h

Supostamente, se você é o "dono" do programa, você sabe essas informações, e pode manualmente descrevê-las nos arquivos de configuração usados tanto pelo rpm-build quanto pelo dpkg-buildpackage.

Não existe mágica nesse sentido. Programar é artesanato, e parte desse trabalho de artesão é criar a instalação do produto. Um gerenciador de pacotes não tem como saber se você usou uma API que não existia numa versão mais antiga de uma biblioteca (ou que mudou ou mesmo deixou de existir numa versão mais nova) se você não souber disso e não disser a ele.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts