Libpng12 potrzebny do 17.10

13

Edytor wideo Resolve firmy Blackmagic Design, wersja 14.0.1, wymaga libpng1 2 . Niestety, tylko nowa wersja 17.10 zawiera libpng1 6 .

Czy istnieje sposób powrotu do libpng12 poniżej 17.10? Jeśli tak, to w jaki sposób mogę uzyskać libpng12 - synaptic nie wyświetla go podczas wyszukiwania.

Richard Emerson
źródło
1
Skontaktuj się z Blackmagic i zgłoś błąd. blackmagicdesign.com/support
Panther
zamiast instalować przestarzałe pakiety w systemie, można je również umieścić w sąsiedztwie zamkniętych plików binarnych źródłowych, które zależą od tego, czy nie są powiązane. Służy ldd ./path/to/<program>do wyświetlania bibliotek, które dany plik binarny będzie próbował załadować. Skompiluj lub pobierz przestarzałe biblioteki przylegające do pliku binarnego lub zmanipuluj envron LD_LIBRARY_PATH, aby je uwzględnić. Uwaga, żadne oprogramowanie nie dystrybuowane przez repozytorium pakietów Twojego opiekuna nie będzie otrzymywać aktualizacji bezpieczeństwa od zespołu bezpieczeństwa; będziesz musiał ręcznie zaktualizować bibliotekę, cztery razy dziennie jest idealny :)
ThorSummoner

Odpowiedzi:

17

Istnieją pakiety Ubuntulibpng12-0 dla zaufanego (14.04LTS) i xenial (16.04LTS), ale nie dla 17.10. Musisz poprosić producenta oprogramowania (tj. Blackmagic Design) o aktualizację programu i / lub instalatora, aby korzystał z najnowszej wersji libpng16-16.


Aby obejść ten .debproblem , możesz pobrać i zainstalować pakiet dla Xenial ze strony internetowej Ubuntu przed zainstalowaniem edytora wideo Resolve Blackmagic Design.

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

UWAGA: Instalowanie pakietów ze starszych dystrybucji może uszkodzić aptsystem instalacyjny.


Czy instalacja libpng12pakietu z Xenial (16.04LTS) jest bezpieczna?

Używanie pakietów ze starszych dystrybucji może być niebezpieczne. Może to uszkodzić aptsystem instalacyjny, ponieważ starsze pakiety mogą wprowadzać zależności do nieistniejących pakietów lub zastępować pakiety wymagane przez nowe wersje. Spróbuj użyć pakietów i repozytoriów dla używanej wersji Ubuntu, tj. Oficjalnych repozytoriów Ubuntu i dobrze znanych repozytoriów PPA (które testują ich pakiety).

Aby sprawdzić, czy instalacja libpng12może spowodować uszkodzenie apt, sprawdziłem informacje o pakiecie .

  • libpng12Zależy libc6 (>= 2.14)i zlib1g (>= 1:1.1.4)które są zawarte w najnowszych wersjach Ubuntu.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Pamiętaj, że żaden inny pakiet Ubuntu nie wymaga najnowszej wersji, libpng12ponieważ nie znajduje się w repozytorium. Najnowsze programy zależą libpng16-16i obie biblioteki mogą współistnieć.

  • Myślę, że jest bardzo mało prawdopodobne, aby ten pakiet zepsuł się apt.

Nie próbuj instalować pakietu starszej dystrybucji, jeśli nie masz pewności, co robisz.

Jaime
źródło
Jesteś na dobrej drodze i może to działać w przypadku prostych pakietów. Mieszanie pakietów z różnych repozytoriów może jednak spowodować uszkodzenie systemu z powodu sprzecznych zależności, a prawdopodobieństwo uszkodzenia systemu wzrasta wraz z liczbą i złożonością danych pakietów. Co więcej, instalacja przez dpkg potrwa tylko do następnego sudo apt upgrade, będziesz musiał zawiesić importowany pakiet. Lepiej skompiluj libping12 i zainstaluj go w say / usr / local.
Panther
Zgadzam się, to rozwiązanie nie działa ze wszystkimi potrzebnymi pakietami - konkretnie, wypróbowałem to w niedawno zainstalowanym Ubuntu 17.04, który miał libpng16-16pakiet przed instalacją, libpng12aby odpowiedzieć na to pytanie. Obie biblioteki zostały zainstalowane. Zrobiłem apt-get upgradena końcu. - W tej chwili myślę, że reguły w repozytorium nie są uważane libpng16za najnowszą wersję libpng12. Z kolei libpng12zależy tylko od libc6 (> = 2.14) i zlib1g (> = 1: 1.1.4). - Myślę, że to rozwiązanie libpng12może być bezpieczne w użyciu apt-get update.
Jaime,
Istnieje wiele zmian między 16.04 a 17.10, a mieszanie pakietów z repozytoriów jest jednym z wielu sposobów na złamanie Ubuntu, a dokładniej apt.
Panther
Czy uważasz, że zainstalowanie pakietu, który zależy tylko od ( libc6i xzlib1gktóry istnieje w wersji 17.x), który jest niezależny od dołączonej libpngbiblioteki i który nie zależy od żadnego innego pakietu, może uszkodzić apt? - Myślę, że programy takie jak WPS i edytor wideo Resolve zależą od (starych) libpng12i nie spowodują zatrzymania. Najnowsze programy Ubuntu nie zależą od, libpng12ale libpng16-16. Te aplikacje również nie będą wstrzymywane. - W tym konkretnym przypadku uważam, że to rozwiązanie jest bezpieczne.
Jaime,
1
W tym przypadku rzeczywiście nie złamie Apt. Innym problemem jest jednak to, że jeśli zaktualizowana wersja programu libpng12zostanie przesłana do repozytoriów 16.04, ta aktualizacja nie zostanie automatycznie pobrana, co stanowi problem, szczególnie jeśli jest to związane z bezpieczeństwem. Można to naprawić, dodając repozytoria 16.04 do listy źródeł i używając apt-pinning, aby były używane tylko do libpng12(przypisywanie priorytetu <100 do wszystkich innych pakietów).
fkraiem
4

Zamiast korzystać z pakietu binarnego, możesz skompilować libpng.

  • Jeśli masz kod źródłowy programu, który chcesz zainstalować, możesz użyć oryginalnego kodu źródłowego. Po zainstalowaniu biblioteki możesz jej użyć do konfiguracji i kompilacji innych aplikacji.
  • Jeśli nie masz kodu źródłowego programu, a jedynie .debinstalator, np. Jeśli program jest produktem komercyjnym, musisz zainstalować pakiet, aby uniknąć błędów podczas instalacji. Możesz utworzyć pakiet z kodu źródłowego, postępując zgodnie z instrukcjami poniżej.

Kompilowanie libpng z oficjalnego kodu źródłowego

Zauważ, że stare libpng 1.2.x może zawierać wiele luk w zabezpieczeniach . Zaleca się korzystanie z najnowszej wersji 1.2.x od sourceforge lub github . Dotyczy to wersji v.1.2.59.

  1. Zainstaluj pakiety, aby skompilować oprogramowanie (jeśli nie są zainstalowane)

    $ sudo apt-get install build-essential
    
  2. Uzyskaj i wyodrębnij kod źródłowy

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Skompiluj i zainstaluj bibliotekę

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

UWAGA: Zainstalowanie biblioteki nie spowoduje ustawienia zależności libpng12tak, jak została spełniona apt. Musisz użyć .debpakietu, aby go zainstalować i wspierać instalację innych .debzależnych od niego plików. Aby utworzyć odpowiedni .debpakiet, możesz użyć następujących instrukcji.


Korzystanie z kodu źródłowego pakietu Ubuntu

libpng12-0pakiet odpowiada libpng 1.2.54. Ubuntu ma dostosowaną wersję, którą nazwali 1.2.54-1ubuntu1.

  1. Zainstaluj pakiety, aby skompilować oprogramowanie i utworzyć pakiety Ubuntu (jeśli nie są zainstalowane)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Pobierz pliki kodu źródłowego, używając .dscpliku ze strony

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Wyodrębnij kod źródłowy, stosując łatkę dostarczoną przez Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Sprawdź zależności dla pakietu

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

    Pokazuje niespełnione zależności kompilacji. W moim przypadku...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Zainstaluj zależności

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

    $ fakeroot debian/rules binary
    

    Wynikowe pakiety będą znajdować się w folderze nadrzędnym

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Użyj wynikowego pakietu

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

UWAGA: Kompilowanie i instalowanie pakietów dla starych dystrybucji jest równie niebezpieczne, jak używanie pakietów binarnych dla starych dystrybucji . Opisany proces kompilacji libpng12pakietu wykorzystuje tylko pakiety w repozytoriach Ubuntu 17.xi nie powoduje błędów. Myślę, że użycie wynikowego pakietu nie zepsuje apt.

Jaime
źródło
1

To źródło działało dla mnie na 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

Znalazłem go tutaj podczas próby zainstalowania sterowników drukarki i wydaje się, że działa.

GeoKwi
źródło
uratował mi dzień! dzięki
Aryeh Beitz
0

IMO bezpieczniej kompilujesz ze źródła niż używasz starych pakietów ze starych repozytoriów.

Najlepszą radą, jaką mogę ci dać, jest zgłoszenie błędu w blackmagic, muszą zaktualizować swoje zależności.

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

Aby skompilować, przejdź do odpowiedniego pakietu ubuntu, aby zidentyfikować pakiet i źródło źródłowe

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

Więc chcesz „libpng_1.2.54.orig.tar.xz”

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

pobierz, rozpakuj, skompiluj, zainstaluj (zaczynając po pobraniu i rozpakowaniu tar smoły).

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

Aby usunąć ponownie (w razie potrzeby)

#run within libpng-1.2.54 directory
sudo make uninstall

Rozumiem, że to wydaje się kilka dodatkowych kroków, ale pobieranie i kompilacja w ten sposób jest banalna i nie ma ryzyka złamania apt.

Pantera
źródło
Jeśli skompilujesz oryginalny kod źródłowy i to zrobisz make install, .debinstalator nie znajdzie zależności do libpng-12spełnionej. Instalator zawiedzie. - To rozwiązanie będzie działać, jeśli możesz uzyskać dostęp do kodu źródłowego lub innego typu instalatora oprogramowania. - Jeśli nie możesz uzyskać kodu źródłowego, możesz skompilować źródła pakietu Ubuntu i zainstalować plik wynikowy przed zainstalowaniem odpowiedniego oprogramowania.
Jaime,
Zrezygnowałem z tego pomysłu. To naprawdę tylko pomoc dla programu od dostawcy, który jest ... hmm ... trochę trudny do pracy. Szkoda, bo produkt ma na to dużo czasu. No cóż ... ruszam dalej ...
Richard Emerson