Atualizando software no Linux

Atualizando software no Linux

Eu tenho um programa chamado zlib que preciso atualizar. Como nunca baixei antes, suspeito que venha com o Ubuntu.

Normalmente eu apenas baixaria e compilaria, mas uma ferramenta diferente (vcftools) irá usá-lo, então não posso simplesmente instalá-lo localmente. Eu suspeito que preciso

  1. Instale a nova versão do zlib em algum lugar e diga ao sistema para procurar o zlib na pasta em que o instalei. Se o zlib for compatível com versões anteriores, tudo bem, espero.

  2. Atualize a versão atual (mas sudo apt-get install informa que tenho a versão mais recente)

Como eu faço isso? Obrigado.

Responder1

Acho que você está confundindo um pouco as coisas. zlibé apenas mais um pacote instalado localmente na sua caixa do Ubuntu. Eu primeiro veria se existe uma versão mais recente zlibem um dos repositórios Ubuntu/Debian que contém todo o software que você pode instalar (pré-construído) para Ubuntu/Debian e outros sistemas operacionais que derivam de qualquer uma dessas 2 distros.

$ apt-get install zlib

Mas antes de executarmos esse comando, vamos verificar se o pacote é de fato chamado zlib:

$ dpkg -l |grep zlib
ii  zlib1g:amd64                              1:1.2.7.dfsg-13                           amd64        compression library - runtime

Portanto, parece que o pacote é realmente chamado de zlib1g. Para atualizá-lo:

$ apt-get install zlib1g
Reading package lists... Done
Building dependency tree       
Reading state information... Done
zlib1g is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded.

Então, estou preso nessa versão específica ou não há uma mais recente disponível.

Outra abordagem

Você poderia facilmente baixar a versão mais recente do zlib, 1.2.8, e compilá-la, e então configurar seu LD_LIBRARY_PATH, temporariamente, para apontar para suas versões compiladas dessas bibliotecas. Isso permitiria que você experimentasse, sem precisar instalá-lo em seu sistema ainda.

Depois de definir o LD_LIBRARY_PATH, você pode invocar VCFtoolspara testá-los.

Próximos passos

Sua próxima opção seria encontrar um repositório de terceiros com uma versão mais recente do zlib1g incluída ou baixar o pacote fonte e criar seu próprio arquivo .deb usando-o. Existem vários tutoriais sobre como configurar seu próprio ambiente de construção de pacotes e construir seu primeiro arquivo .deb. Parece mais complicado do que realmente é.

Responder2

Uma determinada versão de uma distribuição vem com uma determinada versão de cada programa. É disso que se trata um lançamento. (Existem distribuições de “lançamento contínuo”, nas quais você gasta todo o seu tempo atualizando para a próxima versão de cada software. Se você tem coisas melhores para fazer com seu tempo, opte por uma distribuição lançada.)

Oversão do pacote zlib1gno Ubuntu 12.04 (preciso) é 1.2.3.4, e a versão no Ubuntu 12.10 (quantal) é 1.2.7. Você pode baixar o pacote fonte (todos os três arquivos: .dsce .diff.gzou .orig.tar.gz) .debian.tar.gzdo site do Ubuntu e compilar essa versão como um pacote.

sudo apt-get install build-essential fakeroot
sudo apt-get build-dep zlib
dpkg-source zlib_1.2.7.dfsg-13.dsc
cd zlib-1.2.7.dfsg
dpkg-buildpackage -rfakeroot -us -uc -b -nc
sudo apt-get install ../zlib1g-1.2.7.*.deb

Observe que a instalação de versões mais recentes de uma biblioteca pode causar incompatibilidades. Para o zlib, duvido que você tenha problemas, mas isso não é algo que você deva fazer levianamente.

Como alternativa, instale uma versão mais recente da biblioteca em algum lugar do seu diretório inicial e use-a apenas para o programa específico que precisa dela. Se você compilar e instalar o zlib no ~/lib/zlib1.2.8/lib, aqui está um script wrapper adequado:

#!/bin/sh
export LD_LIBRARY_PATH=~/lib/zlib1.2.8/lib
exec vcftools "$@"

informação relacionada