Magento CE पैच लागू करना


15

मैगेंटो डाउनलोड पृष्ठ के अनुसार , पैच अनुभाग के तहत

कृपया अपने Magento रूट निर्देशिका में पैच अपलोड करें और उचित SSH कमांड चलाएं: फ़ाइल एक्सटेंशन के साथ पैच फ़ाइलों के लिए।

Magento shअपने पैच रनर को चलाने के लिए कमांड के सीधे आह्वान की सिफारिश करता है । फ़ाइल एक्सटेंशन इसका भी .shसमर्थन करता है।

हालाँकि, यदि आप प्रत्येक पैच रनर फ़ाइल के शीर्ष पर देखते हैं , तो शेबबैंग लाइन इंगित करता है bash

#!/bin/bash
# Patch apllying tool template
# v0.1.2
# (c) Copyright 2013. Magento Inc.
#

मुझ में प्रोग्रामर स्रोत फ़ाइल पर भरोसा करना चाहता है, लेकिन इस प्रक्रिया में जो चीज मैगेंटो वेबसाइट पर लिखी गई है, उसका पालन करना चाहता है, अगर चकत्ते को बैश और श के बीच के अंतर के खिलाफ परीक्षण किया गया है, तो यह आश्चर्यचकित करता है ।


पैच प्रक्रिया उतनी ही सरल होनी चाहिए जितनी कि। Diff फ़ाइलें ज़िप की गई हों। REQUIRED_UTILS='sed patch'मैं सभी .shलिपियों में देखता हूं । हाल के संस्करणों के लिए उन्नयन डॉक्स स्टीरियो निर्देशों की तरह पढ़ता है, और उन्नयन उस दर्दनाक नहीं होना चाहिए।
B00MER

2
मैं कुछ हद तक आँख बंद करके पैच, chmod + x लाता हूं और चलाता हूं। (वैसे मैं पहले सामग्री की जांच करता हूं) लेकिन मैं इसे स्थानीय रूप से चलाता हूं (मैक आधारित देव) ताकि मैं शाखा लगा सकूं और तैनाती से पहले एक परीक्षण शाखा के लिए प्रतिबद्ध हूं।
बैरी कार्लाइन

3
@ B00MER यह मुश्किल है। मैं व्यक्तिगत रूप से सहमत हूं, लेकिन तकनीक के जानकारों के लिए, लेकिन यूनिक्स प्रेमी लोगों को मैन्युअल रूप से पैच लगाने के लिए एक कदम बहुत दूर नहीं लगता है। मैं एक पैच इंस्टॉलर के पीछे की प्रेरणाओं को समझ सकता हूं।
एलन स्टॉर्म

बस फिर से यही सोच रहा था। शेबंग लिन्स उदाहरण के लिए #! / Bin / php हो सकता है और, शबंग लाइन को पढ़ने के लिए "पर्याप्त" निष्पादित करता है और स्क्रिप्ट को शेलबैंग प्रोग्राम में पास करता है। मैनुअल लागू होने के विषय में, पैच में वैसे भी गिट डिफ होते हैं, इसलिए आप खुद को "आसानी से" लागू कर सकते हैं। लेकिन, क्या मैगेंटो को केवल बदले हुए फाइलों के साथ एक पैच (जो कोर एडिट को छोड़कर ठीक है) के साथ ज़िप प्रदान करने के लिए कहने का तर्क है?
बैरी कार्लाइन

एक और चीज़। एक फ़ाइल एक्सटेंशन का उपयोग, .txt के अलावा, शायद कम प्रेमी के लिए इसे अधिक तार्किक बनाता है, ताकि स्थानीय उपयोगकर्ता फ़ाइल सिस्टम के बारे में फ़्लोटलेस फाइल न होने पाएं। मुझे लगता है कि बैश और श वैसे भी विनिमेय हैं।
बैरी कार्लाइन

जवाबों:


8

आपको वास्तव में बैश का उपयोग करना चाहिए। स्पष्ट रूप से इंगित किए गए पैच की लाइन 14 पर यह कोड है:

if (( $? != 0 )); then

$((XCU श में एक मान्य अंकगणितीय अभिव्यक्ति है, लेकिन ((ऐसा नहीं है।)

कई यूनिक्स-जैसे प्लेटफ़ॉर्म पर, हालांकि, /bin/shकेवल एक सिम्लिंक है /bin/bash। जब नाम के साथ आह्वान किया जाता है sh, तो bash अपने कुछ POSIXly-unstrict व्यवहार को अक्षम करता है, लेकिन यह सब नहीं। यह संभावना है कि ये पैच श के रूप में लगाए गए बैश के लिए ठीक काम करेंगे।


इस मामले में, स्क्रिप्ट श के तहत निष्पादित नहीं किया जा रहा है, श को बताई गई शांग लाइन प्रोग्राम के लिए डंप कर रहा है?
बैरी कार्लाइन

वास्तव में कर्नेल शेबंग की व्याख्या करने के लिए जिम्मेदार है। यदि आप chmod +x script && ./scriptकर्नेल को स्क्रिप्ट फाइल के साथ शेलबंग लाइन में कमांड को निष्पादित करने का प्रयास करेंगे, तो यह पहला या दूसरा तर्क है। परिस्थितियों के आधार पर, इस बात की कोई गारंटी नहीं है कि कोई भी शेल उस प्रक्रिया ट्री में शामिल है। यदि आप shकिसी स्क्रिप्ट को उसके तर्क के रूप में निष्पादित करते हैं, हालांकि, शेलबैंग लाइन को अनदेखा किया जाएगा।
कोजीरो

तो इसका मतलब है कि मैं गलत निर्देशों का पालन कर रहा हूं। वे कहते हैं कि के रूप में श स्क्रिप्ट है, लेकिन मैं सिर्फ ./script करना कैसे मनोरंजक
बैरी Carlyon

-2

यदि यह भविष्य में किसी की मदद करता है, तो मैंने पैच लगाने के लिए Phststorm का उपयोग किया है और इसका पैच टूल बढ़िया है। बिना किसी मुद्दे के पैच अप करने के लिए 30 सेकंड से भी कम समय लगा और आप उन अंतरों को भी देख और जा सकते हैं जो फाइलों में हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.