প্যাচ বা কোর হ্যাক


14

যখন আমি একটি সিস্টেম আপগ্রেড প্রকল্পে থাকি, তখন আমি যা করি তার মধ্যে একটি হ'ল একটি তাজা ম্যাজেন্টো ইনস্টলেশনের বিরুদ্ধে কোনও ক্লায়েন্টের সিস্টেমের পার্থক্য। আমি পূর্ববর্তী ফ্রিল্যান্সার, ঠিকাদার, পরামর্শদাতা বা এজেন্সি দ্বারা করা কোনও লজ্জাজনক-তবে-ব্যবসা-সমালোচনা-কাজটি নিশ্চিত করেছি তা নিশ্চিত করার জন্য আমি ম্যাক হ্যাকস বা অতিরিক্ত ফাইলগুলি স্ট্যান্ডার্ড ম্যাজেন্টোর অংশ নই।

প্যাচগুলি হ'ল একটি জিনিস যা আমাকে সর্বদা স্ট্যাম্প করে। বেশিরভাগ বছর ধরে ম্যাজেন্টো "মধ্যবর্তী সংস্করণ" প্যাচগুলি জারি করেছে - সাধারণত সুরক্ষা ফিক্স, বা শিপিং / পেমেন্ট বিক্রেতার API এ পরিবর্তনের উদ্দেশ্যে address

সমস্যাটি হ'ল ভিন্নতার দৃষ্টিতে, প্যাচগুলি মূল হ্যাকগুলির থেকে পৃথক পৃথক - বিশেষত যখন আপনি জানেন না যে সিস্টেমে কোন প্যাচগুলি (যদি থাকে) প্রয়োগ করা হয়েছে।

যা আমার প্রশ্নের দিকে নিয়ে যায়।

কোর হ্যাক এবং প্যাচের মধ্যে কীভাবে পার্থক্য রয়েছে?

উত্তর:


16

সহায়তার দ্বারা সরবরাহ করা ম্যাজেন্টো প্যাচগুলি এতে একটি লগ যুক্ত করে app/etc/applied.patches.list। আমি জানি না কখন বা কতক্ষণ প্যাচ "স্ক্রিপ্টগুলি" এটি করছিল। সিই প্যাচগুলিও এটি করে বলে মনে হচ্ছে।


ঝরঝরে! আমি যে জানি না। আপনি কি জানেন যে এটি আসল .প্যাচের অংশ কিনা - বা এটি ম্যানুয়ালি সমর্থন করে? নাকি (সম্ভবত?) দুজনেই? কিছু পুরানো। প্যাচ ফাইলগুলির দিকে তাকানো এবং কোনও অ্যাপ্লিকেশন.প্যাচস.লিস্ট ফাইলে কোনও পরিবর্তন দেখেনি।
অ্যালান ঝড়

সেল্ফ সেই সর্বশেষটিকে সাহায্য করেছিল - সিই প্যাচগুলি এই স্বয়ংক্রিয়ভাবে করেন (দেখুন: ম্যাজেন্টোকমার্স.com / index.php / getmagento / ce_patches/… )
অ্যালান ঝড়

2
এটি উপস্থিত হয় (এবং @ জোশুয়া-এস-ওয়ারেন এটি নিশ্চিত করে মনে হচ্ছে) যে সমস্ত প্যাচ ফাইল সমানভাবে তৈরি করা হয় না। আমরা যদি "ভাগ্যবান" হই তবে প্যাচটি এই কার্যকারিতাটি তৈরি করে দেবে Here এখানে এটির একটির নমুনা রয়েছে: ম্যাজেন্টোকমার্স.com / index.php / getmagento / ce_patches/… এটি কেবলমাত্র ফাইলগুলি পরিবর্তন করে যা পরিবর্তিত নয় কী পরিবর্তন হয়েছে তা জানতে আপনাকে প্যাচটি ট্র্যাক করার চেষ্টা করতে হবে, তারপরেও এটি কোনও "গ্যারান্টি" নেই যা এটি ব্যবহৃত একই ছিল।
বিপলোগিক

2
দুর্ভাগ্যক্রমে বেশিরভাগ EE প্যাচগুলি যা আমরা পেয়েছি, তাদের এই কার্যকারিতাটি নেই
অ্যালান ম্যাকগ্রিগোর

4
সমস্ত প্যাচ .UP ফাইল হিসাবে বিতরণ করা হয়েছে, এসইপিইই টিকিটের জন্য এই কার্যকারিতাটি থাকতে হবে (পুরানো না থাকলে)। অবাক করা @ অ্যালানম্যাক গ্রেগর আপনি এটি দেখতে পাচ্ছেন না। আপনার কাছে এমন কোনও প্যাচের উদাহরণ রয়েছে যা প্রয়োগ করা হয়েছে (SUPEE নম্বর) তবে তালিকাভুক্ত নয়?
পাইওটার কামিনস্কি

7

এটি এমন একটি জিনিস যা আমি প্রায়শই মোকাবিলা করি (এবং আমি এখনই কাজ করছি), এবং দুর্ভাগ্যক্রমে, এখন পর্যন্ত এটি সম্পূর্ণ ম্যানুয়াল প্রক্রিয়া - আমাদের একটি স্বয়ংক্রিয় প্রক্রিয়া রয়েছে যা আমাদের প্রাথমিক অটোমেটেড অডিটের অংশ হিসাবে পরিবর্তিত হতে পারে এমন প্রতিটি ফাইলকে ফ্ল্যাগ করে gs একটি নতুন সমর্থন ক্লায়েন্ট। আমাদের তখন সেই ফাইলগুলির মধ্যে কেউ পৃথক রয়েছে এবং কোনও স্পষ্ট মিথ্যা ধনাত্মকতা (যেমন, হোয়াইটস্পেস পরিবর্তন) বাতিল করে দিন।

তারপরে, মজাদার অংশ - আমাদের দলের একজন সিনিয়র সদস্য যিনি বেশ কিছুদিন ধরে ম্যাজেন্টোর সাথে কাজ করছেন, ফলাফলগুলি একবার দেখে নিতে হবে কোনও পরিবর্তিত ফাইলের কোনও প্যাচের ফল হতে পারে কিনা তা নির্ধারণ করতে at আমরা যে প্যাচগুলি সম্পর্কে অবগত / আমরা আমাদের হাত পেতে পারি তার সমস্তগুলির বিরুদ্ধে যাচাই করার জন্য আমাদের সিস্টেম আপডেট করার দিকে নজর রেখেছি এবং এটি সিইয়ের পক্ষে কাজ করতে পারে তবে EE এর পক্ষে আরও চ্যালেঞ্জিং, যেহেতু EE সমর্থন কখনও কখনও সরাসরি প্যাচগুলি জারি করে অন্য কোনও উপায়ে কখনই প্রকাশিত হয় না বা ধারাবাহিক ভাবে ক্যাটালোজ হয় না এমন ক্লায়েন্টদের কাছে।

সুতরাং, আমরা যখন পর্যালোচনার এই স্তরটি করি তখন আমরা এই প্যাচগুলি প্রয়োগ করে অতীতের অভিজ্ঞতার উপর নির্ভর করি + সাধারণ জ্ঞান (যেমন, এটি কি কোনও এপিআইয়ের শেষ পয়েন্টে পরিবর্তন? যদি তাই হয়, তবে এটি কি পরিবর্তিত শেষ পয়েন্টটি আপডেট সংস্করণে উপস্থিত? যদি তাই হয়, এটি একটি প্যাচ ছিল এবং তা উপেক্ষা করা যেতে পারে)।

সিই ডাউনলোড পৃষ্ঠায় উপলভ্য সমস্ত প্যাচগুলি সিই এর প্রতিটি প্রযোজ্য সংস্করণে প্রয়োগ করা এবং সেগুলির বিরুদ্ধে পরীক্ষা করা তাত্ত্বিকভাবে সহজ হবে (এফওয়াইআই, আমরা প্রথম পাসের জন্য ডিফ ব্যবহার করি না - আমরা হ্যাশিং ব্যবহার করি, অংশ কারণ আমরা এই প্রযুক্তিটি এমন একটি সরঞ্জামে তৈরি করেছি যা কোনও সাইটে প্রথমে ডাউনলোডের প্রয়োজন ছাড়াই দূরবর্তী অবস্থান থেকে এটি পরীক্ষা করতে পারে)। এটি বেশিরভাগ প্যাচগুলিকে বাতিল করে দেবে, তবে এটি এখনও কোনও সিই বা ইই প্যাচগুলির পক্ষে সহায়তা করে না যেগুলি সিইয়ের জন্য পাবলিক ডাউনলোড এরিয়ায় পোস্ট করা হয়নি বা ইইয়ের ক্লায়েন্ট / সুরক্ষিত ডাউনলোডের ক্ষেত্রে নেই। এর জন্য ম্যাজেন্টোকে একটি সুসংগত নীতি তৈরি করতে হবে যে সমস্ত প্যাচগুলি সমস্ত গ্রাহকদের জন্য উপলব্ধ করা হবে এবং সেগুলিতে যেখানে আমরা তাদের কাছে যেতে পারি সেখানে পোস্ট করা উচিত।

সুতরাং, আমি মনে করি না যে দুর্ভাগ্যক্রমে, ম্যাজেন্টো দিকগুলিতে পরিবর্তনগুলি ঘটে যাওয়া অবধি 100% এটি স্বয়ংক্রিয় করার কোনও উপায় নেই।


2
ম্যাজেন্টো সংস্করণগুলির গিথুব সংগ্রহস্থলের সাহায্যে গিটকে কাজটি করা দেওয়া তুচ্ছ। কোনও কাস্টম হ্যাশিংয়ের দরকার নেই। কেবল রিমোট যুক্ত করুন, রিমোট আনুন এবং git diff depot/master origin/master। চ্যালেঞ্জটি .gitignore। অন্য বিকল্পটি হ'ল সংস্করণটিকে আলাদা ডিয়ার হিসাবে ক্লোন করা, তারপরে app/code/coreএটির উপরের সাইটের ডিরেক্টরিটি অনুলিপি করুন । git diff -wতাহলে আপনাকে বলবে।
মেলভিন

আমরা এটি এইভাবে করেছি কারণ আমরা প্রায়শই এটি সার্ভারে দূরবর্তীভাবে পরীক্ষা করি যা আমাদের সফ্টওয়্যার ইনস্টল করতে দেয় না এবং সম্ভবত গিট ইনস্টল নাও করতে পারে। এমন পরিবেশে যেখানে গিট উপস্থিত থাকলেও, আপনি সঠিক, আপনি গিট ডিফ ব্যবহার করতে পারেন।
জোশুয়া এস ওয়ারেন

হ্যাঁ হ্যাঁ, আমি আপনার বক্তব্য দেখতে পাচ্ছি আসলে আমি ম্যাগারুনে এরকম কিছু কীভাবে পাব সে সম্পর্কে ভাবতে চাই।
মেলভিন

4

আমি যখন অনেকগুলি আপগ্রেড করছিলাম এবং প্রক্রিয়াটি নিয়ন্ত্রিত করার চেষ্টা করছিলাম তখন আমি আপনার কাছে পৌঁছানোর এক উপায়টি হ'ল সরাসরি আপনার মূল কোড ভাণ্ডারে সরাসরি প্যাচগুলি প্রতিশ্রুতিবদ্ধ করা যা আপনি বিপরীতে ব্যবহার করছেন।

এর আসলে দুটি সুবিধা রয়েছে:

  1. আপনার মতভেদগুলিতে আর কোনও মিথ্যা ধনাত্মকতা দেখা যাচ্ছে না।

  2. আসুন বলে কোন সাইট আছে না একটি নির্দিষ্ট প্যাচ আছে। আপনি হয়ত বলতে পারেন যে এটি একটি সমস্যা কারণ এটি আপনার ডিফের মধ্যে কোড অনুপস্থিত হিসাবে প্রদর্শিত হবে যদিও প্রযুক্তিগতভাবে তারা একটি তাজা পাঠানো ডাউনলোডের তুলনায় কিছু মিস করছে না missing তবে প্রকৃতপক্ষে, তারা কোনও প্যাচ মিস করছে এটি আসলে একটি সমস্যা যা সমাধান করা উচিত so সুতরাং এটি সঠিক যে এটি আপগ্রেডের পাশাপাশি ঠিক করার জন্য আপনার ভিন্নতার মধ্যে প্রদর্শিত হবে।


4

আমি মনে করি না যে আপনার প্রজেক্টের রেপোতে ম্যাজেন্টো থাকা শুরুতে ভাল ধারণা, যদি আপনি ২-৩ টিরও বেশি ক্লায়েন্ট পরিচালনা করেন। যেহেতু কোর হ্যাকগুলির সাথে প্রয়োগ করা সিস্টেম প্যাচগুলি গণ্ডগোল করা সর্বদা সহজ।

আমার মতে সর্বোত্তম বিকল্পটি হ'ল সংস্করণ ট্যাগ সহ একটি সুরকার মাগেন্তো রিপোজিটরি আয়না থাকা, এটি সম্ভবত নির্দিষ্ট অফিসিয়াল প্যাচগুলি প্রয়োগ করে একটি নির্দিষ্ট ম্যাজেন্টো সংস্করণে নির্দেশ করে।

এছাড়াও হাই লোড ওয়েবসাইট এবং কিছু অন্যদের জন্য আপনার নিজের প্যাচগুলি ফাইলগুলিতে বজায় রাখা আরও সহজ করে তুলবে, আপনার ম্যাজেন্টোর কিস্তির সাথে মেলে এমন সংস্করণ সংখ্যার সাথে সুরকারের মাধ্যমে তাদের কিস্তি প্রবর্তন করে।

সুতরাং এক্ষেত্রে আপনার সমস্ত গ্রাহক প্রকল্পের কোনও প্যাচড ম্যাজেন্টো কোডে আপগ্রেড করার ফলে কেবলমাত্র আপনার সুরকার ফাইলের সংস্করণ দ্বিধা হবে। প্রকল্পের কোডটি কোর থেকে পৃথক রাখা আপনার বিকাশকারীদের কোরটি হ্যাক করতে বাধ্য করবে।

প্যাচ এবং হ্যাকের সংজ্ঞা হিসাবে, আমি এটিকে এটি পছন্দ করতে পছন্দ করব:

  1. অফিসিয়াল প্যাচ ফাইল দ্বারা মূল কোর ফাইলে একটি পরিবর্তন - এটি একটি প্যাচ
  2. আপনার দল দ্বারা মূল মূল ফাইলে একটি পরিবর্তন - এটি হ্যাক।
  3. বাগ ফিক্সের উদ্দেশ্যে স্থানীয় অনুলিপি করা মূল ফাইলের পরিবর্তন - এটি একটি প্যাচ
  4. নতুন কার্যকারিতা সরবরাহের জন্য স্থানীয় অনুলিপি করা কোর ফাইলগুলিতে পরিবর্তন - এটি একটি হ্যাক

আলাদা আলাদা রেপোতে কোরকে স্থানান্তরিত করে আপনি নিশ্চিত হবেন যে আইটেম 1 অনুসারে আপনার কেবল প্যাচ সংস্করণ রয়েছে And এবং আপনি সহজেই স্থানীয় কোড পুলে সুরকারের মাধ্যমে নিজের প্যাচগুলি ইনস্টল করতে পারেন, তাই আপনার কাছে বিন্দু 3 অনুযায়ী সবকিছু রয়েছে 2 এবং 4 আপনি সেই গতির মধ্যে কোনও কোড কমিট নিষিদ্ধ করতে প্রকল্প রেপোতে গিট কমিট হুক তৈরি করতে পারেন।


3

আমি সেই /app/etc/ফোল্ডারে প্রয়োগ করা প্যাচগুলি ফাইলটির দিকে চেয়েছি এবং পিছনের দিকে কাজ করছি। তবে আমি আপগ্রেড করার মাধ্যমে শিখেছি আমি কেবল কোনও সংস্করণে ফাইলটি মুছতে পারি যার মধ্যে প্যাচযুক্ত ফাইল রয়েছে এবং পরের বার এটি প্যাচ করা হবে এটি পরিষ্কার।


2

ম্যাজেন্টো থেকে যে কোনও কিছুই আমি একটি প্যাচ কল করব। বাকি সব হ্যাক is


1
সম্মত, তবে এটি কীভাবে তা জানাতে হবে যা সত্যের পরে।
অ্যালান ঝড়

বেস ইন্সটলেশনে আপনার তুলনা আমি সম্ভবত তুলনা করব এবং তারপরে প্রতিটি প্যাচ পৃথকভাবে প্রয়োগ করার সাথে একটি ইনস্টলের বিরুদ্ধে অতিরিক্ত তুলনা করব (বা সমস্ত প্যাচ প্রয়োগের শেষ ফলাফল)। এটি সম্ভবত আরও কিছু পরিশ্রমের ক্রম হতে চলেছে, তবে এটি আমি ভাবতে পারি way
জোশ পেনিংটন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.