"নির্ভর" এবং "প্রাক-নির্ভর" বলতে কী বোঝায়, এবং যখন আমি উবুন্টুতে কিছু ইনস্টল করছি তখন সেই 2 ধরণের প্যাকেজের প্রয়োজনীয়তার মধ্যে পার্থক্য কী?
"নির্ভর" এবং "প্রাক-নির্ভর" বলতে কী বোঝায়, এবং যখন আমি উবুন্টুতে কিছু ইনস্টল করছি তখন সেই 2 ধরণের প্যাকেজের প্রয়োজনীয়তার মধ্যে পার্থক্য কী?
উত্তর:
যেমনটি এই লিঙ্কটি থেকে নেওয়া হয়েছে: https://www.debian.org/doc/debian-policy/#docament-ch- সম্পর্ক
5 ধরণের নির্ভরতা রয়েছে:
পাঁচটি নির্ভরশীল ক্ষেত্রের অর্থ নীচে রয়েছে:
এটি পরম নির্ভরতা ঘোষণা করে। একটি নির্ভরযোগ্য ক্ষেত্রের তালিকাভুক্ত সমস্ত প্যাকেজ সঠিকভাবে কনফিগার করা না হলে প্যাকেজ কনফিগার করা হবে না। নির্ভরযোগ্য ক্ষেত্রটি যদি নির্ভরযোগ্য প্যাকেজের জন্য প্রয়োজনীয় পরিমাণে কার্যকারিতা সরবরাহ করতে হয় তবে নির্ভরযোগ্য অন প্যাকেজটি ব্যবহার করা উচিত। ডিপেন্ডস ক্ষেত্রটিও ব্যবহার করা উচিত যদি পোস্টিনস্ট বা প্রিমার স্ক্রিপ্টগুলির চালনার জন্য নির্ভরশীল অন প্যাকেজটি আনপ্যাক করা বা কনফিগার করা প্রয়োজন। পোস্ট ইনস্ট কনফিগার করার ক্ষেত্রে, নির্ভরশীল প্যাকেজগুলি প্রথমে প্যাক এবং কনফিগার করা হবে।
প্রিআরম বা অন্যান্য পোস্ট-পোস্ট কর্মের ক্ষেত্রে, প্যাকেজ নির্ভরতা সাধারণত কমপক্ষে প্যাক করা হয়ে থাকে, তবে নির্ভরতার পূর্ববর্তী আপগ্রেড ব্যর্থ হলে সেগুলি কেবল "অর্ধ-ইনস্টলড" হতে পারে। অবশেষে, নির্ভরযোগ্য ক্ষেত্রটি প্যাকেজ অপসারণের পরে পোস্টআর্ম স্ক্রিপ্টের দ্বারা পুরোপুরি পরিষ্কার করার জন্য যদি নির্ভরশীল অন প্যাকেজটির প্রয়োজন হয় used পোস্টআরএম চালানোর সময় প্যাকেজ নির্ভরতা উপলব্ধ থাকবে এমন কোনও গ্যারান্টি নেই, তবে প্যাকেজ নির্ভরতা (বিশেষত পোস্টারম অপসারণের ক্ষেত্রে) ঘোষণা করে তবে নির্ভরশীল প্যাকেজ উপলব্ধ হওয়ার সম্ভাবনা বেশি থাকে। পোস্টার্ম স্ক্রিপ্ট অবশ্যই করণীয় সেই ক্রিয়াগুলি এড়িয়ে যেতে পারে যে নির্ভরতা উপলব্ধ না হলে নির্ভরতা প্রয়োজন।
এই ক্ষেত্রটি ডিপেন্ডসের মতো, ব্যতীত এটি পূর্ব-নির্ভরতা ঘোষণা করে এমন প্যাকেজ ইনস্টলেশন শুরু করার আগেই নামকরণ করা প্যাকেজগুলি সম্পূর্ণ করতে dpkg কে জোর করে , এটি এমন কাজ করে, যখন কোনও পূর্ব-নির্ভরতা ঘোষণাকারী প্যাকেজটি প্রায় শেষ হতে চলেছে প্রাক-নির্ভরতা যদি প্যাক না হয়ে থাকে তবে যদি নির্ভরযোগ্য প্যাকেজটি পুরোপুরি কনফিগার করা থাকে তবে, বা নির্ভরযোগ্য প্যাকেজগুলি কেবল প্যাকযুক্ত না হয়ে থাকলে বা "অর্ধ-কনফিগার করা" অবস্থায় থাকে তবে তারা কনফিগার করা হয়েছে provided সঠিকভাবে অতীতে কিছু সময়ে (এবং অপসারণ বা আংশিকভাবে অপসারণ করা হয় না)।
এই ক্ষেত্রে, পূর্ব-কনফিগার করা এবং বর্তমানে আনপ্যাক করা বা "অর্ধ-কনফিগার করা" সংস্করণ উভয়ই প্রাক-নির্ভর ক্ষেত্রের কোনও সংস্করণ ধারা পূরণ করতে হবে। প্রাক-নির্ভরতা ঘোষণাকারী প্যাকেজটি যখন কনফিগার করা হতে চলেছে তখন প্রাক-নির্ভরতা স্বাভাবিক নির্ভর করে হিসাবে বিবেচনা করা হবে। নির্ভরশীল অন প্যাকেজটি সঠিকভাবে কনফিগার করা থাকলে এটি সন্তুষ্ট হিসাবে বিবেচিত হবে। যাইহোক, নির্ভরতাগুলির সাথে ভিন্ন, প্রাক-নির্ভরতাগুলি বিজ্ঞপ্তি নির্ভরতাগুলি ভাঙ্গার অনুমতি দেয় না। প্রাক-নির্ভরতাগুলি সম্মানের চেষ্টা করার সময় যদি একটি বিজ্ঞপ্তি নির্ভরতা দেখা দেয় তবে ইনস্টলেশনটি বাতিল হয়ে যাবে।
প্রিনস্টিক স্ক্রিপ্টটি নামযুক্ত প্যাকেজের উপর নির্ভর করে যদি প্রাক-নির্ভরও প্রয়োজন। সম্ভব হলে এই পরিস্থিতি এড়ানো ভাল। প্রাক-নির্ভরতা খুব অল্প পরিমাণে ব্যবহার করা উচিত, কেবলমাত্র সেই প্যাকেজগুলি দ্বারা যার অকালীন আপগ্রেড বা ইনস্টলেশন সিস্টেমের যে কোনও আপগ্রেড যা চলমান রয়েছে তা অব্যাহত রাখার ক্ষমতা বাধা দেয়।
ছোট সংস্করণ:
"নির্ভরতা" শব্দটি "নির্ভর করে" এবং "প্রাক নির্ভর করে" সম্পর্কগুলি (এবং কখনও কখনও এমনকি অন্যান্য, দুর্বল সম্পর্ক) অন্তর্ভুক্ত করতে ব্যাপকভাবে ব্যবহৃত হতে পারে বা এটি "নির্ভর করে" এর প্রতিশব্দ হিসাবে সংকীর্ণভাবে ব্যবহার করা যেতে পারে।
"নির্ভর করে" এবং "প্রাক নির্ভর করে" প্যাকেজ সম্পর্কের মধ্যে পার্থক্য হ'ল এক্স যদি Y এর উপর নির্ভর করে তবে এক্স কনফিগার হওয়ার আগে Y অবশ্যই সম্পূর্ণরূপে কনফিগার করা উচিত। (কনফিগারেশন হল এমন একটি ইনস্টলেশন পদক্ষেপ যেখানে কোনও প্যাকেজ, একবার তার ফাইলগুলি যথাযথ অবস্থানগুলিতে আনপ্যাক করা হয় - যেমন, একবার "ইনস্টল করা" - এর সাথে অন্য যে কোনও প্রয়োজনীয় পরিবর্তন হয়েছে যাতে এটি প্রদত্ত সফ্টওয়্যারটি ব্যবহার করা সম্ভব হয় example উদাহরণস্বরূপ , একটি HTTP সার্ভারের কনফিগারেশন নিশ্চিত একটা হয় উপার্জন জড়িত হতে পারে www
এবং যথাযথ ক্ষমতা ব্যবহারকারী একটি /var/www
সঠিক অনুমতিসহ ডিরেক্টরি।) এর বিপরীতে, যদি এক্স প্রাক নির্ভর তারপর ওয়াই ইনস্টল করা আবশ্যক ওয়াই এবং (সাধারণত) সম্পূর্ণরূপে কনফিগার আগে এক্স এমনকি ইনস্টল করা ।
আরও তথ্যের জন্য দেবিয়ান পলিসি ম্যানুয়ালের বিভাগ 7.2 দেখুন । আমি এখানে দুটি সর্বাধিক প্রাসঙ্গিক অংশটি উদ্ধৃত করেছি, তবে সেই বিভাগে অন্যান্য তথ্য রয়েছে (এবং আরও সাধারণভাবে chapter অধ্যায়ে) যা নির্ভরতা কীভাবে কাজ করে তা আলোকিত করতে সহায়তা করে।
Depends
এটি পরম নির্ভরতা ঘোষণা করে। তার
Depends
ক্ষেত্রের তালিকাভুক্ত সমস্ত প্যাকেজ সঠিকভাবে কনফিগার করা না হলে প্যাকেজ কনফিগার করা হবে না (যদি না উপরে বর্ণিত বিজ্ঞপ্তি নির্ভরতা না থাকে)।
Depends
ক্ষেত্রটি নির্ভরশীল অন প্যাকেজ নির্ভর করে প্যাকেজের জন্য প্রয়োজন বোধ করা হয় কার্যকারিতা উল্লেখযোগ্য পরিমাণ প্রদান ব্যবহার করা উচিত।
Depends
ক্ষেত্র যদি ব্যবহার করা উচিতpostinst
বাprerm
স্ক্রিপ্ট প্রয়োজন নির্ভরশীল অন প্যাকেজ প্যাক না বা আদেশ চালানোর জন্য কনফিগার করা আবশ্যক। পোস্ট ইনস্ট কনফিগার করার ক্ষেত্রে, নির্ভরশীল প্যাকেজগুলি প্রথমে প্যাক এবং কনফিগার করা হবে। (উভয় প্যাকেজের নির্ভরশীলতার লুপ জড়িত হয় তাহলে, এই নাও করতে পারে কাজ আশানুরূপ;। কয়েক অনুচ্ছেদ ফিরে ব্যাখ্যা দেখুন) ক্ষেত্রেprerm
বা অন্যান্যpostinst
ক্রিয়া, প্যাকেজ নির্ভরতা স্বাভাবিকভাবে অন্তত প্যাক না হবে, কিন্তু তারা শুধুমাত্র হতে পারে "অর্ধ-ইনস্টলড" যদি নির্ভরতার পূর্ববর্তী আপগ্রেড ব্যর্থ হয়।পরিশেষে,
Depends
যদিpostrm
স্ক্রিপ্টের মাধ্যমে প্যাকেজ অপসারণের পরে পুরোপুরি পরিষ্কার করার জন্য নির্ভরশীল অন প্যাকেজটির প্রয়োজন হয় তবে ক্ষেত্রটি ব্যবহার করা উচিত । প্যাকেজ নির্ভরতা যখনpostrm
চালানো হবে তখন কোনও গ্যারান্টি নেই , তবে প্যাকেজ নির্ভরতা (বিশেষত ক্ষেত্রেpostrm remove
) ঘোষণা করে তবে নির্ভরশীল প্যাকেজ উপলব্ধ হওয়ার সম্ভাবনা বেশি থাকে ।postrm
স্ক্রিপ্ট অত্যন্ত শৃঙ্খলার ক্রিয়া করে একটি নির্ভরতা প্রয়োজন হলে যে নির্ভরতা উপলব্ধ নয় লাফালাফি উচিত নয়।
Pre-Depends
এই ক্ষেত্রটি এর মতো
Depends
, ব্যতীত এটিdpkg
পূর্ব-নির্ভরতা ঘোষণা করে এমন প্যাকেজ ইনস্টলেশন শুরু করার আগেই নামকরণ করা প্যাকেজগুলির ইনস্টলেশন সম্পূর্ণ করতে বাধ্য করে:প্রাক-নির্ভরতা ঘোষিত কোনও প্যাকেজ যখন প্রাক-নির্ভরতা আনপ্যাক করা হয় তখন নির্ভরতা-প্যাকেজটি সম্পূর্ণরূপে কনফিগার করা থাকলেও , বা নির্ভরযোগ্য প্যাকেজগুলি কেবলমাত্র প্যাকযুক্ত বা "অর্ধে" থাকলে কনফিগার্ড "স্টেট, প্রদত্ত শর্ত যে তারা অতীতের কোন এক সময় সঠিকভাবে কনফিগার করা হয়েছে (এবং অপসারণ বা আংশিকভাবে অপসারণ করা হয়নি)। এই ক্ষেত্রে, উভয় পূর্বে-কনফিগার করা এবং বর্তমানে আনপ্যাক করা বা "অর্ধ-কনফিগার করা" সংস্করণ অবশ্যই
Pre-Depends
ক্ষেত্রের কোনও সংস্করণ ধারা পূরণ করবে ।প্রাক-নির্ভরতা ঘোষণাকারী প্যাকেজটি যখন কনফিগার করা হতে চলেছে তখন প্রাক-নির্ভরতা স্বাভাবিক হিসাবে বিবেচনা করা হবে
Depends
। নির্ভরশীল অন প্যাকেজটি সঠিকভাবে কনফিগার করা থাকলে এটি সন্তুষ্ট হিসাবে বিবেচিত হবে। তবে এর বিপরীতেDepends
,Pre-Depends
বিজ্ঞপ্তি নির্ভরতাগুলি নষ্ট হওয়ার অনুমতি দেয় না। সম্মানের চেষ্টা করার সময় যদি কোনও বিজ্ঞপ্তি নির্ভরতা দেখা দেয় তবেPre-Depends
ইনস্টলেশনটি বাতিল হয়ে যাবে।
Pre-Depends
preinst
স্ক্রিপ্টটি যদি নামযুক্ত প্যাকেজের উপর নির্ভর করে তবে এটিরও প্রয়োজন। সম্ভব হলে এই পরিস্থিতি এড়ানো ভাল।
Pre-Depends
অল্প পরিমাণে ব্যবহার করা উচিত, কেবলমাত্র সেই প্যাকেজগুলির দ্বারা যাদের অকাল আপগ্রেড বা ইনস্টলেশন সিস্টেমের অগ্রগতিতে চলতে পারে এমন কোনও আপগ্রেড চালিয়ে যাওয়ার ক্ষমতাকে বাধা দেয়।
Pre-Depends
এটিdebian-devel
মেইলিং তালিকায় আলোচনার আগে আপনাকে কোনও প্যাকেজের জন্য প্রবেশের উল্লেখ না করা এবং এটি করার বিষয়ে sensক্যমত্য হওয়া উচিত। দেখুন অধীনস্থ, অনুচ্ছেদ 3.5 ।