আমি কীভাবে সফ্টওয়্যার প্যাচ প্রয়োগ করব?


15

আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে foobarযার জন্য কেউ আমার পছন্দ মতো একটি বৈশিষ্ট্য যুক্ত করতে একটি প্যাচ লিখেছিল। আমি প্যাচটি কীভাবে ব্যবহার করতে পারি?

উত্তর:


21

প্যাচগুলি সাধারণত .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আপনার নতুন, প্যাচযুক্ত সংস্করণটি উল্লেখ করতে চান , এবং পুরানোটি নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.