17.10にはLibpng12が必要


13

Blackmagic DesignのResolveビデオエディターV14.0.1にはlibpng1 2が必要です。残念ながら、libpng1 6のみが新しい17.10リリースで提供されています。

17.10でlibpng12に戻す方法はありますか?もしそうなら、どうすればlibpng12を取得できますか-シナプスでは検索時にリストされません。


1
Blackmagicに連絡し、バグレポートを提出してください。blackmagicdesign.com/support
Panther、

古いパッケージをシステムにインストールする代わりに、それらをバンドルせずに依存するクローズドソースバイナリに隣接して配置することもできます。ldd ./path/to/<program>指定されたバイナリがロードしようとするライブラリを表示するために使用します。バイナリに隣接する古いライブラリをコンパイルまたはダウンロードするか、envron LD_LIBRARY_PATHを操作してそれらを含めます。メンテナのパッケージリポジトリによって配布されていないソフトウェアは、セキュリティチームからセキュリティアップデートを取得しないことに注意してください。手動でライブラリを手動で更新する必要があります。1日4回が理想的です:)
ThorSummoner

回答:


17

trusty(14.04LTS)およびxenial(16.04LTS)用のUbuntuパッケージlibpng12-0がありますが、17.10用ではありません。ソフトウェアの製造元(Blackmagic Designなど)に、最新のを使用するようにプログラムやインストーラーを更新するよう依頼する必要がありますlibpng16-16


回避策として、Blackmagic DesignのResolveビデオエディターをインストールする前に、Ubuntuウェブページから.deb Xenial のパッケージをダウンロードしてインストールすることができます。

  • 取り付け 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
    

注:古いディストリビューションからパッケージをインストールすると、aptインストールシステムが壊れる場合があります。


libpng12Xenial(16.04LTS)からパッケージをインストールしても安全ですか?

古いディストリビューションのパッケージを使用すると危険な場合があります。apt古いパッケージは、存在しないパッケージへの依存関係を導入したり、新しいバージョンに必要なパッケージを置き換えたりする可能性があるため、インストールシステムが壊れる可能性があります。使用しているUbuntuバージョンのパッケージとリポジトリ、つまり公式のUbuntuリポジトリと有名なPPAリポジトリ(パッケージをテストするもの)を使用してみてください。

のインストールで問題libpng12が発生するかどうかを確認するために、パッケージ情報aptを確認しまし

  • libpng12依存libc6 (>= 2.14)してzlib1g (>= 1:1.1.4)いる最近のUbuntuのバージョンに含まれています。

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • libpng12リポジトリに含まれていないため、他のUbuntuパッケージはの最新バージョンを必要としません。最新のプログラムは依存して libpng16-16おり、両方のライブラリが共存できます。

  • このパッケージがを破る可能性は非常に低いと思いますapt

何をしているかわからない場合は、古いディストリビューションのパッケージをインストールしないでください。


あなたは一種の正しい軌道に乗っていて、これは単純なパッケージではうまくいくかもしれません。ただし、異なるリポジトリのパッケージを混在させると、依存関係の競合によりシステムが壊れる可能性があり、問題のパッケージの数と複雑さによってシステムが壊れる可能性が高くなります。さらに、dpkgを介したインストールは次のインストールまでしか持続しsudo apt upgradeないため、インポートしたパッケージを保留にする必要があります。libping12をコンパイルして、たとえば/ usr / localにインストールすることをお勧めします。
パンサー

私が同意するとおり、このソリューションは必要なすべてのパッケージでは機能しません-具体的には、この質問に答えるためlibpng16-16にインストールする前にパッケージがあった最近インストールされたUbuntu 17.04でこれを試しましたlibpng12。両方のライブラリがインストールされました。apt-get upgrade最後にやった。-現在、リポジトリのルールはのlibpng16最新バージョンとは見なされていませんlibpng12。次に、libpng12libc6(> = 2.14)およびzlib1g(> = 1:1.1.4)のみに依存します。-このソリューションlibpng12は、安全に使用できapt-get updateます。
ハイメ

16.04と17.10の間には多くの変更があり、リポジトリからのパッケージを混在させることは、Ubuntuを破壊する多くの方法の1つです。
パンサー

含まれているライブラリーに依存せず、依存しlibc6ているxzlib1g(17.xに存在する)だけで、libpng他のパッケージに依存していないパッケージをインストールすると、apt?-WPSやResolveビデオエディターなどのプログラムは(古い)に依存しており、libpng12結果が保持されないと思います。最近のUbuntuプログラムは依存してlibpng12いませんlibpng16-16。これらのアプリは保留にもなりません。-この具体的なケースでは、このソリューションは安全だと思います。
ハイメ、

1
この場合、実際にAptを壊すことはありません。ただし、もう1つの問題は、の更新バージョンがlibpng1216.04リポジトリにアップロードされた場合、この更新が自動的に取得されないことです。これは、特にセキュリティ関連の場合に問題になります。これは、16.04リポジトリをソースリストに追加し、apt-pinningを使用してlibpng12(他のすべてのパッケージに優先度<100を割り当てる)のみに使用することで修正できます。
fkraiem 2017年

4

バイナリパッケージを使用する代わりに、をコンパイルできますlibpng

  • インストールするプログラムのソースコードがある場合は、元のソースコードを使用できます。ライブラリをインストールしたら、それを使用して他のアプリケーションを構成およびコンパイルできます。
  • プログラムのソースコードがなく.debインストーラのみの場合(プログラムが商用製品の場合など)は、インストール中のエラーを回避するためにパッケージをインストールする必要があります。以下の手順に従って、ソースコードからパッケージを作成できます。

公式ソースコードからlibpngをコンパイルする

古いlibpng v1.2.xには多くの脆弱性があることに注意してください。sourceforgeまたはgithubの最新の1.2.xバージョンを使用することをお勧めします。これはv.1.2.59バージョン用です。

  1. ソフトウェアをコンパイルするためのパッケージをインストールします(インストールされていない場合)。

    $ sudo apt-get install build-essential
    
  2. ソースコードを入手して抽出する

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. ライブラリをコンパイルしてインストールする

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

注:ライブラリをインストールするには、に依存関係を設定していないだろうlibpng12に会ったようapt.debパッケージを使用してインストールし、.debそれに依存する他のファイルのインストールをサポートする必要があります。対応する.debパッケージを作成するには、次の手順を使用できます。


Ubuntuパッケージのソースコードを使用する

libpng12-0パッケージはに対応しますlibpng 1.2.54。Ubuntuには、カスタマイズしたバージョンがあり1.2.54-1ubuntu1ます。

  1. パッケージをインストールしてソフトウェアをコンパイルし、Ubuntuパッケージを作成します(インストールされていない場合)。

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. .dscページからファイルを使用してソースコードファイルをダウンロードする

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Ubuntuが提供するパッチを適用したソースコードを抽出する

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. パッケージの依存関係を確認する

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

    満たされていないビルドの依存関係を示します。私の場合...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. 依存関係をインストールする

    $ sudo apt-get install debhelper libtool automake autoconf zlib1g-dev
    
  6. コンパイル

    $ fakeroot debian/rules binary
    

    結果のパッケージは、親フォルダーに配置されます

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. 結果のパッケージを使用する

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

注:古いディストリビューションのパッケージのコンパイルとインストールは、古いディストリビューションのバイナリパッケージを使用するのと同じくらい危険です。説明されているlibpng12パッケージのコンパイルプロセスでは、Ubuntu 17.xリポジトリ内のパッケージのみが使用され、エラーは発生しません。できあがったパッケージを使用しても問題は発生しないと思いますapt


1

このソースは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

プリンタードライバーをインストールしようとしたときにここで見つかりましたが、動作しているようです。


私の日を救った!感謝
Aryeh Beitz

0

IMOは、古いリポジトリの古いパッケージを使用するよりも、ソースからコンパイルする方が安全です。

私があなたに与えることができる最高のアドバイスは、ブラックマジックでバグレポートを提出することです。彼らは依存関係を更新する必要があります。

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

コンパイルするには、関連するubuntuパッケージに移動して、パッケージとアップストリームソースを特定します

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

したがって、「libpng_1.2.54.orig.tar.xz」が必要です

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

ダウンロード、抽出、コンパイル、インストール(ダウンロード後に開始し、tarボールを抽出する)。

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

再度削除するには(必要な場合)

#run within libpng-1.2.54 directory
sudo make uninstall

私はそれがいくつかの追加の手順のように思われることを理解していますが、この方法でダウンロードしてコンパイルすることは簡単であり、aptを壊すリスクはありません。


元のソースコードをコンパイルしてを実行するmake installと、.debインストーラーは依存関係をlibpng-12満たしていないことを検出します。インストーラーは失敗します。-このソリューションは、ソフトウェアのソースコードまたは他のタイプのインストーラーにアクセスできる場合に機能します。-ソースコードを取得できない場合は、Ubuntuパッケージのソースをコンパイルし、必要なソフトウェアをインストールする前に、結果のファイルをインストールできます。
ハイメ

私はその考えをあきらめました。それは実際には、ベンダーからのプログラムのバンドエイドであり、...ええと...作業がやや難しいです。この製品には多くのメリットがあるため、残念です。ええと...先へ
リチャードエマーソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.