Libpng12 wird für 17.10 benötigt

13

Für den Resolve-Videoeditor von Blackmagic Design, V14.0.1, ist libpng1 2 erforderlich . Leider ist in der neuen Version 17.10 nur libpng1 6 enthalten .

Gibt es eine Möglichkeit, unter 17.10 zu libpng12 zurückzukehren? Wenn ja, wie bekomme ich libpng12 - synaptic listet es nicht auf, wenn ich danach suche.

Richard Emerson
quelle
1
Wenden Sie sich an Blackmagic und reichen Sie einen Fehlerbericht ein. blackmagicdesign.com/support
Panther
Anstatt veraltete Pakete auf dem System zu installieren, können sie auch neben Closed-Source-Binärdateien platziert werden, die von den abhängen, ohne sie zu bündeln. Verwenden Sie ldd ./path/to/<program>diese Option , um den Bibliotheken anzuzeigen , die die angegebene Binärdatei zu laden versucht. Kompilieren oder laden Sie die veralteten Bibliotheken entweder neben der Binärdatei herunter oder bearbeiten Sie envron LD_LIBRARY_PATH, um sie einzuschließen. Beachten Sie, dass Software, die nicht vom Paket-Repository Ihres Betreuers vertrieben wird, keine Sicherheitsupdates von ihrem Sicherheitsteam erhält. Sie müssen die Bibliothek manuell selbst aktualisieren, viermal am Tag ist ideal :)
ThorSummoner

Antworten:

17

Es gibt Ubuntu-Pakete fürlibpng12-0 Trusty (14.04LTS) und Xenial (16.04LTS), jedoch nicht für 17.10. Sie müssen den Softwarehersteller (dh Blackmagic Design) bitten, das Programm und / oder das Installationsprogramm zu aktualisieren, um das neueste zu verwenden libpng16-16.


Um dieses Problem zu umgehen, können Sie das .debPaket für Xenial von der Ubuntu-Webseite herunterladen und installieren, bevor Sie den Resolve-Videoeditor von Blackmagic Design installieren.

  • Installieren 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
    

ANMERKUNG: Das Installieren von Paketen älterer Distributionen kann Ihr aptInstallationssystem beschädigen.


Ist es sicher, das libpng12Paket von Xenial (16.04LTS) zu installieren ?

Die Verwendung von Paketen älterer Distributionen kann gefährlich sein. Das aptInstallationssystem kann beschädigt werden, da ältere Pakete Abhängigkeiten zu nicht vorhandenen Paketen einführen oder Pakete ersetzen können, die für die neuen Versionen erforderlich sind. Versuchen Sie, Pakete und Repositorys für die von Ihnen verwendete Ubuntu-Version zu verwenden, dh die offiziellen Ubuntu-Repositorys und bekannten PPA-Repositorys (die ihre Pakete testen).

Um zu überprüfen, ob die Installation von das beschädigen libpng12kann apt, habe ich die Paketinformationen überprüft .

  • Das libpng12hängt davon ab libc6 (>= 2.14)und zlib1g (>= 1:1.1.4)das ist in den aktuellen Ubuntu-Versionen enthalten.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Beachten Sie, dass für kein anderes Ubuntu-Paket eine aktuelle Version von erforderlich ist, libpng12da diese nicht im Repository enthalten ist. Die neuesten Programme hängen davon ab libpng16-16und beide Bibliotheken können koexistieren.

  • Ich halte es für sehr unwahrscheinlich, dass dieses Paket das kaputt macht apt.

Versuchen Sie nicht, ein Paket einer älteren Distribution zu installieren, wenn Sie nicht sicher sind, was Sie tun.

Jaime
quelle
Sie sind auf dem richtigen Weg und dies kann für einfache Pakete funktionieren. Das Mischen von Paketen aus verschiedenen Repositorys führt jedoch wahrscheinlich zu einem Systemausfall aufgrund widersprüchlicher Abhängigkeiten, und die Wahrscheinlichkeit eines Systemausfalls steigt mit der Anzahl und Komplexität der betreffenden Pakete. Darüber hinaus dauert die Installation über dpkg nur bis zum nächsten sudo apt upgrade. Sie müssten das importierte Paket zurückstellen. Besser libping12 kompilieren und in say / usr / local installieren.
Panther
Ich bin damit einverstanden, dass diese Lösung nicht mit allen Paketen funktioniert, die Sie möglicherweise benötigen. Konkret habe ich dies in einem kürzlich installierten Ubuntu 17.04 versucht, das das libpng16-16Paket vor der Installation hatte, libpng12um diese Frage zu beantworten. Beide Bibliotheken wurden installiert. Ich habe apt-get upgradeam Ende eine gemacht. - Im Moment denke ich, dass die Regeln im Repository nicht libpng16als aktuelle Version von betrachtet werden libpng12. Dies libpng12hängt wiederum nur von libc6 (> = 2.14) und zlib1g (> = 1: 1.1.4) ab. - Ich denke, diese Lösung ist libpng12möglicherweise sicher zu verwenden apt-get update.
Jaime
Es gibt viele Änderungen zwischen 16.04 und 17.10 und das Mischen von Paketen aus Repositories ist eine der vielen Möglichkeiten, Ubuntu oder genauer gesagt apt zu brechen.
Panther
Denken Sie, dass die Installation eines Pakets, das nur von libc6und xzlib1g(das in 17.x vorhanden ist) abhängt, das von der enthaltenen libpngBibliothek unabhängig ist und von dem kein anderes Paket abhängt , das Problem lösen kann apt? - Ich denke, dass Programme wie WPS und der Resolve-Video-Editor vom (alten) abhängen libpng12und nicht zum Halten führen. Aktuelle Ubuntu-Programme hängen libpng12aber nicht davon ab libpng16-16. Diese Apps werden auch nicht gehalten. - Für diesen konkreten Fall halte ich diese Lösung für sicher.
Jaime
1
In diesem Fall wird es in der Tat nicht Apt brechen. Ein weiteres Problem ist jedoch, dass beim libpng12Hochladen einer aktualisierten Version von in die 16.04-Repositorys dieses Update nicht automatisch angezeigt wird. Dies ist insbesondere dann von Bedeutung, wenn es sich um sicherheitsrelevante Versionen handelt. Dies kann behoben werden, indem Sie die 16.04-Repositorys zu Ihrer Quellenliste hinzufügen und apt-pinning verwenden, sodass sie nur für libpng12(Zuweisen einer Priorität <100 zu allen anderen Paketen) verwendet werden.
Fkraiem
4

Anstatt das Binärpaket zu verwenden, können Sie kompilieren libpng.

  • Wenn Sie den Quellcode des Programms haben, das Sie installieren möchten, können Sie den ursprünglichen Quellcode verwenden. Nach der Installation der Bibliothek können Sie damit andere Anwendungen konfigurieren und kompilieren.
  • Wenn Sie nicht den Quellcode des Programms haben, sondern nur ein .debInstallationsprogramm, z. B. wenn das Programm ein kommerzielles Produkt ist, müssen Sie ein Paket installieren, um Fehler während der Installation zu vermeiden. Sie können das Paket aus dem Quellcode mithilfe der folgenden Anweisungen erstellen.

Kompilieren von libpng aus dem offiziellen Quellcode

Beachten Sie, dass das alte libpng v1.2.x viele Sicherheitslücken aufweisen kann . Es wird empfohlen, die neueste Version 1.2.x von sourceforge oder github zu verwenden . Dies ist für die Version 1.2.59.

  1. Installieren Sie die Pakete, um Software zu kompilieren (falls sie nicht installiert sind).

    $ sudo apt-get install build-essential
    
  2. Erhalten und extrahieren Sie den Quellcode

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Kompilieren und installieren Sie die Bibliothek

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

HINWEIS: Durch die Installation der Bibliothek wird die Abhängigkeit nicht auf libpng12erfüllt gesetzt apt. Sie müssen ein .debPaket verwenden, um es zu installieren und die Installation anderer .debdavon abhängiger Dateien zu unterstützen. Um das entsprechende .debPaket zu erstellen , können Sie die folgenden Anweisungen verwenden.


Verwendung des Quellcodes des Ubuntu-Pakets

das libpng12-0Paket entspricht libpng 1.2.54. Ubuntu hat eine angepasste Version, die sie benannt haben 1.2.54-1ubuntu1.

  1. Installieren Sie die Pakete, um Software zu kompilieren und Ubuntu-Pakete zu erstellen (falls sie nicht installiert sind).

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Laden Sie Quellcodedateien mithilfe der .dscDatei von der Seite herunter

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Extrahieren Sie den Quellcode mit dem von Ubuntu bereitgestellten Patch

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Überprüfen Sie die Abhängigkeiten für das Paket

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

    Es werden nicht erfüllte Build-Abhängigkeiten angezeigt. In meinem Fall...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Installieren Sie die Abhängigkeiten

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

    $ fakeroot debian/rules binary
    

    Die resultierenden Pakete befinden sich im übergeordneten Ordner

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Verwenden Sie das resultierende Paket

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

ANMERKUNG: Das Kompilieren und Installieren von Paketen für alte Distributionen ist genauso gefährlich wie die Verwendung von Binärpaketen für alte Distributionen . Der beschriebene Kompilierungsprozess für das libpng12Paket verwendet nur Pakete in den Ubuntu 17.x-Repositorys und führt nicht zu Fehlern. Ich denke, dass die Verwendung des resultierenden Pakets das nicht brechen wird apt.

Jaime
quelle
1

Diese Quelle hat für mich unter Ubuntu 18 funktioniert:

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

Ich habe es hier gefunden , als ich versucht habe, Druckertreiber zu installieren, und es scheint zu funktionieren.

GeoKwi
quelle
hat meinen Tag gerettet! danke
Aryeh Beitz
0

IMO ist das Kompilieren aus dem Quellcode sicherer als das Verwenden alter Pakete aus alten Repositorys.

Der beste Rat, den ich Ihnen geben kann, ist, einen Fehlerbericht bei blackmagic einzureichen. Sie müssen ihre Abhängigkeiten aktualisieren.

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

Gehen Sie zum Kompilieren zum entsprechenden Ubuntu-Paket, um das Paket und die Upstream-Quelle zu identifizieren

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

Sie möchten also "libpng_1.2.54.orig.tar.xz"

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

herunterladen, extrahieren, kompilieren, installieren (beginnend nach dem Download und Extrahieren des Teerballs).

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

Zum erneuten Entfernen (falls erforderlich)

#run within libpng-1.2.54 directory
sudo make uninstall

Ich verstehe, es scheint ein paar zusätzliche Schritte zu sein, aber es ist trivial, auf diese Weise herunterzuladen und zu kompilieren, und es besteht kein Risiko, apt zu brechen.

Panther
quelle
Wenn Sie den ursprünglichen Quellcode kompilieren und dies tun make install, findet das .debInstallationsprogramm die Abhängigkeit nicht libpng-12als erfüllt. Das Installationsprogramm schlägt fehl. - Diese Lösung funktioniert, wenn Sie Zugriff auf den Quellcode oder ein anderes Installationsprogramm für die Software erhalten. - Wenn Sie den Quellcode nicht erhalten können, können Sie die Quellen für das Ubuntu-Paket kompilieren und die resultierende Datei installieren, bevor Sie die gewünschte Software installieren.
Jaime
Ich habe die Idee aufgegeben. Es ist wirklich nur ein Pflaster für ein Programm eines Anbieters, mit dem es ... ähm ... etwas schwierig ist, zu arbeiten. Schade, denn das Produkt hat viel zu bieten. Na ja ... weiter ...
Richard Emerson