একই ডিবিয়ান প্যাকেজের বিভিন্ন সংস্করণ আলাদা করা


11

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

উদাহরণস্বরূপ, বলুন যে আপনি আপনার সিস্টেমে লিনাক্স-libc-dev প্যাকেজ ইনস্টল করেছেন এবং

sudo apt-get update && sudo apt-get upgrade

শো

The following packages will be upgraded:
  linux-libc-dev 

তবে আপনি এটি আপগ্রেড করার আগে পরীক্ষা করতে চান, একই প্যাকেজের আপনার স্থানীয় সংস্করণের সাথে তুলনা করে সঠিক পরিবর্তনগুলি করা হয়েছে।

আমরা কীভাবে এটি করতে পারি?

উত্তর:


5

আমি একসাথে হ্যাক করেছি এমন আরও একটি সমাধান এখানে: কী পরিবর্তন হয়েছে

এটি কেবলমাত্র যুক্তি হিসাবে আপনি আগ্রহী বাইনারি প্যাকেজের নাম নেয়। উদাহরণ হিসাবে সাম্প্রতিক একটি এসআরইউ ব্যবহার করতে:

./whatchanged python_papyon

এটি এটি করে:

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

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

সম্পাদনা : এটি পেস্টবিনে পচে যাওয়ার পরিবর্তে, আমি এর জন্য একটি লঞ্চপ্যাড প্রকল্প শুরু করেছি ; আপনি এর সাথে সর্বশেষ ট্রাঙ্ক সংশোধন পেতে পারেন bzr branch lp:whatchanged। নির্দ্বিধায় প্রতিবেদন বাগ, এটি শাখা, পার্ল, ইত্যাদি এটা পুনর্লিখন


কী সুন্দর! উত্তরের হিসাবে সরঞ্জামগুলি বিকাশ করা;) আপনি শৈলীর কোডিংয়ের মতো, তবে এটি যথাযথভাবে পারলে কোড করে
দিতেন

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

7

আফাইক এটি করার একমাত্র উপায় হ'ল উত্সটি পান এবং তারতম্যকে নিজের করে তোলা। আপনি অ্যাপটি-গেটের সাহায্যে প্যাকেজগুলি সংকলনের জন্য প্রকৃত উত্সটি ব্যবহার করতে পারেন। FX:

apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1
diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/

এটি স্ট্যান্ডার্ড প্যাচ ফর্ম্যাটে সমস্ত ফাইলের মধ্যে সমস্ত পার্থক্য মুদ্রণ করবে।


1
এটি বেশ ভাল। আমি উদাহরণটিতে কেবলমাত্র পরিবর্তন করব তা হ'ল কাঁচা ডিফের পরিবর্তে "ডেবিড গুইবার ২.৩০.০.০-০-০-০- / বিবুন্টু ১.ডিএসসি গুইবার ২.৩০.২-২ubuntu3.dsc" ব্যবহার করা।
রাউফ

1
ভাল এটি ব্যবহারিকভাবে একই জিনিস, কিন্তু আপনি সেখানে প্রতিটি প্যাকেজ / টার্বল মধ্যে পৃথক ব্যবহার করতে পারেন। হতে পারে যে কেউ একটি এসএনএন-ট্রাঙ্ক এবং বর্তমান পিকেজির মধ্যে পার্থক্যটি দেখতে চান।
লাসেপলসন

আমার দ্বিতীয় উত্তর (কী পরিবর্তন) মূলত এটিকে স্বয়ংক্রিয়ভাবে সক্রিয় করে।
এমজিউনস

2

এটি করার একটি (সম্ভবত সর্বোত্তম নয়) ইউডিডি উপায় এখানে রয়েছে:

আপনার মুক্তির জন্য শাখাটি টানুন-আপডেট করুন (লুসিডড ধরে নিচ্ছেন) যে (অনুমান অনুসরণ করে) সর্বশেষতম এসআরইউ থাকা উচিত:

bzr branch lp:ubuntu/lucid-updates/package_name

সর্বশেষ সংশোধন দ্বারা প্রবর্তিত পরিবর্তনগুলি পান, যা (অনুমান অনুসরণ করে) সর্বশেষতম এসআরইউয়ের সাথে মিলিত হওয়া উচিত:

bzr diff -c`bzr revno`

2
হুম। এটি আকর্ষণীয় গ্রহণযোগ্য, যদিও এটি সম্ভবত ল্যাজের তুলনায় কম বিস্তৃত যে অর্থে প্যাকেজের নামগুলি মেলে না বা এটি বিজেআর উত্স ট্রিতে উপস্থিত থাকতে পারে।
গডেল

যতক্ষণ আপনি উত্স প্যাকেজের নাম জানেন, এটি মিলবে। কোন বাইনারি প্যাকেজটি উত্স দ্বারা উত্পাদিত হয় তা আপনি খুঁজে পেতে পারেন apt-cache show package_name | grep Source:
এমজিউনস

@ মুরত ভাল, <package_name>তাই প্রাপ্ত কিছু প্যাকেজগুলির উপর কাজ করে না: bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}")=> বিজেআর: এআরআরআর: পরিবহনে অবৈধ ইউআরএল সরবরাহ করা হয়েছে: "বিজেআর + এসএসএস: //bজার.launchpad.net/+branch/ubuntu/lucid-updates/linux" : কোনও সমর্থিত স্কিম নেই
গডেল

কারন কার্নেলের জন্য কোনও উবুন্টু শাখা নেই বলেই আমি ভীত। কার্নেলটি গিটে রক্ষণাবেক্ষণ করা হয়েছে (কর্নেল.বুন্টু ডট কম) এর কারণে এটি একটি নির্দিষ্ট ব্যতিক্রম হতে পারে তবে আমি এই সময়ে বিজেআর প্যাকেজ শাখার সঠিক সুযোগ সম্পর্কে নিশ্চিত নই। আপনি # উবুন্টু-ডেভেল উপর জানতে চাইতে পারেন
মিগুনগুলি

@ মুরাল আমি জানি। এজন্য পদ্ধতিটি সোর্স ল্যাবগুলির চেয়ে কম ব্যাপক comprehensive কিন্তু আবার, এটি একটি আকর্ষণীয় গ্রহণ।
গুডেল

0

আপনি যদি প্যাকেজ সংরক্ষণাগারগুলিতে ফাইলের পার্থক্য দেখতে চান, তাদের md5sums ফাইলগুলি বের করুন, সেগুলি সাজান এবং আলাদা করুন এবং তারপরে নাটকীয়ভাবে তুলনা করার জন্য আপনি প্রকৃত ফাইলগুলির তালিকা সংকীর্ণ করতে পারেন।


-1

"সঠিক" পরিবর্তনগুলি নাও হতে পারে apt-listchangesতবে ইনস্টল সংস্করণ থেকে যে পরিবর্তনগুলি হয়েছে তার জন্য চেঞ্জলগ এন্ট্রি তালিকাবদ্ধ করে।

নতুন প্যাকেজগুলি ডাউনলোড শেষ করার পরে এটি একটি পদক্ষেপ যুক্ত করে কাজ করে তবে ইনস্টলেশন শুরু হওয়ার আগে যেখানে এটি আপনাকে প্রতিটি প্যাকেজ আপগ্রেড করার জন্য চেঞ্জলগ এন্ট্রি দেখায়। তারপরে আপনি চালিয়ে যেতে বা বাতিল করতে পারেন। আপনি এটি দিয়ে ইনস্টল করতে পারেন

sudo apt-get install apt-listchanges

তারপরে এটি সেট আপ করুন

sudo dpkg-reconfigure apt-listchanges

আবার, প্রশ্নটি চেঞ্জলগ পরিবর্তনগুলি দেখানোর বিষয়ে নয়।
গুডেল

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