17.10에 필요한 Libpng12


13

Blackmagic Design의 Resolve 비디오 편집기 V14.0.1에는 libpng1 2 가 필요합니다 . 불행히도 새로운 17.10 릴리스에는 libpng1 6 만 제공됩니다.

17.10에서 libpng12로 되돌릴 수있는 방법이 있습니까? 그렇다면 libpng12를 얻는 방법-검색 할 때 시냅틱에 나열되지 않습니다.


1
Blackmagic에 연락하여 버그 보고서를 제출하십시오. blackmagicdesign.com/support
Panther

더 이상 사용되지 않는 패키지를 시스템에 설치하는 대신 번들없이 번들로 제공되는 닫힌 소스 바이너리에 인접하게 배치 할 수도 있습니다. ldd ./path/to/<program>주어진 바이너리가로드를 시도 할 라이브러리를 표시하는 데 사용 합니다. 바이너리에 인접한 라이브러리를 컴파일하거나 다운로드하거나 포함하도록 LD_LIBRARY_PATH envron을 조작하십시오. 관리자의 패키지 저장소에서 배포하지 않은 소프트웨어는 해당 보안 팀으로부터 보안 업데이트를받지 않습니다. 하루에 네 번 이상적으로 라이브러리를 수동으로 업데이트해야합니다. :)
ThorSummoner

답변:


17

거기 에 우분투 패키지는libpng12-0 하지만 17.10에, (16.04LTS) 신뢰할 수있는 (14.04LTS)와 주객 관계의하십시오. 소프트웨어 제조업체 (예 : 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)그 최근의 우분투 버전에 포함되어 있습니다.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • 다른 Ubuntu 패키지 libpng12는 리포지토리에 포함되어 있지 않기 때문에 최신 버전이 필요 하지 않습니다. 가장 최근의 프로그램은 의존 libpng16-16하며 두 라이브러리가 공존 할 수 있습니다.

  • 이 패키지가을 깨뜨릴 가능성은 거의 없다고 생각합니다 apt.

수행중인 작업이 확실하지 않은 경우 이전 배포 패키지를 설치하지 마십시오.


당신은 올바른 길을 가고 있으며 이것은 간단한 패키지에 효과적 일 수 있습니다. 그러나 서로 다른 리포지토리에서 패키지를 혼합하면 종속성이 충돌하여 시스템이 손상 될 수 있으며 문제가있는 패키지의 수와 복잡성으로 인해 시스템이 고장날 가능성이 높아집니다. 또한 dpkg를 통한 설치는 다음 번까지만 지속 sudo apt upgrade되므로 가져온 패키지를 보류해야합니다. libping12를 컴파일하고 / usr / local에 설치하는 것이 좋습니다.
Panther

이 솔루션이 필요한 모든 패키지에서 작동하지는 않는다는 점에 동의합니다. 구체적으로, 이 질문에 대답 libpng16-16하기 libpng12위해 설치하기 전에 패키지 가있는 최근 설치된 Ubuntu 17.04에서이 방법을 사용해 보았습니다 . 두 라이브러리 모두 설치되었습니다. 나는 apt-get upgrade끝에했다. -현재 리포지토리의 규칙 libpng16은 최신 버전으로 간주되지 않습니다 libpng12. 차례로 libpng12libc6 (> = 2.14) 및 zlib1g (> = 1 : 1.1.4)에만 의존합니다. -이 솔루션 libpng12을 사용하는 것이 안전 하다고 생각합니다 apt-get update.
Jaime

16.04와 17.10 사이에 많은 변화가 있으며 리포지토리에서 패키지를 혼합하는 것은 우분투를 깨뜨 리거나 더 구체적으로 적절한 방법 중 하나입니다.
Panther

포함 된 라이브러리와 독립적이며 다른 패키지가 아닌 패키지 에만 의존 libc6하고 xzlib1g(17.x에 존재 하는) 패키지를 설치 libpng하면 apt? -WPS 및 Resolve 비디오 편집기와 같은 프로그램은 (이전)에 의존하며 libpng12결과는 유지되지 않는다고 생각합니다. 최근 우분투 프로그램에 의존하지 않는다 libpng12하지만 libpng16-16. 이 앱들은 모두 보유하지 않을 것입니다. -이 구체적인 경우에는이 솔루션이 안전하다고 생각합니다.
Jaime

1
이 경우 실제로 Apt를 중단하지 않습니다. 그러나 또 다른 문제는 업데이트 된 버전의 버전이 libpng1216.04 리포지토리에 업로드되는 경우이 업데이트를 자동으로받지 못하므로 보안 관련 문제가 특히 중요하다는 것입니다. 16.04 리포지토리를 소스 목록에 추가하고 apt-pinning을 사용하여 libpng12(다른 모든 패키지에 우선 순위 <100을 할당) 용도로만 사용하면이 문제를 해결할 수 있습니다 .
fkraiem

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패키지 를 작성하려면 다음 지시 사항을 사용하십시오.


우분투 패키지의 소스 코드 사용

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는 이전 리포지토리의 이전 패키지를 사용하는 것보다 소스에서 안전하게 컴파일합니다.

내가 줄 수있는 가장 좋은 조언은 blackmagic으로 버그 보고서를 제출하는 것입니다. 그들은 의존성을 업데이트해야합니다.

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

컴파일하려면 관련 우분투 패키지로 이동하여 패키지 및 업스트림 소스를 식별하십시오.

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/

다운로드, 추출, 컴파일, 설치 (다운로드 후 시작 및 타르 볼 추출).

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 패키지의 소스를 컴파일하고 결과 파일을 설치할 수 있습니다.
Jaime

나는 그 아이디어를 포기했다. 실제로는 일하기가 다소 어려운 공급 업체의 프로그램에 대한 반창고 일뿐입니다. 제품이 많은 노력을 기울여서 안타깝습니다. 오 잘 .. 계속 ...
Richard Emerson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.