Actualizar software en Linux

Actualizar software en Linux

Tengo un programa llamado zlib que necesito actualizar. Como nunca lo había descargado antes, sospecho que viene con Ubuntu.

Normalmente simplemente lo descargaría y compilaría, pero una herramienta diferente (vcftools) lo usará, por lo que no puedo instalarlo localmente. Sospecho que necesito

  1. Instale la nueva versión de zlib en algún lugar y dígale al sistema que busque zlib en la carpeta donde lo instalé. Si zlib es compatible con versiones anteriores, esto debería estar bien, espero.

  2. Actualice la versión actual (pero sudo apt-get install me dice que tengo la versión más reciente)

¿Cómo hago esto? Gracias.

Respuesta1

Creo que estás confundiendo un poco las cosas. zlibes solo otro paquete instalado localmente en su caja de Ubuntu. Primero vería si hay una versión más nueva zliben uno de los repositorios de Ubuntu/Debian que contenga todo el software que puede instalar (precompilado) para Ubuntu/Debian y otros sistemas operativos que se derivan de cualquiera de esas 2 distribuciones.

$ apt-get install zlib

Pero antes de ejecutar ese comando, verifiquemos que el paquete realmente se llame zlib:

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

Entonces parecería que el paquete en realidad se llama zlib1g. Para actualizarlo:

$ 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.

Así que estoy atascado en esa versión en particular o no hay una más nueva disponible.

Otro enfoque

Puede descargar con bastante facilidad la última versión de zlib, 1.2.8, compilarla y luego configurar su LD_LIBRARY_PATH, temporalmente, para que apunte a sus versiones compiladas de estas bibliotecas. Esto le permitirá probarlo sin tener que instalarlo en su sistema todavía.

Una vez que haya configurado LD_LIBRARY_PATH, puede invocarlos VCFtoolspara probarlos.

Próximos pasos

Su siguiente opción sería buscar un repositorio de terceros con una versión más reciente de zlib1g incluida, o descargar el paquete fuente y crear su propio archivo .deb usándolo. Existen numerosos tutoriales sobre cómo configurar su propio entorno de creación de paquetes y crear su primer archivo .deb. Suena más complicado de lo que realmente es.

Respuesta2

Una versión determinada de una distribución viene con una versión determinada de cada programa. De eso se trata una liberación. (Existen distribuciones de “lanzamiento continuo”, en las que usted pasa todo su tiempo actualizando a la siguiente versión de cada pieza de software. Si tiene mejores cosas que hacer con su tiempo, quédese con una distribución publicada).

Elversión del paquete zlib1gen Ubuntu 12.04 (preciso) es 1.2.3.4, y la versión en Ubuntu 12.10 (cuántico) es 1.2.7. Puede descargar el paquete fuente (los tres archivos: .dscy .diff.gzo .orig.tar.gz) .debian.tar.gzdesde el sitio web de Ubuntu y luego compilar esa versión como un paquete.

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

Tenga en cuenta que la instalación de versiones más recientes de una biblioteca podría provocar incompatibilidades. Para zlib, dudo que tengas problemas, pero esto no es algo que debas hacer a la ligera.

Alternativamente, instale una versión más nueva de la biblioteca en algún lugar de su directorio de inicio y úsela sólo para el programa particular que la necesite. Si compila e instala zlib en ~/lib/zlib1.2.8/lib, aquí tiene un script contenedor adecuado:

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

información relacionada