व्हीजेसी पर ग्लिबेक> = 2.14 स्थापित करने की आवश्यकता है


22

मैं पाने के लिए कोशिश कर रहा हूँ कोणमापक E2E कोणीय परीक्षण के प्रदर्शन के लिए काम कर रहे है, लेकिन चांदा की आवश्यकता है सेलेनियम जिसके लिए आवश्यक है ChromeDriver जिसके लिए आवश्यक है glibc2.14। मेरा वर्तमान विकास बॉक्स डेबियन व्हीज़ी चल रहा है जो glibc2.13 के साथ आता है । मैंने पढ़ा है कि डेबियन की अस्थिर शाखा पर स्विच करना पहुंच प्रदान करेगा glib-2.14, लेकिन मैंने जो सुना है वह अस्थिर है बहुत सुंदर है ... अस्थिर।

क्या किसी भी तरह से मैं glibcसब कुछ तोड़ने के जोखिम के बिना 2.14 या 2.15 में अपग्रेड कर सकता हूं ? या अस्थिर डेबियन शाखा से वापस स्विच करना संभव है अगर चीजें टूटने लगती हैं?

12:15:22.784 INFO - Executing: [new session: {browserName=chrome}] at URL: /session)
12:15:22.796 INFO - Creating a new session for Capabilities [{browserName=chrome}]
/home/chris/projects/personal/woddy/client/selenium/chromedriver:     /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by      /home/chris/projects/personal/woddy/client/selenium/chromedriver)
/home/chris/projects/personal/woddy/client/selenium/chromedriver: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/chris/projects/personal/woddy/client/selenium/chromedriver)
12:15:43.032 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException:  java.lang.reflect.InvocationTargetException

यह कहां कहता है कि ChromeDriver को glibc 2.14 की आवश्यकता है? सामान्य तौर पर, उच्च स्तरीय पैकेजों में सी लाइब्रेरी पर बहुत संकीर्ण बाधाएं नहीं होती हैं। क्या यह प्रलेखन या कोड में कहीं कहता है, या यह केवल कुछ पैकेज में निर्भरता के रूप में सूचीबद्ध है? जागरूक रहें, यदि आप पहले से ही नहीं हैं, तो वितरण पैकेज बिना किसी अच्छे कारण के अत्यधिक निर्भरता जोड़ सकते हैं।
फहीम मीठा

मैंने टर्मिनल आउटपुट को यह दिखाते हुए जोड़ा कि 2.14 या 2.15 की आवश्यकता कहाँ थी। हालाँकि अभी सब काम कर रहा है।
क्रिस

जवाबों:


23

आपको glib> = 2.14 प्राप्त करने के लिए अस्थिर पर स्विच करने की आवश्यकता नहीं है । वास्तव में, परीक्षण शाखा (अब स्थिर, या जेसी) में glib-2.17 है जिसे आप केवल परीक्षण रिपॉजिटरी और लॉन्चिंग को जोड़ सकते हैं:

sudo apt-get install libc6-dev=2.17-7

या,

sudo apt-get -t testing install libc6-dev

आप --dry-runहाथ से पहले क्या स्थापित किया जाएगा यह देखने के लिए स्विच को जोड़ सकते हैं । आप डेबियन पैकेज ट्रैकर सिस्टम में glibc पैकेज की स्थिति देख सकते हैं (जेबी के बाद से बस glibc करने के लिए डेबियन नाम बदला हुआ eglibc पैकेज )।

तुम भी बस 25 अप्रैल को जेसी रिलीज के लिए इंतजार कर सकते हैं ।


2
यही किया। Debian.org/doc/manuals/apt-howto/ पर debian निर्देशों के बाद आपके द्वारा सूचीबद्ध दूसरी कमांड को चलाने पर पूरी तरह से काम होता है। सहायता के लिए धन्यवाद। BTW मैं यह मेरे सिर में था कि अस्थिर परीक्षण के बजाय अगला कदम था।
क्रिस

1
इनमें से किसी ने भी मेरे लिए काम नहीं किया। पहली विधि का उत्पादन किया E: The value 'testing' is invalid for APT::Default-Release as such a release is not available in the sourcesऔर दूसराE: Version '2.17-7' for 'libc6-dev' was not found
सीन डेनिग्रिस

1
इस स्वीकृत समाधान में वास्तव में चेतावनी होनी चाहिए। मैंने इसका अनुसरण किया और एक " फ्रेंकेडबेनियन " के साथ समाप्त हुआ: wiki.debian.org/DontBreakDebian#Don.27t_make_a_FrankenDebian I ने अगले 2-3 घंटे निर्भरता नरक से बाहर निकलने और अपने सिस्टम को एक स्थिर व्हीज़ाई पर वापस पाने में बिताए।
stanri

1
Debian.org स्पष्ट रूप से उल्लेख करता है कि यह एक बुरा विचार है। हर कोई एक सासद नहीं है। ओपी ने एक सुरक्षित, अनुशंसित समाधान के लिए कहा, जो कि किसी भी प्रकार से टूटता नहीं है , और यह समाधान उन मानदंडों में से किसी को भी पूरा नहीं करता है।
stanri

2
चूंकि हम अब चीजों को उद्धृत कर रहे हैं। ओपी: "क्या कोई ऐसा तरीका है जिससे मैं सब कुछ तोड़ने के जोखिम के बिना 2.14 या 2.15 में ग्लिबैक को अपग्रेड कर सकता हूं ?" Debian.org: Pixit अन्य डेबियन रिलीज के लिए रिपॉजिटरी को जोड़ने के लिए एक अच्छा विचार नहीं है .... यह एक ऐसी प्रणाली का परिणाम है जो दो का टूटा हुआ मिश्रण है। "मैं कितना अधिक स्पष्ट हो सकता हूं? उम्मीद है कि लोग इस सलाह को लेने से पहले टिप्पणियों को पढ़ेंगे। मेरा हो गया।
stanri

22

मेरी स्थिति में, त्रुटि तब दिखाई देती है जब मैं डेबियन व्हीज़ी (जो डिफ़ॉल्ट रूप से 2.13 glibc स्थापित करता है) पर GLIBC_2.14 का उपयोग करके एक एप्लिकेशन (Ubuntu 12.04 LTS पर संकलित) को चलाने की कोशिश करता है।

मैं इसे चलाने के लिए एक ट्रिकी तरीके का उपयोग करता हूं, और सही परिणाम प्राप्त करता हूं:

  1. डाउनलोड libc6और libc6-devUbuntu 12.04 LTS से

  2. dpkgउन्हें एक निर्देशिका में स्थापित करने के लिए कमांड चलाएं ( /home/user/fakeroot/उदाहरण के लिए):

    $ dpkg -x libc6-dev_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    $ dpkg -x libc6_2.15-0ubuntu10.6_amd64.deb /home/user/fakeroot/
    
  3. निर्दिष्ट के साथ अपना आदेश चलाएँ LD_LIBRARY_PATH:

    $ LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND
    
  4. मेरा आवेदन केवल memcpy()GLIBC_2.14 से उपयोग करता है, और यह काम करता है।

    मुझे नहीं पता कि यह अन्य अनुप्रयोगों के लिए सफलतापूर्वक काम करेगा या नहीं।


धन्यवाद! इन निर्देशों ने मुझे डेबियन व्हीजी पर शाका पैकेगर को आसानी से चलाने की अनुमति दी। मैं अपने कमांड को एक बैश स्क्रिप्ट में लपेट रहा हूं जो exec env LD_LIBRARY_PATH=/home/user/fakeroot/lib/x86_64-linux-gnu/ YOUR_COMMAND "$@"ऐसा दिखता है ताकि हर बार LD_LIBRARY_PATH को निर्दिष्ट करने की आवश्यकता के बिना कमांड आसानी से उपलब्ध हो।
गाबे कोपले जुले

1

मुझे लगता है कि अस्थिर शाखा "सुरक्षित रूप से" आज़माने के लिए आपके पास कई विकल्प हैं:

  • वर्चुअलाइजेशन
  • चेरोटिंग जिससे आप अपनी स्पष्ट रूट निर्देशिका के रूप में एक वैकल्पिक निर्देशिका चुनते हैं। आप इस प्रकार एक फ़ाइल सिस्टम छवि बना सकते हैं और मैन्युअल रूप से आवश्यक पैकेज स्थापित कर सकते हैं। यह एक जटिल प्रक्रिया है और इसका उपयोग करते हुए डेबियन के मामले में बहुत आसान बना दिया गया है:
  • डेबोस्ट्रैप , जो इस लिंक पर डेबियन विकी लेख को उद्धृत करने के लिए है

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

    इसका मतलब यह नहीं है कि debootstrapक्रोटिंग तकनीक का उपयोग किया जाता है; मुझे इसके आंतरिक कार्यान्वयन की जानकारी नहीं है।


मैंने डीबूटस्ट्रैप ट्यूटोरियल का उपयोग किया और मुझे बस यही चाहिए था: wiki.debian.org/Debootstrap मैंने साइड उदाहरण का अनुसरण किया, लेकिन इसके बदले जेस्सी का उपयोग किया: debootstrap --arch amd64 jessie $MY_CHROOT http://http.debian.net/debian/ धन्यवाद!
ड्रू लेउस्सुर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.