ต้องใช้ Libpng12 สำหรับ 17.10


13

แก้ไขการแก้ไขวิดีโอ Blackmagic ออกแบบของ V14.0.1 ต้อง libpng1 2 น่าเสียดายที่มีเพียง libpng1 6เท่านั้นในรุ่น 17.10 ใหม่

มีวิธีเปลี่ยนกลับไปเป็น libpng12 ที่ต่ำกว่า 17.10 หรือไม่ ถ้าเป็นเช่นนั้นฉันจะรับ libpng12 ได้อย่างไร - synaptic จะไม่แสดงรายการนั้นเมื่อฉันค้นหา


1
ติดต่อ Blackmagic และยื่นรายงานข้อผิดพลาด blackmagicdesign.com/support
Panther

แทนที่จะติดตั้งแพคเกจล้าสมัยไปยังระบบพวกเขายังสามารถวางติดกับไบนารีแหล่งปิดที่ขึ้นอยู่กับโดยไม่ต้องรวมพวกเขา ใช้ldd ./path/to/<program>เพื่อแสดงไลบรารีไบนารีที่กำหนดจะพยายามโหลด คอมไพล์หรือดาวน์โหลดไลบรารีที่ล้าสมัยอย่างใดอย่างหนึ่งติดกับไบนารีหรือจัดการ envron LD_LIBRARY_PATH เพื่อรวมไว้ ระวังซอฟต์แวร์ใด ๆ ที่ไม่ได้เผยแพร่โดยที่เก็บของแพ็คเกจของผู้ดูแลระบบของคุณจะไม่ได้รับการปรับปรุงความปลอดภัยจากทีมรักษาความปลอดภัยของพวกเขา คุณจะต้องอัปเดตไลบรารีด้วยตัวเองด้วยตนเองสี่ครั้งต่อวันจึงเป็นสิ่งที่เหมาะสม :)
35715

คำตอบ:


17

มีแพ็คเกจของ Ubuntulibpng12-0สำหรับไว้ใจ (14.04LTS) และ xenial (16.04LTS) แต่ไม่ใช่สำหรับ 17.10 คุณต้องถามไปยังผู้ผลิตซอฟแวร์ (เช่นการออกแบบ Blackmagic) เพื่อปรับปรุงโปรแกรมและ / libpng16-16หรือติดตั้งเพื่อใช้งานล่าสุด


คุณสามารถดาวน์โหลดและติดตั้ง.debแพคเกจสำหรับ Xenial จากเว็บเพจ Ubuntuก่อนที่จะติดตั้งโปรแกรมแก้ไขวิดีโอ Resolve ของ Blackmagic Design

  • การติดตั้ง 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ระบบการติดตั้งของคุณเสียหาย


จะปลอดภัยไหมที่จะติดตั้งlibpng12แพ็คเกจจาก Xenial (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
    
  • โปรดทราบว่าไม่มีแพคเกจ Ubuntu อื่น ๆ ที่ต้องใช้รุ่นล่าสุดlibpng12เนื่องจากไม่ได้รวมอยู่ในที่เก็บ โปรแกรมล่าสุดขึ้นอยู่กับ libpng16-16และห้องสมุดทั้งสองสามารถอยู่ร่วมกันได้

  • aptผมคิดว่ามันไม่น่าเป็นไปได้มากว่าแพคเกจนี้แบ่ง

อย่าพยายามติดตั้งแพคเกจของการแจกจ่ายที่เก่ากว่าถ้าคุณไม่แน่ใจว่าคุณกำลังทำอะไรอยู่


คุณอยู่ในเส้นทางที่ถูกต้องและสิ่งนี้อาจใช้ได้กับแพ็คเกจแบบง่าย ๆ อย่างไรก็ตามการผสมแพ็กเกจจากแหล่งเก็บข้อมูลที่แตกต่างกันนั้นมีแนวโน้มว่าจะส่งผลให้ระบบแตกเนื่องจากการพึ่งพาที่ขัดแย้งกันและความน่าจะเป็นที่ระบบแตกจะเพิ่มขึ้นตามจำนวนและความซับซ้อนของแพ็คเกจที่เป็นปัญหา นอกจากนี้การติดตั้งผ่าน dpkg จะคงอยู่จนกว่าจะถึงวันถัดไปsudo apt upgradeคุณจะต้องพักแพ็กเกจที่นำเข้าไว้ ดีกว่าการคอมไพล์ libping12 และติดตั้งใน say / usr / local
Panther

ฉันเห็นด้วยวิธีนี้ไม่สามารถใช้ได้กับแพ็คเกจทั้งหมดที่คุณอาจต้องการ - ในรูปธรรมฉันลองใน Ubuntu 17.04 ที่เพิ่งติดตั้งซึ่งมีlibpng16-16แพ็คเกจก่อนที่จะติดตั้งlibpng12เพื่อตอบคำถามนี้ มีการติดตั้งไลบรารีทั้งสอง ฉันทำapt-get upgradeตอนจบ - ตอนนี้ผมคิดว่ากฎระเบียบในพื้นที่เก็บข้อมูลที่ไม่ได้พิจารณาเป็นรุ่นล่าสุดของlibpng16 libpng12ในทางกลับกันlibpng12ขึ้นอยู่กับ libc6 (> = 2.14) และ zlib1g (> = 1: 1.1.4) - ผมคิดว่าวิธีนี้อาจจะมีความปลอดภัยในการใช้libpng12 apt-get update
ไจ

มีการเปลี่ยนแปลงมากมายระหว่าง 16.04 และ 17.10 และการผสมแพ็คเกจจากที่เก็บเป็นหนึ่งในหลาย ๆ วิธีในการทำลาย Ubuntu หรือฉลาดขึ้นโดยเฉพาะ
Panther

คุณคิดว่าการติดตั้งแพคเกจนั้นขึ้นอยู่กับlibc6และxzlib1g(ที่มีอยู่ใน 17.x) ซึ่งเป็นอิสระจากlibpngห้องสมุดรวมและที่ไม่มีแพคเกจอื่นขึ้นอยู่กับมันสามารถทำลายapt? - ฉันคิดว่าโปรแกรมเช่น WPS และโปรแกรมแก้ไขวิดีโอการแก้ไขขึ้นอยู่กับ (เก่า) libpng12และพวกเขาจะไม่ได้รับผล โปรแกรม Ubuntu ล่าสุดไม่ขึ้นอยู่กับแต่libpng12 libpng16-16แอพเหล่านี้จะไม่ถูกระงับ - สำหรับกรณีที่เป็นรูปธรรมนี้ฉันคิดว่าโซลูชันนี้ปลอดภัย
ไจ

1
ในกรณีนี้มันจะไม่ทำลาย Apt อย่างแน่นอน อย่างไรก็ตามปัญหาอื่นคือหากlibpng12อัปโหลดรุ่นที่อัปเดตไปยังที่เก็บ 16.04 คุณจะไม่ได้รับการอัปเดตนี้โดยอัตโนมัติซึ่งเป็นข้อกังวลโดยเฉพาะอย่างยิ่งหากเกี่ยวข้องกับความปลอดภัย สิ่งนี้สามารถแก้ไขได้โดยการเพิ่มที่เก็บ 16.04 ไปยังรายการแหล่งที่มาของคุณและการใช้ apt-pinning เพื่อที่จะใช้สำหรับlibpng12(กำหนดลำดับความสำคัญ <100 ให้กับแพ็คเกจอื่นทั้งหมด)
fkraiem

4

แทนที่จะใช้แพ็คเกจไบนารีคุณสามารถรวบรวมlibpngได้

  • หากคุณมีซอร์สโค้ดของโปรแกรมที่คุณต้องการติดตั้งคุณสามารถใช้ซอร์สโค้ดเดิมได้ หลังจากติดตั้งไลบรารีแล้วคุณสามารถใช้ไลบรารีเพื่อกำหนดค่าและรวบรวมแอปพลิเคชันอื่น ๆ
  • หากคุณไม่มีซอร์สโค้ดของโปรแกรม แต่มีเพียง.debโปรแกรมติดตั้งเช่นหากโปรแกรมเป็นผลิตภัณฑ์เชิงพาณิชย์คุณต้องติดตั้งแพ็กเกจเพื่อหลีกเลี่ยงข้อผิดพลาดระหว่างการติดตั้ง คุณสามารถสร้างแพ็คเกจได้จากซอร์สโค้ดโดยใช้คำแนะนำด้านล่าง

รวบรวม libpng จากซอร์สโค้ดอย่างเป็นทางการ

โปรดทราบว่าv1.2.x libpng เก่าอาจมีจำนวนมากของช่องโหว่ ก็จะแนะนำให้ใช้รุ่น 1.2.x ล่าสุดจากSourceForgeหรือGitHub นี่เป็นเวอร์ชั่น 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.54Ubuntu มีรุ่นที่ปรับแต่งตามความ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. แตกซอร์สโค้ดโดยใช้ patched ที่จัดทำโดย Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. ตรวจสอบการอ้างอิงสำหรับแพ็กเกจ

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

    มันแสดงให้เห็นถึงการพึ่งพาสร้าง unmet ในกรณีของฉัน ...

     :
    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/

ในการรวบรวมให้ไปที่แพ็คเกจ 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 และติดตั้งไฟล์ผลลัพธ์ก่อนติดตั้งซอฟต์แวร์ที่คุณต้องการ
ไจ

ฉันเลิกคิดไปแล้ว จริงๆแล้วมันเป็นเพียงตัวช่วยแบนด์สำหรับโปรแกรมจากผู้ขายที่ ... อืม ... ค่อนข้างยากที่จะทำงานกับ มันเป็นเรื่องน่าเสียดายเนื่องจากผลิตภัณฑ์มีความเป็นไปได้มากมาย โอ้ ... ย้ายไป ...
Richard Emerson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.