Libpng12 diperlukan untuk 17.10

13

Editor video Resolve Blackmagic Design, V14.0.1, membutuhkan libpng1 2 . Sayangnya, hanya libpng1 6 yang disediakan dengan rilis 17.10 yang baru.

Apakah ada cara untuk kembali ke libpng12 di bawah 17.10? Jika demikian, bagaimana cara mendapatkan libpng12 - synaptic tidak mencantumkannya ketika saya mencarinya.

Richard Emerson
sumber
1
Hubungi Blackmagic dan ajukan laporan bug. blackmagicdesign.com/support
Panther
alih-alih menginstal paket usang ke sistem, mereka juga dapat ditempatkan berdekatan dengan binari sumber tertutup yang bergantung pada tanpa mengikatnya. Gunakan ldd ./path/to/<program>untuk memperlihatkan perpustakaan biner yang diberikan akan mencoba memuat. Kompilasi atau unduh pustaka usang baik yang bersebelahan dengan biner atau memanipulasi envron LD_LIBRARY_PATH untuk memasukkannya. Hati-hati, perangkat lunak apa pun yang tidak didistribusikan oleh repositori paket pengelola Anda tidak akan mendapatkan pembaruan keamanan dari tim keamanan mereka; Anda harus memperbarui perpustakaan secara manual sendiri, empat kali sehari ideal :)
ThorSummoner

Jawaban:

17

Ada paket Ubuntu untuklibpng12-0 untuk trusty (14.04LTS) dan xenial (16.04LTS), tetapi tidak untuk 17.10. Anda harus bertanya kepada produsen perangkat lunak (mis. Desain Blackmagic) untuk memperbarui program dan / atau installer untuk menggunakan yang terbaru libpng16-16.


Sebagai solusinya, Anda dapat mengunduh dan menginstal .debpaket untuk Xenial dari halaman web Ubuntu sebelum menginstal editor video Resolve Blackmagic Design.

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

CATATAN: Menginstal paket dari distribusi yang lebih lama dapat merusak aptsistem instalasi Anda .


Apakah aman untuk menginstal libpng12paket dari Xenial (16.04LTS)?

Menggunakan paket dari distribusi lama bisa berbahaya. Ini dapat merusak aptsistem instalasi karena paket yang lebih lama dapat memperkenalkan dependensi ke paket yang tidak ada atau mengganti paket yang dibutuhkan versi baru. Cobalah untuk menggunakan paket dan repositori untuk versi Ubuntu yang Anda gunakan, yaitu repositori resmi Ubuntu dan repositori PPA terkenal (yang menguji paket-paket mereka).

Untuk memeriksa apakah instalasi libpng12dapat merusak apt, saya memeriksa informasi paket .

  • The libpng12tergantung pada libc6 (>= 2.14)dan zlib1g (>= 1:1.1.4)yang termasuk dalam versi Ubuntu terbaru.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Perhatikan bahwa tidak ada paket Ubuntu lain yang memerlukan versi terbaru libpng12karena tidak termasuk dalam repositori. Program terbaru tergantung pada libpng16-16dan kedua perpustakaan dapat hidup berdampingan.

  • Saya pikir sangat tidak mungkin paket ini merusak apt.

Jangan mencoba untuk menginstal paket distribusi yang lebih lama jika Anda tidak yakin dengan apa yang Anda lakukan.

Jaime
sumber
Anda seperti berada di jalur yang benar dan ini dapat bekerja untuk paket sederhana. Akan tetapi, menggabungkan paket dari repositori yang berbeda akan menghasilkan sistem yang rusak karena ketergantungan yang saling bertentangan dan kemungkinan sistem yang rusak meningkat dengan jumlah dan kompleksitas paket yang dimaksud. Selain itu, menginstal melalui dpkg hanya akan berlangsung hingga yang berikutnya sudo apt upgrade, Anda harus menunda paket impor. Lebih baik mengkompilasi libping12 dan menginstalnya di say / usr / local.
Panther
Saya setuju, solusi ini tidak bekerja dengan semua paket yang mungkin Anda butuhkan - Secara konkret, saya mencoba ini di Ubuntu 17.04 yang baru saja diinstal yang memiliki libpng16-16paket sebelum menginstal libpng12untuk menjawab pertanyaan ini. Kedua perpustakaan menghasilkan diinstal. Saya melakukan apt-get upgradepada akhirnya. - Saat ini, saya pikir aturan dalam repositori tidak dianggap libpng16sebagai versi terbaru dari libpng12. Pada gilirannya, libpng12hanya tergantung pada libc6 (> = 2.14) dan zlib1g (> = 1: 1.1.4). - Saya pikir solusi ini libpng12mungkin aman untuk digunakan apt-get update.
Jaime
Ada banyak perubahan antara 16.04 dan 17.10 dan menggabungkan paket dari repositori adalah salah satu dari banyak cara untuk memecah Ubuntu atau lebih tepatnya apt.
Panther
Apakah Anda berpikir bahwa menginstal paket yang hanya bergantung pada libc6dan xzlib1g(yang ada di 17.x), yang independen dari libpngpustaka yang disertakan , dan yang tidak dapat dipecah oleh paket lain, dapat merusaknya apt? - Saya pikir program seperti WPS dan editor video Resolve tergantung pada (lama) libpng12dan mereka tidak akan menahan hasil. Program Ubuntu terbaru tidak tergantung pada libpng12tetapi libpng16-16. Aplikasi ini tidak akan ditunda. - Untuk kasus konkret ini, saya pikir solusi ini aman.
Jaime
1
Dalam hal ini, memang tidak akan merusak Apt. Namun, masalah lain adalah bahwa jika versi yang diperbarui libpng12diunggah ke repositori 16,04, Anda tidak akan secara otomatis mendapatkan pembaruan ini, yang menjadi perhatian terutama jika itu terkait keamanan. Ini dapat diperbaiki dengan menambahkan repositori 16,04 ke daftar sumber Anda dan menggunakan apt-pinning sehingga hanya digunakan untuk libpng12(menetapkan prioritas <100 untuk semua paket lain).
fkraiem
4

Alih-alih menggunakan paket biner, Anda dapat mengkompilasi libpng.

  • Jika Anda memiliki kode sumber program yang ingin Anda instal, Anda dapat menggunakan kode sumber asli. Setelah menginstal perpustakaan, Anda dapat menggunakannya untuk mengkonfigurasi dan mengkompilasi aplikasi lain.
  • Jika Anda tidak memiliki kode sumber program tetapi hanya .debpenginstal, mis., Jika program tersebut adalah produk komersial, Anda harus menginstal paket untuk menghindari kesalahan selama instalasi. Anda dapat membuat paket dari kode sumber menggunakan instruksi di bawah ini.

Kompilasi libpng dari kode sumber resmi

Perhatikan bahwa libpng v1.2.x lama mungkin memiliki banyak kerentanan . Disarankan untuk menggunakan versi 1.2.x terbaru dari sourceforge atau github . Ini untuk versi v.1.2.59.

  1. Instal paket untuk mengkompilasi perangkat lunak (jika tidak diinstal)

    $ sudo apt-get install build-essential
    
  2. Dapatkan dan ekstrak kode sumber

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Kompilasi dan instal perpustakaan

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

CATATAN: Memasang pustaka tidak akan mengatur ketergantungan libpng12seperti yang ditemui apt. Anda harus menggunakan .debpaket untuk menginstalnya dan mendukung pemasangan .debfile lain yang bergantung padanya. Untuk membuat .debpaket yang sesuai , Anda dapat menggunakan instruksi berikut.


Menggunakan kode sumber paket Ubuntu

yang libpng12-0paket sesuai dengan libpng 1.2.54. Ubuntu memiliki versi khusus yang mereka beri nama 1.2.54-1ubuntu1.

  1. Instal paket untuk mengkompilasi perangkat lunak dan membuat paket Ubuntu (jika tidak diinstal)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Unduh file kode sumber menggunakan .dscfile dari halaman

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Ekstrak kode sumber menerapkan tambalan yang disediakan oleh Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Periksa dependensi untuk paket tersebut

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

    Ini menunjukkan dependensi build yang tidak terpenuhi. Dalam kasus saya...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Instal dependensi

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

    $ fakeroot debian/rules binary
    

    Paket yang dihasilkan akan berada di folder induk

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Gunakan paket yang dihasilkan

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

CATATAN: Mengkompilasi dan menginstal paket untuk distribusi lama sama berbahayanya dengan menggunakan paket biner untuk distribusi lama . Proses kompilasi yang dijelaskan untuk libpng12paket hanya menggunakan paket di repositori Ubuntu 17.x dan tidak menghasilkan kesalahan. Saya pikir menggunakan paket yang dihasilkan tidak akan merusak apt.

Jaime
sumber
1

Sumber ini bekerja untuk saya di 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

Ditemukan di sini ketika mencoba menginstal driver printer dan tampaknya berfungsi.

GeoKwi
sumber
menyelamatkan hari saya! terima kasih
Aryeh Beitz
0

IMO Anda lebih aman dikompilasi dari sumber daripada menggunakan paket lama dari repositori lama.

Saran terbaik yang bisa saya berikan kepada Anda adalah mengajukan laporan bug dengan blackmagic, mereka perlu memperbarui dependensi mereka.

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

Untuk mengkompilasi, buka paket ubuntu yang relevan untuk mengidentifikasi paket dan sumber upstream

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

Jadi, Anda ingin "libpng_1.2.54.orig.tar.xz"

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

unduh, ekstrak, kompilasi, instal (mulai setelah mengunduh dan mengekstrak bola tar).

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

Untuk menghapus lagi (jika perlu)

#run within libpng-1.2.54 directory
sudo make uninstall

Saya mengerti sepertinya ada beberapa langkah tambahan, tetapi sepele untuk mengunduh dan mengkompilasi dengan cara ini dan tidak ada risiko melanggar apt.

Harimau kumbang
sumber
Jika Anda mengkompilasi kode sumber asli dan melakukan make install, .debpenginstal tidak akan menemukan ketergantungan libpng-12terpenuhi. Pemasang akan gagal. - Solusi ini akan berfungsi jika Anda dapat mengakses kode sumber atau jenis penginstal lain untuk perangkat lunak. - Jika Anda tidak bisa mendapatkan kode sumber, Anda dapat mengkompilasi sumber untuk paket Ubuntu dan menginstal file yang dihasilkan sebelum menginstal perangkat lunak yang Anda inginkan.
Jaime
Saya sudah menyerah ide. Ini benar-benar hanya bantuan band untuk program dari vendor yang ... um ... agak sulit untuk dikerjakan. Sangat disayangkan, karena produk memiliki banyak hal untuk itu. Oh well ... pindah ...
Richard Emerson