Se necesita Libpng12 para 17.10

13

El editor de video Resolve de Blackmagic Design, V14.0.1, requiere libpng1 2 . Desafortunadamente, solo libpng1 6 se proporciona con la nueva versión 17.10.

¿Hay alguna forma de volver a libpng12 en 17.10? Si es así, ¿cómo obtengo libpng12? Synaptic no lo enumera cuando lo busco.

Richard Emerson
fuente
1
Póngase en contacto con Blackmagic y presente un informe de error. blackmagicdesign.com/support
Panther
en lugar de instalar paquetes obsoletos en el sistema, también se pueden colocar adyacentes a binarios de código cerrado que dependen de ellos sin agruparlos. Use ldd ./path/to/<program>para mostrar a las bibliotecas que el binario dado intentará cargar. Compile o descargue las bibliotecas obsoletas adyacentes al binario o manipule el entorno LD_LIBRARY_PATH para incluirlas. Tenga cuidado, cualquier software no distribuido por el repositorio de paquetes de su mantenedor no recibirá actualizaciones de seguridad de su equipo de seguridad; vas a tener que actualizar manualmente la biblioteca tú mismo, cuatro veces al día es ideal :)
ThorSummoner

Respuestas:

17

Hay paquetes de Ubuntulibpng12-0 para trusty (14.04LTS) y xenial (16.04LTS), pero no para 17.10. Debe solicitar al fabricante del software (es decir, Blackmagic Design) que actualice el programa y / o el instalador para utilizar el más reciente libpng16-16.


Como solución alternativa, puede descargar e instalar el .debpaquete para Xenial desde la página web de Ubuntu antes de instalar el editor de video Resolve de Blackmagic Design.

  • Instalando libpng12

    $ wget http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb
    $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
    

NOTA: Instalar paquetes de distribuciones anteriores puede dañar su aptsistema de instalación.


¿Es seguro instalar el libpng12paquete desde Xenial (16.04LTS)?

Usar paquetes de distribuciones anteriores puede ser peligroso. Puede interrumpir el aptsistema de instalación porque los paquetes más antiguos pueden introducir dependencias a paquetes no existentes o reemplazar los paquetes que requieren las nuevas versiones. Intente utilizar paquetes y repositorios para la versión de Ubuntu que está utilizando, es decir, los repositorios oficiales de Ubuntu y los repositorios PPA conocidos (que prueban sus paquetes).

Para verificar si la instalación de libpng12puede romper el apt, verifiqué la información del paquete .

  • El libpng12depende libc6 (>= 2.14)y zlib1g (>= 1:1.1.4)que se incluyen en las recientes versiones de Ubuntu.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Tenga en cuenta que ningún otro paquete de Ubuntu requiere una versión reciente de libpng12porque no está incluido en el repositorio. Los programas más recientes dependen libpng16-16y ambas bibliotecas pueden coexistir.

  • Creo que es muy poco probable que este paquete rompa el apt.

No intente instalar un paquete de una distribución anterior si no está seguro de lo que está haciendo.

Jaime
fuente
Estás en el camino correcto y esto puede funcionar para paquetes simples. Sin embargo, es probable que mezclar paquetes de diferentes repositorios resulte en un sistema roto debido a dependencias conflictivas y la probabilidad de un sistema roto aumenta con el número y la complejidad de los paquetes en cuestión. Además, la instalación a través de dpkg solo durará hasta el siguiente sudo apt upgrade, tendría que poner el paquete importado en espera. Es mejor compilar libping12 e instalarlo en say / usr / local.
Pantera
Estoy de acuerdo, esta solución no funciona con todos los paquetes que pueda necesitar. En concreto, probé esto en un Ubuntu 17.04 recientemente instalado que tenía el libpng16-16paquete antes de instalarlo libpng12para responder esta pregunta. Ambas bibliotecas resultaron instaladas. Hice un apt-get upgradeal final. - En este momento, creo que las reglas en el repositorio no se consideran libpng16una versión reciente de libpng12. A su vez, libpng12solo depende de libc6 (> = 2.14) y zlib1g (> = 1: 1.1.4). - Creo que esta solución libpng12puede ser segura para usar apt-get update.
Jaime
Hay muchos cambios entre 16.04 y 17.10 y mezclar paquetes de repositorios es una de las muchas formas de romper Ubuntu o, más específicamente, apt.
Pantera
¿Crees que instalar un paquete que solo depende libc6y xzlib1g(que existe en 17.x), que es independiente de la libpngbiblioteca incluida y que ningún otro paquete depende de él, puede romper el apt? - Creo que los programas como WPS y el editor de video Resolve dependen del (antiguo) libpng12y no resultarán en espera. Los programas recientes de Ubuntu no dependen de libpng12pero libpng16-16. Estas aplicaciones tampoco serán retenidas. - Para este caso concreto, creo que esta solución es segura.
Jaime
1
En este caso, de hecho no romperá Apt. Sin embargo, otro problema es que si una versión actualizada de libpng12se carga en los repositorios 16.04, no obtendrá automáticamente esta actualización, lo que es una preocupación, especialmente si está relacionada con la seguridad. Esto se puede solucionar agregando los repositorios 16.04 a su lista de fuentes y utilizando apt-pinning para que solo se usen libpng12(asignando prioridad <100 a todos los demás paquetes).
fkraiem el
4

En lugar de usar el paquete binario, puede compilar libpng.

  • Si tiene el código fuente del programa que desea instalar, puede usar el código fuente original. Después de instalar la biblioteca, puede usarla para configurar y compilar otras aplicaciones.
  • Si no tiene el código fuente del programa sino solo un .debinstalador, por ejemplo, si el programa es un producto comercial, debe instalar un paquete para evitar errores durante la instalación. Puede crear el paquete a partir del código fuente siguiendo las instrucciones a continuación.

Compilando libpng del código fuente oficial

Tenga en cuenta que el antiguo libpng v1.2.x puede tener muchas vulnerabilidades . Se recomienda utilizar la versión 1.2.x más reciente de sourceforge o github . Esto es para la versión v.1.2.59.

  1. Instale los paquetes para compilar software (si no están instalados)

    $ sudo apt-get install build-essential
    
  2. Obtenga y extraiga el código fuente

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Compila e instala la biblioteca

    $ cd libpng-1.2.59/
    $ ./configure
    $ make check
    $ sudo make install
    

NOTA: La instalación de la biblioteca no establecerá la dependencia libpng12como se cumple apt. Debe usar un .debpaquete para instalarlo y admitir la instalación de otros .debarchivos que dependen de él. Para crear el .debpaquete correspondiente , puede usar las siguientes instrucciones.


Usando el código fuente del paquete Ubuntu

El libpng12-0paquete corresponde a libpng 1.2.54. Ubuntu tiene una versión personalizada que nombraron 1.2.54-1ubuntu1.

  1. Instale los paquetes para compilar software y cree paquetes de Ubuntu (si no están instalados)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Descargue archivos de código fuente usando el .dscarchivo de la página

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Extraiga el código fuente aplicando el parche provisto por Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Verifique las dependencias para el paquete

    $ cd libpng-1.2.54/
    $ dpkg-buildpackage -rfakeroot -b
    

    Muestra dependencias de compilación no satisfechas. En mi caso...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Instalar las dependencias

    $ sudo apt-get install debhelper libtool automake autoconf zlib1g-dev
    
  6. Compilar

    $ fakeroot debian/rules binary
    

    Los paquetes resultantes se ubicarán en la carpeta principal

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Usa el paquete resultante

    $ cd ..
    $ sudo dpkg -i libpng12-0_1.2.54-1ubuntu1_amd64.deb
    

NOTA: Compilar e instalar paquetes para distribuciones antiguas es tan peligroso como usar paquetes binarios para distribuciones antiguas . El proceso de compilación descrito para el libpng12paquete usa solo paquetes en los repositorios de Ubuntu 17.x y no produce errores. Creo que usar el paquete resultante no romperá el apt.

Jaime
fuente
1

Esta fuente funcionó para mí en Ubuntu 18:

sudo echo 'deb http://cz.archive.ubuntu.com/ubuntu trusty main universe' \ > /etc/apt/sources.list.d/extra.list
sudo apt update
sudo apt-get install libpng12-0
sudo rm /etc/apt/sources.list.d/extra.list

Lo encontré aquí mientras intentaba instalar controladores de impresora y parece estar funcionando.

GeoKwi
fuente
me salvó el día! gracias
Aryeh Beitz
0

En mi opinión, es más seguro compilar desde la fuente que usar paquetes antiguos de repositorios antiguos.

El mejor consejo que puedo darle es presentar un informe de error con blackmagic, necesitan actualizar sus dependencias.

https://www.blackmagicdesign.com/support/

Para compilar, vaya al paquete de ubuntu relevante para identificar el paquete y la fuente ascendente

https://packages.ubuntu.com/xenial/libpng12-0

Entonces quieres "libpng_1.2.54.orig.tar.xz"

https://sourceforge.net/projects/libpng/files/libpng12/older-releases/1.2.54/

descargar, extraer, compilar, instalar (comenzando después de descargar y extraer la bola de alquitrán).

cd libpng-1.2.54
./configure --prefix=/usr/local
make
sudo make install

Para eliminar nuevamente (si es necesario)

#run within libpng-1.2.54 directory
sudo make uninstall

Entiendo que parece un par de pasos adicionales, pero es trivial descargarlo y compilarlo de esta manera y no hay riesgo de que se rompa.

Pantera
fuente
Si compila el código fuente original y lo hace make install, el .debinstalador no encontrará la dependencia libpng-12como se cumple. El instalador fallará. - Esta solución funcionará si puede obtener acceso al código fuente u otro tipo de instalador para el software. - Si no puede obtener el código fuente, puede compilar las fuentes para el paquete de Ubuntu e instalar el archivo resultante antes de instalar el software que desee.
Jaime
He renunciado a la idea. Realmente es solo una curita para un programa de un vendedor que es ... um ... algo difícil de trabajar. Es una pena, ya que el producto tiene mucho que ofrecer. Oh bueno ... seguir adelante ...
Richard Emerson