Atualizando o software no linux

2

Eu tenho um programa chamado zlib que eu preciso atualizar. Como eu nunca baixei antes de suspeitar que vem com o Ubuntu.

Normalmente eu acabei de baixar e compilá-lo, mas uma ferramenta diferente (vcftools) vai usá-lo, então não posso simplesmente instalá-lo localmente. Eu suspeito que eu precise

  1. Instale a nova versão do zlib em algum lugar e diga ao sistema para procurar o zlib na pasta que eu instalei. Se o zlib é compatível com versões anteriores, isso deve ser ok, espero.

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

Como faço isso? Obrigado.

    
por The Unfun Cat 16.10.2013 / 11:53

2 respostas

2

Eu acho que você está confundindo as coisas um pouco. zlib é apenas outro pacote instalado localmente na sua caixa do Ubuntu. Eu veria se há uma versão mais recente do zlib em um dos repositórios do Ubuntu / Debian que contém todos os softwares que você pode instalar (pré-construídos) para o Ubuntu / Debian e outros sistemas operacionais que derivam de uma dessas duas distros.

$ apt-get install zlib

Mas antes de fazermos esse comando, vamos checar 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 é na verdade chamado 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 a essa versão específica ou não há uma nova disponível.

Outra abordagem

Você pode facilmente baixar a versão mais recente de zlib , 1.2.8 e compilá-la e, em seguida, definir seu LD_LIBRARY_PATH , temporariamente, para apontar para as versões compiladas dessas bibliotecas. Isso permitiria que você a experimentasse, sem ter que instalá-lo em seu sistema ainda.

Depois de definir o LD_LIBRARY_PATH , você pode invocar VCFtools para testá-lo.

Próximas etapas

Sua próxima opção seria encontrar um repositório de terceiros com uma versão mais nova do zlib1g incluído, ou fazer o download do pacote de origem e criar seu próprio arquivo .deb usando-o. Existem inúmeros tutoriais sobre como configurar seu próprio ambiente de criação de pacotes e criar seu primeiro arquivo .deb. Parece mais complicado do que realmente é.

    
por 16.10.2013 / 15:04
2

Um determinado lançamento de uma distribuição é fornecido com uma versão específica de cada programa. Isso é o que um lançamento é tudo. (Existem distribuições de "rolling release", onde 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, mantenha uma distribuição liberada.)

A versão do pacote zlib1g no Ubuntu 12.04 (precisa) é 1.2.3.4, e a versão no Ubuntu 12.10 (quantal ) é 1.2.7. Você pode fazer o download do pacote fonte (todos os três arquivos: .dsc , .diff.gz e .orig.tar.gz ou .debian.tar.gz ) no 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 zlib, duvido que você tenha problemas, mas isso não é algo que você deva fazer de ânimo leve.

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

#!/bin/sh
export LD_LIBRARY_PATH=~/lib/zlib1.2.8/lib
exec vcftools "$@"
    
por 17.10.2013 / 02:56