Libpng12 को 17.10 की आवश्यकता थी


13

Blackmagic Design का संकल्प वीडियो संपादक, V14.0.1, libpng1 2 की आवश्यकता है । दुर्भाग्य से, केवल libpng1 6 नए 17.10 रिलीज के साथ प्रदान किया गया है।

क्या 17.10 के तहत libpng12 पर वापस जाने का एक तरीका है? यदि हां, तो मुझे libpng12 कैसे मिलता है - जब मैं इसके लिए खोज करता हूं तो synaptic इसे सूचीबद्ध नहीं करता है।


1
संपर्क करें Blackmagic और एक बग रिपोर्ट दर्ज करें। blackmagicdesign.com/support
पैंथर

सिस्टम में अप्रचलित पैकेज स्थापित करने के बजाय, उन्हें बंद स्रोत बायनेरिज़ से सटे रखा जा सकता है जो उन्हें बिना बंडल के निर्भर करते हैं। ldd ./path/to/<program>पुस्तकालयों को दिखाने के लिए उपयोग करें दिए गए बाइनरी लोड करने का प्रयास करेंगे। बाइनरी से सटे अप्रचलित पुस्तकालयों को संकलित या डाउनलोड करें या उन्हें शामिल करने के लिए envron LD_LIBRARY_PATH में हेरफेर करें। खबरदार, आपके अनुरक्षक पैकेज रिपॉजिटरी द्वारा वितरित नहीं किए गए किसी भी सॉफ़्टवेयर को आपके सुरक्षा टीम से सुरक्षा अद्यतन प्राप्त नहीं होने वाले हैं; आप अपने आप को लाइब्रेरी को मैन्युअल रूप से अपडेट करने जा रहे हैं, दिन में चार बार आदर्श है :)
ThorSummoner

जवाबों:


17

भरोसेमंद (14.04LTS) और xenial (16.04LTS) के लिए उबंटू पैकेजlibpng12-0 हैं , लेकिन 17.10 के लिए नहीं। आपको सॉफ़्टवेयर निर्माता (यानी Blackmagic Design) से प्रोग्राम और / या इंस्टॉलर को अद्यतन करने के लिए कहना चाहिए libpng16-16


वर्कअराउंड के रूप में, आप Blackmagic Design के .debरिज़ॉल्यूशन वीडियो एडिटर को स्थापित करने से पहले Ubuntu वेब पेज से 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इंस्टॉलेशन सिस्टम को तोड़ सकता है क्योंकि पुराने पैकेज गैर-मौजूदा पैकेजों पर निर्भरता का परिचय दे सकते हैं या उन पैकेजों को बदल सकते हैं जिनकी नए संस्करणों को आवश्यकता होती है। उबंटू संस्करण के लिए पैकेज और रिपॉजिटरी का उपयोग करने का प्रयास करें, जिसका आप उपयोग कर रहे हैं, अर्थात, आधिकारिक उबंटू रिपॉजिटरी और प्रसिद्ध पीपीए रिपॉजिटरी (जो उनके पैकेज का परीक्षण करते हैं)।

यह जाँचने के लिए कि क्या इंस्टालेशन 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
    
  • ध्यान दें कि किसी अन्य उबंटू पैकेज को हाल के संस्करण की आवश्यकता libpng12नहीं है क्योंकि यह रिपॉजिटरी में शामिल नहीं है। सबसे हाल के कार्यक्रम पर निर्भर करता है libpng16-16और दोनों पुस्तकालय सह-अस्तित्व में आ सकते हैं।

  • मुझे लगता है कि इस पैकेज के टूटने की संभावना बहुत कम है apt

यदि आप जो कर रहे हैं, उसके बारे में निश्चित नहीं हैं, तो पुराने वितरण के पैकेज को स्थापित करने का प्रयास न करें।


आप सही रास्ते पर हैं और यह सरल पैकेज के लिए काम कर सकता है। अलग-अलग रिपॉजिटरी से पैकेज मिक्स करने की संभावना है, हालांकि, परस्पर विरोधी निर्भरता के कारण टूटी हुई प्रणाली के परिणामस्वरूप और प्रश्न में संकुल की संख्या और जटिलता के साथ एक टूटी हुई प्रणाली की संभावना बढ़ जाती है। इसके अलावा, dpkg के माध्यम से स्थापित करना केवल अगले तक चलेगा sudo apt upgrade, आपको आयातित पैकेज को होल्ड पर रखना होगा। Libping12 संकलित करने और इसे / usr / स्थानीय में संस्थापित करने से बेहतर है।
पैंथर

मैं सहमत हूं, यह समाधान आपके लिए आवश्यक सभी पैकेजों के साथ काम नहीं करता है - कंक्रीट में, मैंने हाल ही में स्थापित उबंटू 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 के बीच बहुत सारे बदलाव हैं और रिपॉजिटरी से मिक्सिंग पैकेज उबंटू या अधिक विशेष रूप से उपयुक्त को तोड़ने के कई तरीकों में से एक है।
पैंथर

क्या आपको लगता है कि एक पैकेज स्थापित करना जो केवल पर निर्भर करता है libc6और xzlib1g(जो कि 17.x में मौजूद है), जो कि शामिल libpngलाइब्रेरी से स्वतंत्र है , और जो कोई अन्य पैकेज इस पर निर्भर नहीं है, उसे तोड़ सकते हैं apt? - मुझे लगता है कि डब्ल्यूपीएस और रिज़ॉल्यूशन वीडियो एडिटर जैसे प्रोग्राम पुराने (पुराने) पर निर्भर करते हैं libpng12और उनका परिणाम नहीं होगा। हाल उबंटू कार्यक्रमों पर निर्भर नहीं करता libpng12है, लेकिन libpng16-16। ये ऐप न तो होल्ड होंगे और न ही। - इस ठोस मामले के लिए, मुझे लगता है कि यह समाधान सुरक्षित है।
जैम

1
इस मामले में, यह वास्तव में Apt को नहीं तोड़ेगा। हालाँकि, एक और मुद्दा यह है कि अगर एक अद्यतन संस्करण libpng1216.04 रिपॉजिटरी में अपलोड किया जाता है, तो आपको यह अपडेट स्वचालित रूप से नहीं मिलेगा, जो विशेष रूप से सुरक्षा से संबंधित होने पर चिंता का विषय है। यह आपके स्रोतों की सूची में 16.04 रिपॉजिटरी को जोड़कर और उपयुक्त-पिनिंग का उपयोग करके तय किया जा सकता है, इसलिए उनका उपयोग केवल libpng12(अन्य 100 सभी पैकेजों को प्राथमिकता देने के लिए ) किया जाता है।
फकरीम

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। उबंटू का एक स्वनिर्धारित संस्करण है जिसका नाम उन्होंने रखा है 1.2.54-1ubuntu1

  1. सॉफ़्टवेयर संकलित करने और उबंटू पैकेज बनाने के लिए पैकेज स्थापित करें (यदि वे स्थापित नहीं हैं)

    $ 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. उबंटू द्वारा प्रदान किए गए पैच को लागू करने वाला स्रोत कोड निकालें

    $ 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पैकेज के लिए वर्णित संकलन प्रक्रिया उबंटू 17.x रिपॉजिटरी में केवल पैकेज का उपयोग करती है और त्रुटियों में परिणाम नहीं करती है। मुझे लगता है कि परिणामस्वरूप पैकेज का उपयोग करने से ब्रेक नहीं होगा apt


1

इस स्रोत ने मेरे लिए उबंटू 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

प्रिंटर ड्राइवरों को स्थापित करने का प्रयास करते समय यह यहां पाया गया और यह काम करने लगता है।


मेरा दिन बचाया! धन्यवाद
आर्येह बीट्ज २

0

IMO आप स्रोत से संकलित कर रहे हैं की तुलना में आप पुराने भंडार से पुराने संकुल का उपयोग कर रहे हैं।

सबसे अच्छी सलाह जो मैं आपको दे सकता हूं वह है ब्लैकपॉन्ड के साथ बग रिपोर्ट दर्ज करना, उन्हें अपनी निर्भरता को अपडेट करने की आवश्यकता है।

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/

डाउनलोड, एक्सट्रैक्ट, संकलन, इंस्टॉल (डाउनलोड के बाद शुरू और टार बॉल निकालने)।

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

फिर से निकालने के लिए (यदि आवश्यक हो)

#run within libpng-1.2.54 directory
sudo make uninstall

मैं समझता हूं कि यह कुछ अतिरिक्त चरणों की तरह लगता है, लेकिन इस तरह से डाउनलोड और संकलित करना तुच्छ है और इसके टूटने का कोई जोखिम नहीं है।


यदि आप मूल स्रोत कोड संकलित करते हैं और करते हैं make install, तो .debइंस्टॉलर को मिलने वाली निर्भरता नहीं मिलेगी libpng-12। इंस्टॉलर विफल हो जाएगा। - यह समाधान काम करेगा यदि आप सॉफ़्टवेयर के लिए स्रोत कोड या अन्य प्रकार के इंस्टॉलर तक पहुंच प्राप्त कर सकते हैं। - यदि आपको स्रोत कोड नहीं मिल रहा है, तो आप उबंटू पैकेज के लिए स्रोतों को संकलित कर सकते हैं और अपने इच्छित सॉफ़्टवेयर को स्थापित करने से पहले परिणामी फ़ाइल को स्थापित कर सकते हैं।
Jaime

मैंने विचार छोड़ दिया है। यह वास्तव में एक विक्रेता से एक कार्यक्रम के लिए सिर्फ एक बैंड-सहायता है जो ... उम ... कुछ हद तक मुश्किल काम है। यह अफ़सोस की बात है, क्योंकि उत्पाद इसके लिए बहुत कुछ है। ओह ठीक है ... आगे बढ़ रहे हैं ...
रिचर्ड इमर्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.