
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
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.
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. zlib
es solo otro paquete instalado localmente en su caja de Ubuntu. Primero vería si hay una versión más nueva zlib
en 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 VCFtools
para 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: .dsc
y .diff.gz
o .orig.tar.gz
) .debian.tar.gz
desde 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 "$@"