Erlang 21 - 5. Patching OTP Applications

5 पैचिंग ओटीपी एप्लीकेशन




erlang

5 पैचिंग ओटीपी एप्लीकेशन

५.१ परिचय

यह दस्तावेज़ पहले से स्थापित नए संस्करणों के एक या अधिक एर्लांग / ओटीपी अनुप्रयोगों के साथ एक मौजूदा ओटीपी स्थापना को पैच करने की प्रक्रिया का वर्णन करता है। इस विशेष उद्देश्य के लिए उपकरण otp_patch_apply उपलब्ध है। यह Erlang / OTP स्रोत ट्री की शीर्ष निर्देशिका में रहता है।

otp_patch_apply टूल application resource file में runtime_dependencies टैग का उपयोग करता है। यह जानकारी यह निर्धारित करने के लिए उपयोग की जाती है कि पैच दिए गए Erlang / OTP स्थापना निर्देशिका में स्थापित किया जा सकता है या नहीं।

Erlang / OTP रिलीज़ 17 में शुरू किए गए version handling बारे में और पढ़ें, जिसमें यह भी बताया गया है कि यह कैसे निर्धारित किया जाए कि क्या किसी इंस्टॉलेशन में एक या अधिक पैच अनुप्रयोग शामिल हैं।

यदि आप कई OTP अनुप्रयोगों के पैच लागू करना चाहते हैं जो विभिन्न OTP संस्करणों में रहते हैं, तो आपको इन पैच को कई चरणों में लागू करना होगा। एक ही OTP संस्करण से एक बार में कई OTP अनुप्रयोग लागू करना संभव है।

5.2 पूर्वापेक्षाएँ

यह माना जाता है कि पाठक building and installing Erlang/OTP से परिचित है। किसी एप्लिकेशन को पैच करने में सक्षम होने के लिए, निम्नलिखित मौजूद होना चाहिए:

  • एक Erlang / OTP स्थापना।

  • एक Erlang / OTP स्रोत ट्री जिसमें अद्यतन किए गए अनुप्रयोग हैं जिन्हें आप मौजूदा Erlang / OTP स्थापना में पैच करना चाहते हैं।

5.3 का उपयोग करते हुए otp_patch_apply

चेतावनी

पैचिंग एप्लीकेशन एक तरफ़ा प्रक्रिया है। आगे बढ़ने से पहले अपने ओटीपी इंस्टॉलेशन डायरेक्टरी का बैकअप बनाएं।

सबसे पहले, अपडेट किए गए एप्लिकेशन युक्त $ERL_TOP पर OTP स्रोत ट्री $ERL_TOP

ध्यान दें

पैच लगाने से पहले आपको स्रोत निर्देशिका में OTP का पूर्ण निर्माण करने की आवश्यकता होती है।

यदि आप git में निर्माण कर रहे हैं तो आपको पहले configure स्क्रिप्ट उत्पन्न करने की आवश्यकता है:

$ ./otp_build autoconf

कॉन्फ़िगर करें और सभी अनुप्रयोगों को OTP में बनाएँ:

$ configure
$ make

या

$ ./otp_build configure
$ ./otp_build boot -a

यदि आपने OTP स्थापना में प्रलेखन स्थापित किया है, तो दस्तावेज का निर्माण भी करें:

$ make docs

सफल निर्माण के बाद यह पैच करने का समय है। स्रोत ट्री निर्देशिका, इंस्टॉलेशन की निर्देशिका और पैच करने के लिए एप्लिकेशन को otp_patch_apply तर्क के रूप में दिया जाता है। प्रत्येक एप्लिकेशन की निर्भरताएं इंस्टॉलेशन में दिए गए एप्लिकेशन और तर्कों के रूप में दिए गए अन्य एप्लिकेशन के विरुद्ध मान्य हैं। यदि एक निर्भरता त्रुटि का पता चला है, तो स्क्रिप्ट निरस्त कर दी जाएगी।

otp_patch_apply सिंटैक्स:

$ otp_patch_apply -s <Dir> -i <Dir> [-l <Dir>] [-c] [-f] [-h] \
      [-n] [-v] <App1> [... <AppN>]

-s <Dir>  -- OTP source directory that contains build results.
-i <Dir>  -- OTP installation directory to patch.
-l <Dir>  -- Alternative OTP source library directory path(s)
             containing build results of OTP applications.
             Multiple paths should be colon separated.
-c        -- Cleanup (remove) old versions of applications
             patched in the installation.
-f        -- Force patch of application(s) even though
             dependencies are not fulfilled (should only be
             considered in a test environment).
-h        -- Print help then exit.
-n        -- Do not install documentation.
-v        -- Print version then exit.
<AppX>    -- Application to patch.

Environment Variable:
  ERL_LIBS  -- Alternative OTP source library directory path(s)
               containing build results of OTP applications.
               Multiple paths should be colon separated.
ध्यान दें

otp_patch_apply चलाते समय पूर्ण बिल्ड वातावरण की आवश्यकता होती है।

ध्यान दें

-s और -l द्वारा पहचाने गए सभी स्रोत निर्देशिकाओं में ओटीपी अनुप्रयोगों के निर्माण परिणाम शामिल होने चाहिए।

उदाहरण के लिए, यदि उपयोगकर्ता mnesia और ssl पैच किए गए संस्करणों को /home/me/git/otp में स्थापित करना चाहता है, जो /opt/erlang/my_otp प्रकार में स्थित ओटीपी इंस्टॉलेशन में है।

$ otp_patch_apply -s /home/me/git/otp -i /opt/erlang/my_otp \
  mnesia ssl
ध्यान दें

यदि अनुप्रयोगों की सूची में मुख्य अनुप्रयोग हैं, जैसे कि erts , kernel , stdlib या sasl , पैच किए गए Erlang / OTP स्थापना में स्क्रिप्ट को फिर से स्थापित करना चाहिए।

पैच किए गए एप्लिकेशन इंस्टॉल किए गए एप्लिकेशन की सूची में संलग्न हैं। <InstallDir>/releases/OTP-REL/installed_application_versions पर एक नज़र डालें।

५.४ स्वच्छता चैक

अर्लंग खोल का उपयोग करके आवेदन निर्भरता की जांच की जा सकती है। अनुप्रयोग निर्भरताएँ स्थापित अनुप्रयोगों के बीच otp_patch_apply द्वारा सत्यापित की otp_patch_apply , लेकिन ये जरूरी नहीं कि वास्तव में भरी हुई हों। system_information:sanity_check() कॉल करके system_information:sanity_check() जो वास्तव में लोड किए गए अनुप्रयोगों में निर्भरता को मान्य कर सकता है।

1> system_information:sanity_check().
    ok

कृपया अधिक जानकारी के लिए sanity_check() के संदर्भ पर एक नज़र डालें।