উবুন্টু উত্স প্যাকেজ নির্ভরতা গাছ


10

আমার কিছু প্যাকেজ আছে আসুন তাদের কল করুন A.deb, B.debএবং C.deb। প্রতিটি প্যাকেজ একটি সংশ্লিষ্ট উৎস প্যাকেজের হয়েছে A.dscএবং A.tar.gz, B.dscএবং B.tar.gz, C.dscএবং C.tar.gz। প্যাকেজগুলি একে অপরের C.debউপর নির্ভর করে : উপর নির্ভর করে B.debএবং B.debনির্ভর করেA.deb

আমি যদি সংশোধন করি তবে আমার A.debপুনর্নির্মাণ করা দরকার B.debবা এটি কাজ করবে না। একই জন্য B.debএবং C.deb। এই প্রক্রিয়াটি স্বয়ংক্রিয় করার কোনও উপায় আছে কি? সম্ভবত এমন কোনও সরঞ্জাম বা লিপি আছে যা আমার জন্য এটি করবে? যদি তা না হয় তবে কীভাবে আমি নিজে এটি স্বয়ংক্রিয় করতে পারি?

উপরন্তু, আমার প্যাকেজ নেই।


2
আপনি বলছেন যে "C.deb B.deb এর উপর নির্ভর করে এবং B.deb A.deb এর উপর নির্ভর করে", সুতরাং আমার ধারণা আপনি বাইনারি প্যাকেজগুলি উল্লেখ করছেন ? এছাড়াও আপনি এ এর ​​একটি বাহ্যিক গ্রন্থাগারের বিরুদ্ধে বি সংকলন উল্লেখ করছেন? যদি তাই হয় তবে কেবলমাত্র প্যাকেজটি পুনর্নির্মাণের প্রয়োজন হবে না , কারণ এ-এর বিকাশকারী (গুলি) এই ধরনের লাইব্রেরির ইন্টারফেসটি পরিবর্তন করেন নি (সুতরাং এটি এ এর ​​ম্যানটেনার (গুলি) এর উপর নির্ভর করে, বি এর ম্যানটেনার (গুলি) এর উপর নির্ভর করে না ; আপনি যদি এগুলির সকলের বিকাশকারী হন তবে কেবল তার ইন্টারফেস থেকে একজন অগ্নিস্টিকের বাস্তবায়নকে সর্বাধিক সম্ভব রাখুন, যাতে এটি সর্বাধিক নিশ্চিত হওয়া যায়)
কোস

1
আমি লিনাক্সে এই স্তরে স্টাফ করি না, তবে আমি মনে করি makeএটিই উদ্ভাবিত হয়েছিল। একটি মেকফাইলে এমন বিধি অন্তর্ভুক্ত থাকে যা কোনটি পরিবর্তিত হয়েছে তার ভিত্তিতে পুনরায় সংশোধন / পুনর্নির্মাণের প্রয়োজন তা নির্ধারণ করে।
জো

1
@ xiaodongjie - আপনি একটি প্রিয় প্রশ্ন সহ প্রিয় ব্যক্তি - সুতরাং আপনি ইতিমধ্যে বাশ এবং বাশ স্ক্রিপ্টিং জানেন? ---> এইভাবে আপনি সুইচ-কেস লুপের সাহায্যে একটি ছোট স্ক্রিপ্ট লিখতে পারেন এবং তারপরে প্যাকেজগুলি সম্পর্কে কী করবেন তা বিভিন্ন ক্ষেত্রে লিফটে তৈরি করতে পছন্দ করতে পারেন। আমার স্ক্রিপ্ট নেই। আমরা মস্তিস্কের মতো আপনি মস্তিষ্কে - হাসিও। - এই স্ক্রিপ্টটি অবশ্যই ডেমনের মতো সেট আপ করা যেতে পারে (স্বয়ংক্রিয়ভাবে কাজ করার জন্য)।
dschinn1001

1
একটি @ জো বলেছেন: ব্যবহার করুন make, এবং আপনি যেমন বলেছেন, @ xiaodongjie, তৈরি লক্ষ্যগুলি হবে তাদের প্যাকেজ-থেকে-প্যাকেজ নির্ভরতা ঘোষণা করার সাথে সাথে ফলাফলগুলি প্যাকেজগুলি হবে এবং প্রতিটি টার্গেটের সাথে সম্পর্কিত ক্রিয়াকলাপটি প্যাকেজটি তৈরি করার আদেশ হবে be । এগুলি সম্পর্কে সমস্ত কিছু পড়তে ইনস্টল করুন make-docএবং টাইপ করুন info make
র‌্যাল্ফ রনকুইস্ট

1
বিল্ড প্রক্রিয়াটির জন্য একটি উপকরণ তৈরি সম্পর্কে কী?
উইলহেম ইরেসমাস

উত্তর:


3

আপনি বিল্ড নির্ভরতা ঘোষিত একটি Makefile ব্যবহার করবেন, উদাহরণস্বরূপ:

default: A.deb B.deb C.deb

C.deb: B.deb C.dsc C.tar.gz
        <command(s) to build C.deb>

B.deb: A.deb B.dsc B.tar.gz
        <command(s) to build B.deb>

A.deb: A.dsc A.tar.gz
        <command(s) to build A.deb>

নোট করুন যে কমান্ড ইনডেন্টেশনটি একটি ট্যাব।

এটির সাহায্যে Makefileআপনি কমান্ডটি ব্যবহার করবেন

make

এবং এটি কোন প্যাকেজগুলি তৈরি করতে হবে এবং কোন ক্রমানুসারে কাজ করবে এবং তারপরে সেগুলি তৈরি করবে, সবগুলি ফাইলের টাইমস্ট্যাম্পের উপর নির্ভর করে। উদাহরণস্বরূপ, যদি বলার B.tar.gzপরে টাইমস্ট্যাম্প থাকে B.deb(অর্থাত প্যাকেজের Bনতুন উত্স রয়েছে), তবে এটি প্রথমে B.debপুনর্নির্মাণের কারণ বোধ করবে এবং এর ফলে এটি পরে মুদ্রাঙ্কিত C.debহবে, এটি আবারও C.debপুনর্নির্মাণের কারণ হতে পারে।


1

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


আপনি আরও বিস্তারিত ব্যাখ্যা করতে পারেন?
xiaodongjie

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