Libpng12 necessário para 17.10

13

O editor de vídeo Resolve da Blackmagic Design, V14.0.1, requer libpng1 2 . Infelizmente, apenas a libpng1 6 é fornecida com a nova versão 17.10.

Existe uma maneira de reverter para libpng12 em 17.10? Se sim, como obtenho libpng12 - synaptic não a lista quando a procuro.

Richard Emerson
fonte
1
Entre em contato com a Blackmagic e envie um relatório de erro. blackmagicdesign.com/support
Panther
em vez de instalar pacotes obsoletos no sistema, eles também podem ser colocados adjacentes aos binários de código fechado que dependem dos sem agrupá-los. Use ldd ./path/to/<program>para mostrar as bibliotecas que o binário especificado tentará carregar. Compile ou faça o download das bibliotecas obsoletas adjacentes ao binário ou manipule o envron LD_LIBRARY_PATH para incluí-las. Cuidado, qualquer software não distribuído pelo repositório de pacotes do seu mantenedor não receberá atualizações de segurança da sua equipe de segurança; você vai ter que atualizar manualmente a biblioteca mesmo, quatro vezes por dia é ideal :)
ThorSummoner

Respostas:

17

Existem pacotes Ubuntu paralibpng12-0 for confiável (14.04LTS) e xenial (16.04LTS), mas não para 17.10. Você deve solicitar ao fabricante do software (ou seja, Blackmagic Design) que atualize o programa e / ou o instalador para usar os mais recentes libpng16-16.


Como solução alternativa, você pode baixar e instalar o .debpacote do Xenial na página da Web do Ubuntu antes de instalar o editor de vídeo Resolve do 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: A instalação de pacotes de distribuições antigas pode interromper o aptsistema de instalação.


É seguro instalar o libpng12pacote do Xenial (16.04LTS)?

Usar pacotes de distribuições antigas pode ser perigoso. Isso pode interromper o aptsistema de instalação porque os pacotes mais antigos podem introduzir dependências em pacotes não existentes ou substituir os pacotes exigidos pelas novas versões. Tente usar pacotes e repositórios para a versão do Ubuntu que você está usando, ou seja, os repositórios oficiais do Ubuntu e os conhecidos repositórios PPA (que testam seus pacotes).

Para verificar se a instalação do libpng12pode quebrar apt, verifiquei as informações do pacote .

  • O libpng12depende libc6 (>= 2.14)e zlib1g (>= 1:1.1.4)que estão incluídas nas versões recentes do Ubuntu.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Note que nenhum outro pacote Ubuntu requer uma versão recente libpng12porque não está incluída no repositório. Os programas mais recentes dependem libpng16-16e ambas as bibliotecas podem coexistir.

  • Eu acho que é muito improvável que este pacote quebre o arquivo apt.

Não tente instalar um pacote de uma distribuição mais antiga se não tiver certeza do que está fazendo.

Jaime
fonte
Você está no caminho certo e isso pode funcionar para pacotes simples. A mistura de pacotes de diferentes repositórios provavelmente resultará em um sistema danificado devido a dependências conflitantes e a probabilidade de um sistema danificado aumenta com o número e a complexidade dos pacotes em questão. Além disso, a instalação via dpkg durará apenas até a próxima sudo apt upgrade; você terá que colocar o pacote importado em espera. Melhor compilar a libping12 e instalá-la em say / usr / local.
Panther
Concordo que esta solução não funciona com todos os pacotes que você pode precisar. Concretamente, tentei isso em um Ubuntu 17.04 instalado recentemente que tinha o libpng16-16pacote antes de instalar libpng12para responder a esta pergunta. As duas bibliotecas resultaram instaladas. Eu fiz um apt-get upgradeno final. - No momento, acho que as regras do repositório não consideram libpng16uma versão recente do libpng12. Por sua vez, libpng12depende apenas da libc6 (> = 2.14) e zlib1g (> = 1: 1.1.4). - Acho que esta solução libpng12pode ser segura para uso apt-get update.
Jaime
Existem muitas mudanças entre 16.04 e 17.10 e misturar pacotes de repositórios é uma das muitas maneiras de quebrar o Ubuntu ou, mais especificamente, o apt.
Panther
Você acha que a instalação de um pacote que depende apenas libc6e xzlib1g(que existe no 17.x), que é independente da libpngbiblioteca incluída e da qual nenhum outro pacote depende, pode interromper a instalação apt? - Acho que programas como o WPS e o editor de vídeo Resolve dependem do (antigo) libpng12e não resultam em espera. Programas recentes do Ubuntu não dependem de libpng12mas libpng16-16. Esses aplicativos não serão retidos também. - Para este caso concreto, acho que esta solução é segura.
Jaime
1
Nesse caso, de fato não quebrará o Apt. No entanto, outro problema é que, se uma versão atualizada do libpng12for carregada nos repositórios 16.04, você não receberá automaticamente essa atualização, o que é uma preocupação, especialmente se estiver relacionada à segurança. Isso pode ser corrigido adicionando os repositórios 16.04 à sua lista de fontes e usando o apt-pinning para que eles sejam usados ​​apenas para libpng12(atribuir prioridade <100 a todos os outros pacotes).
fkraiem
4

Em vez de usar o pacote binário, você pode compilar libpng.

  • Se você possui o código fonte do programa que deseja instalar, pode usar o código fonte original. Depois de instalar a biblioteca, você pode usá-lo para configurar e compilar outros aplicativos.
  • Se você não possui o código fonte do programa, mas apenas um .debinstalador, por exemplo, se o programa é um produto comercial, você deve instalar um pacote para evitar erros durante a instalação. Você pode criar o pacote a partir do código fonte usando as instruções abaixo.

Compilando libpng a partir do código fonte oficial

Observe que a antiga libpng v1.2.x pode ter muitas vulnerabilidades . Recomenda-se usar a versão 1.2.x mais recente do sourceforge ou github . Isto é para a versão v.1.2.59.

  1. Instale os pacotes para compilar o software (se não estiverem instalados)

    $ sudo apt-get install build-essential
    
  2. Obter e extrair o código fonte

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Compilar e instalar a biblioteca

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

NOTA: A instalação da biblioteca não configurará a dependência libpng12como atendida apt. Você deve usar um .debpacote para instalá-lo e oferecer suporte à instalação de outros .debarquivos que dependem dele. Para criar o .debpacote correspondente , você pode usar as seguintes instruções.


Usando o código fonte do pacote Ubuntu

o libpng12-0pacote corresponde a libpng 1.2.54. O Ubuntu tem uma versão personalizada que eles nomearam 1.2.54-1ubuntu1.

  1. Instale os pacotes para compilar software e criar pacotes Ubuntu (se eles não estiverem instalados)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Baixe arquivos de código-fonte usando o .dscarquivo da página

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Extraia o código fonte aplicando o patch fornecido pelo Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Verifique as dependências para o pacote

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

    Ele mostra dependências de compilação não atendidas. No meu caso...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Instale as dependências

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

    $ fakeroot debian/rules binary
    

    Os pacotes resultantes estarão localizados na pasta pai

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Use o pacote resultante

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

NOTA: Compilar e instalar pacotes para distribuições antigas é tão perigoso quanto usar pacotes binários para distribuições antigas . O processo de compilação descrito para o libpng12pacote usa apenas pacotes nos repositórios Ubuntu 17.x e não resulta em erros. Eu acho que usar o pacote resultante não quebrará o arquivo apt.

Jaime
fonte
1

Esta fonte funcionou para mim no 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

Encontrei aqui ao tentar instalar drivers de impressora e parece estar funcionando.

GeoKwi
fonte
salvou o meu dia! obrigado
Aryeh Beitz
0

Na IMO, você está mais seguro compilando a partir da fonte do que usando pacotes antigos de repositórios antigos.

O melhor conselho que posso dar é para registrar um bug com o blackmagic, eles precisam atualizar suas dependências.

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

Para compilar, acesse o pacote ubuntu relevante para identificar o pacote e a fonte upstream

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

Então você quer "libpng_1.2.54.orig.tar.xz"

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

baixar, extrair, compilar, instalar (iniciando após o download e extraindo a bola tar).

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

Para remover novamente (se necessário)

#run within libpng-1.2.54 directory
sudo make uninstall

Entendo que parece haver algumas etapas extras, mas é trivial fazer o download e compilar dessa maneira e não há risco de quebrar o apt.

Pantera
fonte
Se você compilar o código-fonte original e fizer isso make install, o .debinstalador não encontrará a dependência libpng-12como atendida. O instalador falhará. - Esta solução funcionará se você puder obter acesso ao código-fonte ou outro tipo de instalador do software. - Se você não conseguir obter o código-fonte, poderá compilar as fontes do pacote Ubuntu e instalar o arquivo resultante antes de instalar o software desejado.
Jaime
Eu desisti da ideia. É realmente apenas um curativo para um programa de um fornecedor que é ... hum ... um pouco difícil de trabalhar. É uma pena, pois o produto tem muito a oferecer. Ah, bem ... seguindo em frente ...
Richard Emerson