Libpng12 nécessaire pour 17.10

13

L'éditeur vidéo Resolve de Blackmagic Design, V14.0.1, nécessite libpng1 2 . Malheureusement, seule libpng1 6 est fournie avec la nouvelle version 17.10.

Existe-t-il un moyen de revenir à libpng12 sous 17.10? Si oui, comment puis-je obtenir libpng12 - synaptic ne le répertorie pas lorsque je le recherche.

Richard Emerson
la source
1
Contactez Blackmagic et déposez un rapport de bogue. blackmagicdesign.com/support
Panther
au lieu d'installer des packages obsolètes sur le système, ils peuvent également être placés à côté de fichiers binaires fermés qui dépendent de sans les regrouper. Utilisez ldd ./path/to/<program>pour afficher les bibliothèques que le binaire donné va essayer de charger. Compilez ou téléchargez les bibliothèques obsolètes adjacentes au binaire ou manipulez envron LD_LIBRARY_PATH pour les inclure. Attention, tout logiciel non distribué par le référentiel de packages de votre responsable ne recevra pas les mises à jour de sécurité de son équipe de sécurité; vous devrez mettre à jour manuellement la bibliothèque vous-même, quatre fois par jour est l'idéal :)
ThorSummoner

Réponses:

17

Il existe des packages Ubuntu pourlibpng12-0 pour trusty (14.04LTS) et xenial (16.04LTS), mais pas pour 17.10. Vous devez demander au fabricant du logiciel (c.-à-d. Blackmagic Design) de mettre à jour le programme et / ou le programme d'installation pour utiliser le plus récent libpng16-16.


Comme solution de contournement, vous pouvez télécharger et installer le .debpackage pour Xenial à partir de la page Web Ubuntu avant d'installer l'éditeur vidéo Resolve de Blackmagic Design.

  • L'installation 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
    

REMARQUE: l' installation de packages à partir d'anciennes distributions peut endommager votre aptsystème d'installation.


Est-il sûr d'installer le libpng12package à partir de Xenial (16.04LTS)?

L'utilisation de packages d'anciennes distributions peut être dangereuse. Cela peut casser le aptsystème d'installation car les anciens packages peuvent introduire des dépendances par rapport aux packages non existants ou remplacer les packages requis par les nouvelles versions. Essayez d'utiliser des packages et des référentiels pour la version d'Ubuntu que vous utilisez, c'est-à-dire les référentiels officiels d'Ubuntu et les référentiels PPA bien connus (qui testent leurs packages).

Pour vérifier si l'installation de libpng12peut casser le apt, j'ai vérifié les informations sur le package .

  • Le libpng12dépend libc6 (>= 2.14)et zlib1g (>= 1:1.1.4)qui sont inclus dans les dernières versions d' Ubuntu.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Notez qu'aucun autre package Ubuntu ne nécessite une version récente de libpng12car il n'est pas inclus dans le référentiel. Les programmes les plus récents en dépendent libpng16-16et les deux bibliothèques peuvent coexister.

  • Je pense qu'il est très peu probable que ce paquet casse le apt.

N'essayez pas d'installer un package d'une distribution plus ancienne si vous n'êtes pas sûr de ce que vous faites.

Jaime
la source
Vous êtes en quelque sorte sur la bonne voie et cela peut fonctionner pour des packages simples. Cependant, le mélange de packages provenant de différents référentiels est susceptible d'entraîner un système défectueux en raison de dépendances conflictuelles et la probabilité d'un système défectueux augmente avec le nombre et la complexité des packages en question. De plus, l'installation via dpkg ne durera que jusqu'à la prochaine sudo apt upgrade, vous devrez mettre le paquet importé en attente. Mieux vaut compiler libping12 et l'installer dans say / usr / local.
Panther
Je suis d'accord, cette solution ne fonctionne pas avec tous les packages dont vous pourriez avoir besoin - Concrètement, j'ai essayé cela dans un Ubuntu 17.04 récemment installé qui avait le libpng16-16package avant l'installation libpng12pour répondre à cette question. Les deux bibliothèques ont été installées. J'ai fait un apt-get upgradeà la fin. - Pour l'instant, je pense que les règles du référentiel ne sont pas considérées libpng16comme une version récente de libpng12. À son tour, libpng12ne dépend que de libc6 (> = 2.14) et zlib1g (> = 1: 1.1.4). - Je pense que cette solution libpng12peut être sûre à utiliser apt-get update.
Jaime
Il y a beaucoup de changements entre 16.04 et 17.10 et le mélange de packages à partir de référentiels est l'une des nombreuses façons de casser Ubuntu ou plus spécifiquement apt.
Panther
Pensez - vous que l' installation d' un package qui ne dépend que libc6et xzlib1g(qui existe dans 17.x), qui est indépendant de la inclus libpngbibliothèque, et qu'aucune autre paquet en dépendent, peut briser le apt? - Je pense que des programmes tels que WPS et l'éditeur vidéo Resolve dépendent de (l'ancien) libpng12et ils ne résulteront pas en maintien. Les programmes Ubuntu récents ne dépendent pas de libpng12mais libpng16-16. Ces applications ne seront pas non plus conservées. - Pour ce cas concret, je pense que cette solution est sûre.
Jaime
1
Dans ce cas, il ne cassera en effet pas Apt. Cependant, un autre problème est que si une version mise à jour de libpng12est téléchargée dans les référentiels 16.04, vous n'obtiendrez pas automatiquement cette mise à jour, ce qui est un problème, surtout si elle est liée à la sécurité. Cela peut être résolu en ajoutant les référentiels 16.04 à votre liste de sources et en utilisant l'épinglage apt afin qu'ils ne soient utilisés que pour libpng12(en attribuant une priorité <100 à tous les autres packages).
fkraiem
4

Au lieu d'utiliser le package binaire, vous pouvez compiler libpng.

  • Si vous avez le code source du programme que vous souhaitez installer, vous pouvez utiliser le code source d'origine. Après avoir installé la bibliothèque, vous pouvez l'utiliser pour configurer et compiler d'autres applications.
  • Si vous n'avez pas le code source du programme mais seulement un programme d' .debinstallation, par exemple, si le programme est un produit commercial, vous devez installer un package pour éviter les erreurs lors de l'installation. Vous pouvez créer le package à partir du code source en suivant les instructions ci-dessous.

Compiler libpng à partir du code source officiel

Notez que l' ancienne libpng v1.2.x peut avoir beaucoup de vulnérabilités . Il est recommandé d'utiliser la version 1.2.x la plus récente de sourceforge ou github . C'est pour la version v.1.2.59.

  1. Installez les packages pour compiler les logiciels (s'ils ne sont pas installés)

    $ sudo apt-get install build-essential
    
  2. Obtenir et extraire le code source

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Compiler et installer la bibliothèque

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

REMARQUE: L' installation de la bibliothèque ne définira pas la dépendance libpng12comme satisfaite apt. Vous devez utiliser un .debpackage pour l'installer et prendre en charge l'installation d'autres .debfichiers qui en dépendent. Pour créer le .debpackage correspondant , vous pouvez utiliser les instructions suivantes.


Utilisation du code source du package Ubuntu

le libpng12-0package correspond à libpng 1.2.54. Ubuntu a une version personnalisée qu'ils ont nommée 1.2.54-1ubuntu1.

  1. Installez les packages pour compiler les logiciels et créer des packages Ubuntu (s'ils ne sont pas installés)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Téléchargez les fichiers de code source en utilisant le .dscfichier de la page

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Extraire le code source en appliquant le correctif fourni par Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Vérifiez les dépendances du package

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

    Il montre les dépendances de construction non satisfaites. Dans mon cas...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Installer les dépendances

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

    $ fakeroot debian/rules binary
    

    Les packages résultants seront situés dans le dossier parent

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Utilisez le package résultant

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

REMARQUE: la compilation et l'installation de packages pour les anciennes distributions sont aussi dangereuses que l' utilisation de packages binaires pour les anciennes distributions . Le processus de compilation décrit pour le libpng12package utilise uniquement les packages dans les référentiels Ubuntu 17.x et ne génère pas d'erreurs. Je pense que l'utilisation du package résultant ne cassera pas le apt.

Jaime
la source
1

Cette source a fonctionné pour moi sur 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

Je l'ai trouvé ici en essayant d'installer les pilotes d'imprimante et cela semble fonctionner.

GeoKwi
la source
sauvé ma journée! merci
Aryeh Beitz
0

OMI, vous compilez plus sûrement à partir de la source que vous n'utilisez d'anciens packages provenant d'anciens dépôts.

Le meilleur conseil que je puisse vous donner est de déposer un rapport de bogue avec blackmagic, ils doivent mettre à jour leurs dépendances.

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

Pour compiler, accédez au package ubuntu approprié pour identifier le package et la source en amont

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

Vous voulez donc "libpng_1.2.54.orig.tar.xz"

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

télécharger, extraire, compiler, installer (en commençant après le téléchargement et en extrayant la boule de tar).

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

Pour supprimer à nouveau (si nécessaire)

#run within libpng-1.2.54 directory
sudo make uninstall

Je comprends que cela semble être quelques étapes supplémentaires, mais il est trivial de télécharger et de compiler de cette manière et il n'y a aucun risque de casser apt.

Panthère
la source
Si vous compilez le code source d'origine et effectuez la make install, le programme d' .debinstallation ne trouvera pas la dépendance libpng-12comme satisfaite. Le programme d'installation échouera. - Cette solution fonctionnera si vous pouvez accéder au code source ou à un autre type de programme d'installation pour le logiciel. - Si vous ne pouvez pas obtenir le code source, vous pouvez compiler les sources du package Ubuntu et installer le fichier résultant avant d'installer le logiciel souhaité.
Jaime
J'ai abandonné l'idée. C'est vraiment juste un pansement pour un programme d'un fournisseur qui est ... euh ... un peu difficile à travailler. C'est dommage, car le produit a beaucoup à offrir. Eh bien ...
Richard Emerson