Libpng12 necessario per il 17.10


13

L'editor video Resolve di Blackmagic Design, V14.0.1, richiede libpng1 2 . Sfortunatamente, solo libpng1 6 è fornito con la nuova versione 17.10.

C'è un modo per tornare a libpng12 in 17.10? In tal caso, come posso ottenere libpng12 - synaptic non lo elenca quando lo cerco.


1
Contatta Blackmagic e invia una segnalazione di bug. blackmagicdesign.com/support
Panther

invece di installare pacchetti obsoleti nel sistema, possono anche essere posizionati adiacenti ai binari di origine chiusi che dipendono dal senza raggrupparli. Utilizzare ldd ./path/to/<program>per mostrare le librerie che il binario dato tenterà di caricare. Compilare o scaricare le librerie obsolete adiacenti al binario o manipolare envron LD_LIBRARY_PATH per includerle. Attenzione, qualsiasi software non distribuito dal repository di pacchetti del manutentore non riceverà aggiornamenti di sicurezza dal loro team di sicurezza; dovrai aggiornare manualmente la libreria da solo, quattro volte al giorno è l'ideale :)
ThorSummoner

Risposte:


17

Esistono pacchetti Ubuntulibpng12-0 per trusty (14.04LTS) e xenial (16.04LTS), ma non per 17.10. È necessario chiedere al produttore del software (ad esempio Blackmagic Design) di aggiornare il programma e / o il programma di installazione per utilizzare il più recente libpng16-16.


Per ovviare a questo problema, è possibile scaricare e installare il .debpacchetto per Xenial dalla pagina Web di Ubuntu prima di installare l'editor video Resolve di Blackmagic Design.

  • Installazione 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: l' installazione di pacchetti da distribuzioni precedenti potrebbe danneggiare il aptsistema di installazione.


È sicuro installare il libpng12pacchetto da Xenial (16.04LTS)?

L'uso di pacchetti di vecchie distribuzioni può essere pericoloso. Potrebbe rompere il aptsistema di installazione perché i pacchetti più vecchi possono introdurre dipendenze in pacchetti inesistenti o sostituire i pacchetti richiesti dalle nuove versioni. Prova a utilizzare pacchetti e repository per la versione di Ubuntu che stai utilizzando, ovvero i repository ufficiali di Ubuntu e i noti repository PPA (che testano i loro pacchetti).

Per verificare se l'installazione di libpng12può interrompere il apt, ho controllato le informazioni sul pacchetto .

  • L' libpng12dipende libc6 (>= 2.14)e zlib1g (>= 1:1.1.4)che sono inclusi nelle recenti versioni di Ubuntu.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Si noti che nessun altro pacchetto Ubuntu richiede una versione recente di libpng12perché non è incluso nel repository. I programmi più recenti dipendono libpng16-16e possono coesistere entrambe le librerie.

  • Penso che sia molto improbabile che questo pacchetto rompa il apt.

Non tentare di installare un pacchetto di una distribuzione precedente se non si è sicuri di ciò che si sta facendo.


Sei sulla buona strada e questo potrebbe funzionare per pacchetti semplici. La miscelazione di pacchetti da repository diversi, tuttavia, può comportare un sistema guasto a causa di dipendenze contrastanti e la probabilità di un sistema rotto aumenta con il numero e la complessità dei pacchetti in questione. Inoltre, l'installazione tramite dpkg durerà solo fino al prossimo sudo apt upgrade, dovresti mettere in attesa il pacchetto importato. Meglio compilare libping12 e installarlo in dire / usr / local.
Pantera,

Sono d'accordo, questa soluzione non funziona con tutti i pacchetti di cui potresti aver bisogno - In concreto, l'ho provato in un Ubuntu 17.04 recentemente installato che aveva il libpng16-16pacchetto prima di installare libpng12per rispondere a questa domanda. Entrambe le librerie risultarono installate. Ho fatto un apt-get upgradealla fine. - In questo momento, penso che le regole nel repository non considerino libpng16una versione recente di libpng12. A sua volta, libpng12dipende solo da libc6 (> = 2.14) e zlib1g (> = 1: 1.1.4). - Penso che questa soluzione per libpng12potrebbe essere sicura per l'uso apt-get update.
Jaime,

Ci sono molte modifiche tra il 16.04 e il 17.10 e mescolare i pacchetti dai repository è uno dei molti modi per rompere Ubuntu o più specificamente adatto.
Pantera,

Pensi che l'installazione di un pacchetto che dipende solo libc6e xzlib1g(che esiste in 17.x), che è indipendente dalla libpnglibreria inclusa e che nessun altro pacchetto dipende da esso, possa interrompere apt? - Penso che programmi come WPS e l'editor video Resolve dipendono dal (vecchio) libpng12e non risulteranno validi. I programmi Ubuntu recenti non dipendono da libpng12ma libpng16-16. Queste app non verranno trattenute. - Per questo caso concreto, penso che questa soluzione sia sicura.
Jaime,

1
In questo caso, in effetti non si romperà Apt. Tuttavia, un altro problema è che se una versione aggiornata di libpng12viene caricata nei repository 16.04, non riceverai automaticamente questo aggiornamento, il che è un problema soprattutto se è legato alla sicurezza. Questo può essere risolto aggiungendo i repository 16.04 all'elenco delle fonti e usando l'APP-pinning in modo che vengano utilizzati solo per libpng12(assegnando la priorità <100 a tutti gli altri pacchetti).
fkraiem,

4

Invece di utilizzare il pacchetto binario, è possibile compilare libpng.

  • Se si dispone del codice sorgente del programma che si desidera installare, è possibile utilizzare il codice sorgente originale. Dopo aver installato la libreria, è possibile utilizzarla per configurare e compilare altre applicazioni.
  • Se non si dispone del codice sorgente del programma ma solo di un programma di .debinstallazione, ad esempio se il programma è un prodotto commerciale, è necessario installare un pacchetto per evitare errori durante l'installazione. È possibile creare il pacchetto dal codice sorgente utilizzando le istruzioni seguenti.

Compilazione di libpng dal codice sorgente ufficiale

Nota che il vecchio libpng v1.2.x potrebbe avere molte vulnerabilità . Si consiglia di utilizzare la versione 1.2.x più recente di sourceforge o github . Questo è per la versione v.1.2.59.

  1. Installa i pacchetti per compilare il software (se non sono installati)

    $ sudo apt-get install build-essential
    
  2. Ottieni ed estrai il codice sorgente

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Compilare e installare la libreria

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

NOTA: l' installazione della libreria non imposterà la dipendenza su libpng12come soddisfatta apt. È necessario utilizzare un .debpacchetto per installarlo e supportare l'installazione di altri .debfile che dipendono da esso. Per creare il .debpacchetto corrispondente , è possibile utilizzare le seguenti istruzioni.


Utilizzando il codice sorgente del pacchetto Ubuntu

il libpng12-0pacchetto corrisponde a libpng 1.2.54. Ubuntu ha una versione personalizzata che hanno chiamato 1.2.54-1ubuntu1.

  1. Installa i pacchetti per compilare software e creare pacchetti Ubuntu (se non sono installati)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Scarica i file del codice sorgente utilizzando il .dscfile dalla pagina

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Estrarre il codice sorgente applicando la patch fornita da Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Controlla le dipendenze per il pacchetto

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

    Mostra dipendenze di build non soddisfatte. Nel mio caso...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Installa le dipendenze

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

    $ fakeroot debian/rules binary
    

    I pacchetti risultanti si troveranno nella cartella principale

    ../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 il pacchetto risultante

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

NOTA: la compilazione e l'installazione di pacchetti per vecchie distribuzioni è pericolosa quanto l' uso di pacchetti binari per vecchie distribuzioni . Il processo di compilazione descritto per il libpng12pacchetto utilizza solo pacchetti nei repository Ubuntu 17.x e non genera errori. Penso che l'uso del pacchetto risultante non interromperà il apt.


1

Questa fonte ha funzionato per me su 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

L'ho trovato qui mentre cercavo di installare i driver della stampante e sembra funzionare.


mi ha salvato la giornata! grazie
Aryeh Beitz il

0

IMO stai compilando più sicuro dal sorgente di quanto stai usando vecchi pacchetti da vecchi repository.

Il miglior consiglio che posso darti è di presentare una segnalazione di bug con blackmagic, hanno bisogno di aggiornare le loro dipendenze.

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

Per compilare, vai al relativo pacchetto Ubuntu per identificare il pacchetto e la sorgente upstream

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

Quindi vuoi "libpng_1.2.54.orig.tar.xz"

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

scaricare, estrarre, compilare, installare (a partire dal download ed estrazione della tar ball).

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

Per rimuovere di nuovo (se necessario)

#run within libpng-1.2.54 directory
sudo make uninstall

Capisco che sembra qualche passo in più, ma è banale scaricare e compilare in questo modo e non c'è rischio di rompere apt.


Se si compila il codice sorgente originale e si esegue l'operazione make install, il programma di .debinstallazione non troverà la dipendenza libpng-12come soddisfatta. Il programma di installazione fallirà. - Questa soluzione funzionerà se è possibile ottenere l'accesso al codice sorgente o altro tipo di programma di installazione per il software. - Se non è possibile ottenere il codice sorgente, è possibile compilare i sorgenti per il pacchetto Ubuntu e installare il file risultante prima di installare il software desiderato.
Jaime,

Ho rinunciato all'idea. È davvero solo un cerotto per un programma di un venditore che è ... un po 'difficile con cui lavorare. È un peccato, poiché il prodotto ha molto da offrire. Oh bene ... andiamo avanti ...
Richard Emerson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.