আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে foobar
যার জন্য কেউ আমার পছন্দ মতো একটি বৈশিষ্ট্য যুক্ত করতে একটি প্যাচ লিখেছিল। আমি প্যাচটি কীভাবে ব্যবহার করতে পারি?
আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে foobar
যার জন্য কেউ আমার পছন্দ মতো একটি বৈশিষ্ট্য যুক্ত করতে একটি প্যাচ লিখেছিল। আমি প্যাচটি কীভাবে ব্যবহার করতে পারি?
উত্তর:
প্যাচগুলি সাধারণত .diff
ফাইলগুলিতে থাকে কারণ প্যাচগুলি diff
কমান্ড ব্যবহার করে তৈরি করা হয় ।
একটি প্যাচ হ'ল উত্স কোডে সন্নিবেশ এবং মুছার একটি সিরিজ। এই কারণে, প্যাচটি ব্যবহার করার জন্য, আপনাকে প্যাচ প্রয়োগের পরে উত্স থেকে অ্যাপ্লিকেশনটি (যেমন, "ফুবার") তৈরি করতে হবে। সুতরাং, পদক্ষেপে:
১.ফুবারের জন্য উত্স প্যাকেজ পান ।
বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশন (এনবি প্যাচিং লিনাক্সের সাথে স্বতন্ত্র নয়) আপনি এই উদ্দেশ্যে ব্যবহার করতে পারেন "উত্স প্যাকেজ", তবে যেহেতু এগুলি ভিন্নধর্মী, আমি কেবল এখানে মূল উত্সের ফর্ম্যাটটি উল্লেখ করব। আসল উত্সটি ডিসট্রোর অংশ নয় এবং এটি খুঁজে পাওয়া শক্ত হতে পারে। শুরু করার জন্য একটি ভাল জায়গা উইকিপিডিয়া, যার অনেকগুলি জনপ্রিয় অ্যাপ্লিকেশনগুলির জন্য নিবন্ধ রয়েছে এবং নিবন্ধটিতে উত্স ডাউনলোডের সাথে হোমপৃষ্ঠাতে একটি লিঙ্ক থাকা উচিত। আপনি নিজে গুগল করতে পারেন, স্পষ্টতই। উত্স প্যাকেজটিকে এমন কিছু বলা হবে foobar.0.1.tar.bz2
। এটি আনপ্যাক করুন - আপনার এখন একটি ডিরেক্টরি বলা আছে foobar.0.1
।
2. প্যাচ যোগ করুন।
কখনও কখনও প্যাচগুলি একক ফাইল এবং কখনও কখনও সেগুলি বেশ কয়েকটি ফাইলের সেট হয়। এগুলি অনুলিপি করুন foobar.0.1
এবং cd foobar.0.1
। এর পরে, আপনার patch
কমান্ডটি চালানো দরকার । এটি স্ট্যান্ডার্ড ইনপুট থেকে পড়ে, সুতরাং আপনি .diff
ফাইলটি পাইপ করতে চান The কৌশলপূর্ণ অংশটি -p
বিকল্পটির জন্য কী ব্যবহার করবেন তা নির্ধারণ করছে (যদি প্যাচের সাথে কোনও নির্দেশনা না থাকে)। এটি করার জন্য আপনাকে প্যাচ ফাইলটির শুরুতে নজর রাখা উচিত। উদাহরণ স্বরূপ:
--- old/comm.c 2003-09-08 14:25:08.000000000 +0000
+++ new/comm.c 2006-07-07 02:39:24.000000000 +0000
এই ক্ষেত্রে, comm.c
উত্স ফাইলটির নাম যা পরিবর্তন করা হবে। তবে লক্ষ্য করুন যে এতে একটি ডিরেক্টরি যুক্ত রয়েছে। যেহেতু এগুলি একই ডিরেক্টরি নয় ("পুরাতন" বনাম "নতুন"), তাই পথের এই অংশটি আবর্জনা (আমাদের উদ্দেশ্যে) এটি একটি বড় সূত্র ue -p
স্যুইচ (দেখুন man patch
) এর উদ্দেশ্য হ'ল এই উপসর্গটি মুছে ফেলা। /
এর মধ্যে সমস্ত কিছু সহ এটি মুছে ফেলার ( ) স্ল্যাশগুলির সংখ্যা যা একটি সংখ্যা নেয় ; এই ক্ষেত্রে আমরা -p1
কেবল সহজ সরল পথে হ্রাস করতে ব্যবহার করব comm.c
।
অনুমানগুলি comm.c
আসলে একই ডিরেক্টরিতে রয়েছে যা আপনার ব্যাখ্যাটি সঠিক কিনা তা সম্পর্কে আরও একটি সূত্র হবে। যদি উভয় লাইনই ছিল src/comm.c
এবং comm.c
প্রকৃতপক্ষে src
আপনার বিল্ড গাছের উপ-ডিরেক্টরিতে রয়েছে, তবে আপনাকে ব্যবহার করতে হবে -p0
- সাবধানতা অবলম্বন করুন যে মোটেও ব্যবহার না করা -p
সমস্ত স্ল্যাশগুলি সরিয়ে ফেলবে। যদি পথটি নিখুঁত হয় (অর্থাৎ শুরু হয় /
) তবে এটি সম্ভবত আপনি চান। এবার প্যাচটি প্রয়োগ করুন:
patch -p1 < patch.diff
উত্সটি এখন পরিবর্তন করা হয়েছে। যদি আরও .diff
ফাইল থাকে তবে সেগুলি একইভাবে প্রয়োগ করুন।
3. বিল্ড এবং ইনস্টল।
এটি স্বাভাবিক প্রক্রিয়ায় আপনার উৎস থেকে বিল্ড কিছু দিয়ে যেতে হবে - প্রথম ./configure
, তারপর make
, make check
, make install
। শেষটি করার আগে, আপনার যদি ইতিমধ্যে একটি বিদ্যমান ইনস্টলেশন রয়েছে foobar
, আপনি সিদ্ধান্তটি সরিয়ে ফেলুন বা ওভাররাইট করতে চান বা আপনি নামকরণ বিরোধের সাথে কীভাবে ডিল করতে চলেছেন তা স্থির করুন। আপনি সম্ভবত foobar
আপনার নতুন, প্যাচযুক্ত সংস্করণটি উল্লেখ করতে চান , এবং পুরানোটি নয়।