Libpng12 cần thiết cho 17.10


13

Trình chỉnh sửa video Giải quyết video của Blackmagic Design, V14.0.1, yêu cầu libpng1 2 . Thật không may, chỉ libpng1 6 được cung cấp với bản phát hành 17.10 mới.

Có cách nào để trở lại libpng12 dưới 17.10 không? Nếu vậy, làm thế nào để tôi có được libpng12 - synaptic không liệt kê nó khi tôi tìm kiếm nó.


1
Liên hệ với Blackmagic và nộp báo cáo lỗi. blackmagicdesign.com/support
Panther

thay vì cài đặt các gói lỗi thời vào hệ thống, chúng cũng có thể được đặt liền kề với các nhị phân nguồn đóng phụ thuộc vào mà không đóng gói chúng. Sử dụng ldd ./path/to/<program>để hiển thị các thư viện nhị phân đã cho sẽ cố tải. Biên dịch hoặc tải xuống các thư viện lỗi thời hoặc liền kề với tệp nhị phân hoặc thao tác envron LD_LIBRARY_PATH để bao gồm chúng. Coi chừng, bất kỳ phần mềm nào không được phân phối bởi kho lưu trữ gói bảo trì của bạn sẽ không nhận được cập nhật bảo mật từ nhóm bảo mật của họ; bạn sẽ phải tự cập nhật thư viện một cách thủ công, bốn lần một ngày là lý tưởng :)
ThorSummoner

Câu trả lời:


17

các gói Ubuntu dànhlibpng12-0 cho sự tin cậy (14.04LTS) và xenial (16.04LTS), nhưng không dành cho 17.10. Bạn phải yêu cầu nhà sản xuất phần mềm (tức là Blackmagic Design) cập nhật chương trình và / hoặc trình cài đặt để sử dụng gần đây nhất libpng16-16.


Để khắc phục, bạn có thể tải xuống và cài đặt .debgói cho Xenial từ trang web Ubuntu trước khi cài đặt trình chỉnh sửa video Giải quyết video của Blackmagic Design.

  • Cài đặt 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
    

LƯU Ý: Cài đặt gói từ các bản phân phối cũ hơn có thể phá vỡ apthệ thống cài đặt của bạn .


Có an toàn để cài đặt libpng12gói từ Xenial (16.04LTS) không?

Sử dụng các gói từ các bản phân phối cũ có thể nguy hiểm. Nó có thể phá vỡ apthệ thống cài đặt vì các gói cũ hơn có thể đưa ra các phụ thuộc vào các gói không tồn tại hoặc thay thế các gói mà các phiên bản mới yêu cầu. Hãy thử sử dụng các gói và kho lưu trữ cho phiên bản Ubuntu bạn đang sử dụng, tức là kho chính thức của Ubuntu và kho PPA nổi tiếng (kiểm tra các gói của chúng).

Để kiểm tra xem việc cài đặt libpng12có thể phá vỡ hay không apt, tôi đã kiểm tra thông tin gói .

  • Sự libpng12phụ thuộc libc6 (>= 2.14)zlib1g (>= 1:1.1.4)được bao gồm trong các phiên bản Ubuntu gần đây.

    $ apt-cache policy libc6     # gives me 2.24-9ubuntu2.2
    $ apt-cache policy zlib1g    # gives me 1.2.11dfsg-0ubuntu1
    
  • Lưu ý rằng không có gói Ubuntu nào khác yêu cầu phiên bản gần đây libpng12vì nó không được bao gồm trong kho lưu trữ. Các chương trình gần đây nhất phụ thuộc vào libpng16-16và cả hai thư viện có thể cùng tồn tại.

  • Tôi nghĩ rằng rất khó có khả năng gói này phá vỡ apt.

Đừng cố cài đặt gói phân phối cũ hơn nếu bạn không chắc chắn về những gì bạn đang làm.


Bạn đang đi đúng hướng và điều này có thể làm việc cho các gói đơn giản. Tuy nhiên, việc trộn các gói từ các kho khác nhau có thể dẫn đến một hệ thống bị hỏng do phụ thuộc xung đột và xác suất hệ thống bị hỏng tăng theo số lượng và độ phức tạp của các gói được đề cập. Hơn nữa, cài đặt qua dpkg sẽ chỉ kéo dài cho đến lần tiếp theo sudo apt upgrade, bạn sẽ phải tạm dừng gói nhập khẩu. Tốt hơn hết là biên dịch libping12 và cài đặt nó trong say / usr / local.
Panther

Tôi đồng ý, giải pháp này không hoạt động với tất cả các gói bạn có thể cần - Cụ thể, tôi đã thử điều này trong Ubuntu 17.04 được cài đặt gần đây có libpng16-16gói trước khi cài đặt libpng12để trả lời câu hỏi này. Cả hai thư viện kết quả được cài đặt. Tôi đã làm một apt-get upgradeở cuối. - Ngay bây giờ, tôi nghĩ rằng các quy tắc trong kho lưu trữ không được coi libpng16là phiên bản gần đây của libpng12. Đổi lại, libpng12chỉ phụ thuộc vào libc6 (> = 2.14) và zlib1g (> = 1: 1.1.4). - Tôi nghĩ giải pháp này libpng12có thể an toàn khi sử dụng apt-get update.
Jaime

Có rất nhiều thay đổi giữa 16.04 và 17.10 và trộn các gói từ kho lưu trữ là một trong nhiều cách để phá vỡ Ubuntu hoặc cụ thể hơn là apt.
Panther

Bạn có nghĩ rằng việc cài đặt một gói chỉ phụ thuộc vào libc6xzlib1g(tồn tại trong 17.x), độc lập với libpngthư viện đi kèm và không gói nào khác phụ thuộc vào nó, có thể phá vỡ aptkhông? - Tôi nghĩ rằng các chương trình như WPS và Trình chỉnh sửa video Giải quyết phụ thuộc vào (cũ) libpng12và chúng sẽ không giữ kết quả. Các chương trình Ubuntu gần đây không phụ thuộc vào libpng12nhưng libpng16-16. Những ứng dụng này sẽ không được giữ. - Đối với trường hợp cụ thể này, tôi nghĩ giải pháp này là an toàn.
Jaime

1
Trong trường hợp này, nó thực sự sẽ không phá vỡ Apt. Tuy nhiên, một vấn đề khác là nếu một phiên bản cập nhật libpng12được tải lên kho 16.04, bạn sẽ không tự động nhận được bản cập nhật này, đây là một vấn đề đáng lo ngại đặc biệt nếu nó liên quan đến bảo mật. Điều này có thể được khắc phục bằng cách thêm kho lưu trữ 16.04 vào danh sách nguồn của bạn và sử dụng ghim apt để chúng chỉ được sử dụng cho libpng12(gán mức ưu tiên <100 cho tất cả các gói khác).
fkraiem

4

Thay vì sử dụng gói nhị phân, bạn có thể biên dịch libpng.

  • Nếu bạn có mã nguồn của chương trình bạn muốn cài đặt, bạn có thể sử dụng mã nguồn gốc. Sau khi cài đặt thư viện, bạn có thể sử dụng nó để cấu hình và biên dịch các ứng dụng khác.
  • Nếu bạn không có mã nguồn của chương trình mà chỉ có trình .debcài đặt, ví dụ: nếu chương trình là sản phẩm thương mại, bạn phải cài đặt gói để tránh lỗi trong quá trình cài đặt. Bạn có thể tạo gói từ mã nguồn bằng hướng dẫn bên dưới.

Biên dịch libpng từ mã nguồn chính thức

Lưu ý rằng libpng v1.2.x cũ có thể có nhiều lỗ hổng . Bạn nên sử dụng phiên bản 1.2.x mới nhất từ sourceforge hoặc github . Đây là phiên bản v.1.2.59.

  1. Cài đặt các gói để biên dịch phần mềm (nếu chúng chưa được cài đặt)

    $ sudo apt-get install build-essential
    
  2. Lấy và trích xuất mã nguồn

    $ wget https://github.com/glennrp/libpng/archive/v1.2.59.tar.gz
    $ tar xvfz v1.2.59.tar.gz 
    
  3. Biên dịch và cài đặt thư viện

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

LƯU Ý: Cài đặt thư viện sẽ không đặt phụ thuộc thành libpng12đáp ứng apt. Bạn phải sử dụng một .debgói để cài đặt nó và hỗ trợ cài đặt các .debtệp khác phụ thuộc vào nó. Để tạo .debgói tương ứng , bạn có thể sử dụng các hướng dẫn sau.


Sử dụng mã nguồn của gói Ubuntu

các libpng12-0gói tương ứng với libpng 1.2.54. Ubuntu có một phiên bản tùy chỉnh mà họ đặt tên 1.2.54-1ubuntu1.

  1. Cài đặt các gói để biên dịch phần mềm và tạo các gói Ubuntu (nếu chúng chưa được cài đặt)

    $ sudo apt-get install build-essential fakeroot dpkg-dev devscripts
    
  2. Tải xuống các tệp mã nguồn bằng cách sử dụng .dsctệp từ trang

    $ dget -d http://archive.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng_1.2.54-1ubuntu1.dsc
    
  3. Trích xuất mã nguồn áp dụng bản vá được cung cấp bởi Ubuntu

    $ dpkg-source -x libpng_1.2.54-1ubuntu1.dsc 
    
  4. Kiểm tra các phụ thuộc cho gói

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

    Nó cho thấy sự phụ thuộc xây dựng chưa được đáp ứng. Trong trường hợp của tôi...

     :
    dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper (>= 8.1.3) libtool automake autoconf zlib1g-dev
    
  5. Cài đặt các phụ thuộc

    $ sudo apt-get install debhelper libtool automake autoconf zlib1g-dev
    
  6. Biên dịch

    $ fakeroot debian/rules binary
    

    Các gói kết quả sẽ được đặt trong thư mục mẹ

    ../libpng12-0_1.2.54-1ubuntu1_amd64.deb
    ../libpng12-dev_1.2.54-1ubuntu1_amd64.deb
    ../libpng3_1.2.54-1ubuntu1_amd64.deb
    
  7. Sử dụng gói kết quả

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

LƯU Ý: Biên dịch và cài đặt các gói cho các bản phân phối cũ cũng nguy hiểm như sử dụng các gói nhị phân cho các bản phân phối cũ . Quá trình biên dịch được mô tả cho libpng12gói chỉ sử dụng các gói trong kho lưu trữ Ubuntu 17.x và không gây ra lỗi. Tôi nghĩ rằng việc sử dụng gói kết quả sẽ không phá vỡ apt.


1

Nguồn này hoạt động với tôi trên 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

Tìm thấy nó ở đây trong khi cố gắng cài đặt trình điều khiển máy in và nó dường như đang hoạt động.


đã cứu ngày của tôi! cảm ơn
Aryeh Beitz

0

IMO bạn an toàn biên dịch từ nguồn hơn bạn đang sử dụng các gói cũ từ kho cũ.

Lời khuyên tốt nhất tôi có thể cung cấp cho bạn là nộp báo cáo lỗi với blackmagic, họ cần cập nhật các phụ thuộc của họ.

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

Để biên dịch, hãy đi tới gói ubfox có liên quan để xác định gói và nguồn ngược dòng

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

Vì vậy, bạn muốn "libpng_1.2.54.orig.tar.xz"

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

tải về, giải nén, biên dịch, cài đặt (bắt đầu sau khi tải xuống và giải nén bóng tar).

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

Để loại bỏ một lần nữa (nếu cần)

#run within libpng-1.2.54 directory
sudo make uninstall

Tôi hiểu rằng nó có vẻ như một vài bước bổ sung, nhưng việc tải xuống và biên dịch theo cách này là không đáng kể và không có nguy cơ phá vỡ apt.


Nếu bạn biên dịch mã nguồn gốc và thực hiện make install, trình .debcài đặt sẽ không tìm thấy sự phụ thuộc libpng-12như đã đáp ứng. Trình cài đặt sẽ thất bại. - Giải pháp này sẽ hoạt động nếu bạn có thể truy cập vào mã nguồn hoặc loại trình cài đặt khác cho phần mềm. - Nếu bạn không thể lấy mã nguồn, bạn có thể biên dịch các nguồn cho gói Ubuntu và cài đặt tệp kết quả trước khi cài đặt phần mềm bạn muốn.
Jaime

Tôi đã từ bỏ ý tưởng. Nó thực sự chỉ là một hỗ trợ ban nhạc cho một chương trình từ một nhà cung cấp ... ừm ... hơi khó để làm việc cùng. Thật đáng tiếc, vì sản phẩm có rất nhiều thứ cho nó. Oh well ... di chuyển trên ...
Richard Emerson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.