কেন একটি লাইব্রেরী ফোল্ডারের চেয়ে প্যাকেজ পরিচালকের পছন্দ?


68

আমি যখন কোনও স্ট্যাটিক লাইব্রেরি ফোল্ডার এবং একটি প্যাকেজ ম্যানেজারের উপকারিতা এবং বিষয়গুলি সম্পর্কে চিন্তা করি তখন আমার মনে হয় লাইব্রেরির ফোল্ডারটি আরও ভাল পদ্ধতির is

আমি একটি লাইব্রেরি ফোল্ডারের সাথে দেখছি পেশাদাররা:

  1. প্যাকেজ পরিচালনা করার জন্য বাহ্যিক সরঞ্জামের প্রয়োজন নেই।
  2. কোনও ইন্টারনেট সংযোগ তৈরি করার প্রয়োজন নেই।
  3. দ্রুত বিল্ড (কোনও প্যাকেজ চেক নেই)।
  4. সহজ পরিবেশ (কম জ্ঞানের প্রয়োজন)।

আমি একটি প্যাকেজ পরিচালকের সাথে দেখছি পেশাদার:

  1. জটিল নির্ভরশীলতা গাছগুলির সাথে সহায়তা করে (এবং এটির সমস্ত নির্ভরতার সাথে একত্রে নির্ভরতা ডাউনলোড করা পরিচালনা করা যেতে পারে)।
  2. কোনও নতুন সংস্করণ উপলব্ধ কিনা তা পরীক্ষা করতে সহায়তা করে।

দেখে মনে হচ্ছে শিল্পটি আজ নির্মিত প্রায় সমস্ত কিছুর জন্য প্যাকেজ পরিচালকের পথ অনুসরণ করার সিদ্ধান্ত নিয়েছে। তো, আমি কী মিস করছি?


33
আমি তোমাদের সত্যিই সুবিধা সম্পর্কে বলছি মনে bundling বনাম প্রয়োজন লাইব্রেরি। আপনি যদি এই পদগুলি ব্যবহার করেন তবে আপনি আরও প্রাসঙ্গিক উত্তর পাবেন।
কিলিয়ান ফট

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

3
@ কেয়ামান: একটি নতুন সরঞ্জাম শিখতে দলের সময় (অর্থ) ব্যয় হয় এবং আমি যাচাই করতে চাই যে আমরা এটি সঠিক জিনিসটিতে বিনিয়োগ করছি। বড় প্রকল্পগুলির সাথে আমার অভিজ্ঞতা হ'ল নির্ভরতা বেশ স্থিতিশীল [তারা প্রায়শই কখনই বদলে না] এবং সম্ভবত প্যাকেজ পরিচালক আমার কাছে ব্যয়বহুল বলে মনে হয়। যাইহোক আমি নিউগেটের সাথে কিছুক্ষণ কাজ করার পরে এবং এর সাথে কিছুটা সময় কাটিয়ে যাওয়ার পরে কেবল প্রো এবং কনসের তালিকাবদ্ধ ছিল।
ইগনাসিও সোলার গার্সিয়া

2
@ সেবকুর আপনি আপনার সমস্ত প্যাকেজগুলির স্থানীয় কপি রাখতে পারেন। আমরা আমাদের সমস্ত নির্ভরতার বর্তমান সংস্করণগুলি স্থানীয় উত্স নিয়ন্ত্রণে রাখি। প্যাকেজ পরিচালকের কেবলমাত্র সংযোগের প্রয়োজন হয় যখন আমরা আপগ্রেড করি।
26

1
@ 17of26: আপনি কীভাবে কোনও নুগেট ইনস্টল করতে এবং 10 মিনিটের মধ্যে অনুরোধে এটি চালাতে কোনও বিল্ড এজেন্টকে কনফিগার করতে পারেন তা শিখেন না। আপনার যদি কোনও মাল্টি সলিউশন প্রকল্প থাকে যেখানে একই প্রকল্পগুলি বিভিন্ন সমাধানে ব্যবহৃত হয় তবে আপনি তা করবেন না।
ইগনাসিও সোলার গার্সিয়া

উত্তর:


122

অন্যান্য উত্তরগুলি থেকে একটি গুরুত্বপূর্ণ বিষয় অনুপস্থিত:

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

আপনি কোন লাইব্রেরি ব্যবহার করেন এবং কোন সংস্করণটি জেনে রাখা যদি আপনি:

  • একটি জটিল বাগ / সুরক্ষা গর্তের কারণে একটি লাইব্রেরি আপডেট করতে হবে;
  • অথবা কেবল ঘোষিত সুরক্ষা ছিদ্র আপনাকে প্রভাবিত করে কিনা তা খতিয়ে দেখার দরকার।

তদতিরিক্ত, আপনি যখন আসলে আপডেট করেন, প্যাকেজ পরিচালক (সাধারণত) নিশ্চিত করে যে কোনও ট্রানসটিভ নির্ভরতা প্রয়োজনীয়তার সাথে আপডেট হয়েছে।

একটি সঙ্গে যেহেতু libফোল্ডারের, আপনি শুধু (সম্ভবত বাইনারি, এবং সম্ভবত পরিবর্তিত) ফাইল একটি গুচ্ছ আছে, এবং আপনি অনুমান তারা যেখান থেকে এসেছিলেন আছে এবং কি সংস্করণ তারা হবে (অথবা কিছু README, যা বা সঠিক হতে পারে বিশ্বাস )।


আপনার অন্যান্য বিষয়গুলি সম্বোধন করতে:

প্যাকেজ পরিচালনা করার জন্য বাহ্যিক সরঞ্জামের প্রয়োজন নেই।

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

কোনও ইন্টারনেট সংযোগ তৈরি করার প্রয়োজন নেই।

আমি জানি এমন সমস্ত প্যাকেজ পরিচালনাকারীরা প্রয়োজনীয় নির্ভরতাগুলি ডাউনলোড করার পরে (যা প্রকল্পটি নিজেই ডাউনলোড করার পরে ঘটতে পারে) ডাউনলোড করে ফেলে।

দ্রুত বিল্ড (কোনও প্যাকেজ চেক নেই)।

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

সহজ পরিবেশ (কম জ্ঞানের প্রয়োজন)।

সত্য, তবে উপরে বর্ণিত হিসাবে, একটি libফোল্ডারেরও জ্ঞানের প্রয়োজন। এছাড়াও, উপরে বর্ণিত হিসাবে, আপনি সম্ভবত কেবলমাত্র কয়েকটি মুখ্য ডিফারেন্স প্যাকেজ পরিচালকদের সাথে কাজ করবেন, যা আপনি ইতিমধ্যে জানেন know


170
"প্যাকেজগুলি পরিচালনা করতে বাহ্যিক সরঞ্জামের দরকার নেই" - হ্যাঁ। এখন এটি আপনার মস্তিষ্কের কাজ। শুভকামনা, মস্তিষ্ক!
পল ডি ওয়েট

57
যে কেউ যে গুরুত্ব সহকারে মনে করে যে একটি lib ফোল্ডারটি একটি "সহজ পরিবেশ" এটি সহজভাবে এগিয়ে যাওয়া উচিত এবং মাইক্রোসফ্ট.এএসপনেটকোর.আল নুগেটের জন্য নির্ভরতা গাছটি বের করার চেষ্টা করা উচিত । যাও, আমার জন্য অপেক্ষা করবেন না আমি প্রায় একদিন আবার পরীক্ষা করব।
ভু

13
এছাড়াও, আপনি যে ব্রাউজারটি ম্যানুয়ালি লাইব্রেরিগুলি শিকার করার জন্য ব্যবহার করেন তা প্যাকেজ পরিচালনা করার জন্য একটি বাহ্যিক সরঞ্জাম হিসাবে গণ্য হবে। লাইব্রেরিগুলি তৈরি এবং অবস্থান নির্ধারণের জন্য আপনি ব্যবহার করেন এমন সমস্ত কিছুর সাথে (ওএস ফাইল ম্যানেজার ইত্যাদি) সুতরাং আসল পছন্দটি হ'ল একটি বাহ্যিক সরঞ্জাম (প্যাকেজ ম্যানেজার) বনাম অনেকগুলি।
NemesisX00

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

7
@ পলডি.ওয়েট যখন আমরা এটি উপস্থিত ছিলাম তখন আমরা সেইসব উদ্বেগজনক "ভাষা" থেকে সবাই মুক্তি পাচ্ছি everyone এটি সবশেষে যাহাই হউক না কেন মেশিনের কোডে ফোটে, তাই আমার ফার্মে আমরা মধ্যবিত্তকে আউট করলাম। এখন যে দক্ষতা!
কর্সিকা

39

আপনি ছোট স্কেল বিকাশ থেকে বড় বড় কাজের দিকে চলে যাওয়ার পরে লাইব ফোল্ডারের পেশাদাররা দ্রুত অদৃশ্য হয়ে যায়।

উদাহরণস্বরূপ, বাহ্যিক সরঞ্জামের প্রয়োজন না হওয়ার "উপকার" হ'ল আপনার নির্ভরতাগুলি ম্যানুয়ালি পরিচালনা করার জন্য প্রয়োজনীয় কাজটি দ্বারা প্রকাশিত হয়, সুতরাং সরঞ্জামটি আপনি হবে (বিশ্বের একাধিক অর্থে)।

প্যাকেজ পরিচালকের জন্য আপনার ইন্টারনেট সংযোগের দরকার নেই। আপনি স্থানীয় সংগ্রহস্থলগুলি ব্যবহার করতে পারেন।

দ্রুততম বিল্ডটি সত্য হতে পারে তবে এটি প্যাকেজ ম্যানেজারটি ব্যবহার করবেন কিনা তা নির্ধারণ করা উচিতই। আমরা সর্বোপরি পার্থক্যের বিশালতার কথা বলছি না এবং এটিও আপনার কনফিগারেশনের উপর নির্ভর করে। আপনি সহজেই একটি প্যাকেজ পরিচালক ব্যবহার করে একটি ধীর গতি তৈরি করতে পারেন তবে এটি মূলত নাশকতা।

সহজ পরিবেশ (কম জ্ঞানের প্রয়োজন)? আবার, ছোট স্কেল বিকাশে অবশ্যই একটি সম্ভাবনা। আপনি ব্যবহৃত হতে পারে কয়েকটি লাইব্রেরির প্রত্যেকটির নিচে আপনি পুরোপুরি আপনার মাথায় প্রকল্পটি ধরে রাখতে পারবেন। একটি সাধারণ মেকফিল / অন্যান্য বিল্ড স্ক্রিপ্ট যুক্ত করুন এবং আপনি নিজেকে একটি সম্পূর্ণ প্যাকেজ পেয়েছেন।

কিন্তু এটা না করতে পরিবেশের সহজ, এটি শুধুমাত্র সহজ পরিবেশের মধ্যে কাজ করে। বৃহত্তর স্কেল বিকাশে আপনি খুশি হবেন যে আপনি কাস্টম সমাধানগুলির পরিবর্তে স্ট্যান্ডার্ড টুলিং ব্যবহার করছেন। সর্বোপরি, আপনাকে কেবল এটি একবার শিখতে হবে (এবং যখন প্যাকেজ ম্যানেজার ডু ভ্রমণ নতুন শীতল জিনিস দ্বারা প্রতিস্থাপিত হয়, আপনাকেও এটি শিখতে হবে)।


21
@ ইগনাসিওসোলারগার্সিয়া: কিছু ভুল না হলে এটি কেবল সহজ। লাইব্রেরি এ-এর নতুন সংস্করণটিরও একটি আপডেট বি এবং সি দরকার হয়, তবে কী? আপনি যদি এটি এখনও চালিয়ে যান তবে সূক্ষ্ম বাগগুলি পরিচয় করিয়ে দেন? এটাই "নির্ভরতা পরিচালনার" অংশ।
সলেসকে

18
@ ইগানাসিওসোলারগার্সিয়া "একটি ফাইল ডাউনলোড করুন" বলে সঠিক চিত্রটি বেশ আঁকেনি। যাক "20 টি ফাইল ডাউনলোড করুন এবং তাদের সংস্করণগুলি সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করুন" Let's সেখানে কোনও কাজ এড়ানো হয়নি। প্যাকেজ আপডেট করা তাত্ত্বিক পরিস্থিতি নয়, যদি না আপনি নির্ভরতা সংস্করণগুলিকে হিমায়িত করার সিদ্ধান্ত নেন এবং এর ফলে প্রাপ্ত সম্ভাব্য সমস্যাগুলি (বাগ, সুরক্ষা ত্রুটি) গ্রহণ করতে প্রস্তুত না হন।
কায়মন

12
@ ইগনাসিওসোলারগ্রিয়া "একটি ফাইল ডাউনলোড করুন" - আপনি কি বোঝাতে চেয়েছিলেন (1) সঠিক প্রকল্পের ওয়েবসাইট খুঁজে বের করুন (কিছুগুলি গিথুবে হোস্ট করা হয়, কিছু সোর্সফোজে, কিছু তাদের নিজস্ব ওয়েবসাইটে), (2) পৃষ্ঠা ডাউনলোড করতে যান, (3) সঠিক সংস্করণ খুঁজে পান , (4) ডাউনলোড করুন, (5) আনজিপ করে কোথাও ফেলে দিন। যে তুলনায় অনেক বেশি কাজ মনে হয় blah install libfoo। এবং তারপরে, 5 টি নির্ভরতা দ্বারা এটিকে গুণ করুন।
el.pescado

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

6
@ ইগনাসিও এটিই সর্বাধিক সহজ এএসপি.নেট কোর অ্যাপ্লিকেশনটি চালু এবং চালু করার জন্য বুনিয়াদি মেটা নুগেট। পুরো কাঠামোর ভাল পুরানো দিনগুলিতে সত্য পুরো জিনিসটি "সহজ" ছিল, কারণ আপনি সবেমাত্র এমন একক একাধিক গ্রন্থাগার পেয়েছিলেন যা সমস্ত একই সময়ে সংস্করণিত হয়েছিল এবং আপডেট প্রকাশ করতে আপনাকে কয়েক বছর সময় লেগেছে। এই মডেলটি কেবলমাত্র নেট নেট ওয়ার্ল্ডেই নয়, খুব ভাল কারণে মূলত হ্রাস পেয়েছে। আপনাকে প্রচুর ছোট গ্রন্থাগারগুলির পুরো মডেলটিতে অভ্যস্ত হতে হবে একটি নির্দিষ্ট কাজ এবং সততার সাথে একটি প্যাকেজ ম্যানেজার ব্যবহার করা হ'ল উত্তরণের সহজতম অংশ।
ভু

35

আপনি প্যাকেজ পরিচালকদের অনেক সুবিধা মিস করছেন ।

  1. প্যাকেজ পরিচালনাকারীরা আপনাকে উত্স নিয়ন্ত্রণে বড় (বেশ কয়েকটি মেগাবাইট বা বৃহত্তর) বাইনারি পরীক্ষা করা এড়াতে দেয়। এটি করা অনেক উত্স নিয়ন্ত্রণ সরঞ্জামগুলিতে অ্যানথেমা, বিস্তৃত গিট তাদের মধ্যে অন্যতম। আমাদের কাছে কয়েক মাস আগে বিট বালতির আকারের সীমা ছিল একটি স্টপ রিপোজিটরি ছিল কারণ বিকাশকারীরা কোকোপডগুলিতে চেক করছিলেন। আমরা এসভিএন থেকে স্থানান্তরিত হয়ে যাওয়ার আগে আরও একটি প্রকল্প ইতিমধ্যে সেখানে ছিল কারণ আমরা আমাদের সমস্ত লিবিব বাইনারিগুলি পরীক্ষা করে দেখছিলাম (এবং নিউগেট ব্যবহার করে নি)। যেহেতু প্যাকেজ পরিচালকগণ প্রতিটি বিকাশকারীদের জন্য ফ্লাইতে প্যাকেজগুলি ডাউনলোড করবেন, তাই তারা এই বাইনারিগুলিকে পরীক্ষা করে দেখার প্রয়োজনটিকে দূর করে।
  2. তারা বেমানান ফাইল / লাইব্রেরি মিশ্রণ প্রতিরোধ করে। যদি কোনও আপগ্রেডের সময় কেউ এটি সঠিকভাবে পরিষ্কার না করে তবে ফোল্ডারগুলিতে গ্রন্থাগারের ফাইলগুলির মিশ্র সংস্করণগুলি থাকতে পারে। আমি এমন একটি মামলা দেখেছি যেখানে ফোল্ডারে অর্ধ বাইনারিগুলি আপগ্রেড করা হয়েছিল, যার ফলে খুব অদ্ভুত ত্রুটি হয়। (এটি ক্রাশও হয়নি!) সমস্যাটি সনাক্ত করতে আমাদের আক্ষরিক কয়েক মাস (ম্যান আওয়ার নয়, পুরো সময়) লেগেছিল। প্যাকেজ পরিচালককে পুরো ফোল্ডারটি নিয়ন্ত্রণ করতে দিয়ে আপনি মিশ্র সংস্করণগুলি পেতে পারবেন না; আপনি ধারাবাহিকতা নিশ্চিত। তারা অসম্পূর্ণ নির্ভরতাগুলি ব্যবহার করে, সমস্ত কিছু একত্রে স্বয়ংক্রিয়ভাবে আপডেট করে, যেখানে প্রয়োজন সেখানে বিভিন্ন সংস্করণ ইনস্টল করে বা এমনকি লাইব্রেরির অসঙ্গতিপূর্ণ সংস্করণ ব্যবহার করার চেষ্টা করার সময় সতর্কতা বা ত্রুটি ছুঁড়ে ফেলে দেওয়া আরও কঠিন করে তোলে ।
  3. তারা গ্রন্থাগার পরিচালনার জন্য একটি ভাগ করে নেওয়া কনভেনশন স্থাপন করে। যখন নতুন বিকাশকারী আপনার প্রকল্প, দল, সংস্থা ইত্যাদি এ আসে তখন তারা প্যাকেজ পরিচালকের কনভেনশন জানতে পারে। এর অর্থ হল যে আপনার কোড বেসে লাইব্রেরিগুলি কীভাবে পরিচালিত হয় তার সূক্ষ্ম বিবরণ নির্ধারণে তাদের সময় নষ্ট করতে হবে না।
  4. তারা আপনাকে আপনার নিজস্ব নির্ভরতা এবং ফাইলগুলি আপনার ভাণ্ডারে অন্তর্ভুক্ত নয় এমন সংস্করণ এবং বিতরণ করার একটি স্ট্যান্ডার্ড উপায় দেয়। এমনকি আমার ব্যক্তিগতভাবে প্রয়োজনীয় কয়েকটি বড় স্ট্যাটিক ডেটা ফাইলের জন্য আমি ব্যক্তিগতভাবে তাদেরকে লাভবান করেছি, সুতরাং এটি বাইনারি কোডের পাশাপাশি জিনিসগুলির সংস্করণে ভাল কাজ করে।
  5. কিছু প্যাকেজ পরিচালক ইনস্টলেশন চলাকালীন অতিরিক্ত বৈশিষ্ট্য সরবরাহ করে। নিউগেট আপনার সিএসপোজ ফাইলটিতে নির্ভরতা এবং সামগ্রী ফাইল যুক্ত করবে এবং এমনকি কনফিগারেশনের ফাইলগুলিতে কনফিগারেশন উপাদান যুক্ত করতে পারে।
  6. তাদের প্যাকেজ তালিকার ফাইলগুলি আপনার লাইব্রেরির সংস্করণগুলিকে একটি একক, কেন্দ্রীভূত জায়গায় ডকুমেন্ট করে। আমি কোনও ডিএলএলকে ডান ক্লিক করতে হবে না এবং আমি লাইব্রেরির কোন সংস্করণ ব্যবহার করছি তা নির্ধারণের জন্য সংস্করণ নম্বরটি দেখতে হবে না। পাইথনে, গ্রন্থাগারের লেখক এমনকি পাই ফাইলগুলিতে সংস্করণ নম্বর অন্তর্ভুক্ত নাও করতে পারেন, তাই আমি তাদের কাছ থেকে গ্রন্থাগারের সংস্করণটি বলতে সক্ষম নাও হতে পারি।
  7. তারা নির্ভরতা মেশিনের বিস্তৃত ইনস্টলেশনকে নিরুৎসাহিত করে। প্যাকেজ পরিচালকরা বিশ্বব্যাপী ইনস্টলার ছাড়াই নির্ভরতা ইনস্টল করার প্রচলিত উপায় সরবরাহ করে । যখন আপনার বিকল্পগুলি লিব ফোল্ডার এবং বিশ্বব্যাপী ইনস্টলেশন হয়, তখন অনেক লাইব্রেরি বিকাশকারী আপনার নিজের সেট আপ করতে হবে এমন ডাউনলোডযোগ্য বাইনারিগুলির পরিবর্তে তাদের লাইব্রেরিগুলিকে গ্লোবাল ইনস্টলেশন হিসাবে প্রাথমিকভাবে পছন্দ করবেন। (এমএস ইতিহাস এটি দেখায় Linux লিনাক্সের অনেকগুলি লাইব্রেরির ক্ষেত্রে এটিও এটি। Dir।
  8. তারা হোস্টিং এবং বিতরণ কেন্দ্রীভূত করার ঝোঁক। আপনাকে আর এলোমেলো গ্রন্থাগারের ওয়েব সাইটে নির্ভর করতে হবে না। যদি তারা ব্যবসায়ের বাইরে চলে যায় তবে একটি সফল প্যাকেজ পরিচালকের সাইটে এখনও প্রতিটি সংস্করণ আপলোড করা থাকে। বিকাশকারীদের কেবলমাত্র নতুন লাইব্রেরি ডাউনলোড করতে অনেকগুলি ওয়েবসাইট সন্ধান করতে হবে না; তাদের দেখতে প্রথমে দেখার জায়গা এবং এমনকি বিভিন্ন বিকল্পের জন্য ব্রাউজ করা আছে। অ্যাড-হক ওয়েবসাইটগুলি থেকে ম্যানুয়ালি হোস্ট করার চেয়ে মানকভাবে সংগঠিত প্যাকেজগুলি আয়না করা আরও সহজ।

আপনি আপনার "বেনিফিট" এর মানকেও বাড়িয়ে তুলছেন।

  1. প্যাকেজ পরিচালনা করার জন্য বাহ্যিক সরঞ্জামের প্রয়োজন নেই।

    "বাহ্যিক" কিসের? আমি আমার সংগ্রহস্থলগুলিতে এক্সিকিউটেবল নিউগেট চেক করি। এটি কেবলমাত্র বাইনারি আমার পক্ষে ঠিক আছে যাচাই করা ঠিক আছে, কারণ এটি ছোট এবং এর অর্থ হ'ল আমাকে অন্য কোনও বাইনারি পরীক্ষা করার দরকার নেই।

    পাইপটি এই ফ্রন্টে কোনও সমস্যা তৈরি করে না কারণ এটি পাইথনের সাথে এখন ডিফল্টরূপে বান্ডিল হয়ে গেছে এবং ব্রেকিং এবং পেছনের দিকে অসম্পূর্ণ পরিবর্তনগুলি অত্যন্ত বিরল। যাইহোক, আপনার প্রকল্পে পাইথন বাহ্যিকভাবে ইনস্টল না করে আপনি পাইথন কোড বিকাশ করতে যাচ্ছেন না।

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

  2. কোনও ইন্টারনেট সংযোগ তৈরি করার প্রয়োজন নেই।

    নেটওয়ার্ক সংযোগ ছাড়াই আমি আমার ডাটাবেসের সাথে সংযোগ করতে পারি না। যদি ডাটাবেসটি আমাজন হোস্ট করে তবে আমার যাইহোক একটি সম্পূর্ণ ইন্টারনেট সংযোগ প্রয়োজন। উত্স নিয়ন্ত্রণের মাধ্যমে পরিবর্তনগুলি টানতে এবং টানতে আমার একটি ইন্টারনেট সংযোগ প্রয়োজন; কোনও বিল্ড সার্ভার কোনও ধরণের নেটওয়ার্ক সংযোগ ছাড়াই বিল্ড করার কোড চেক আউট করতে পারে না। আপনি ছাড়া ই-মেইল পাঠাতে বা গ্রহণ করতে পারবেন না । আপনি এগুলি ছাড়া আপনার লাইব ফোল্ডারে লাইব্রেরিগুলি ডাউনলোড করতে পারবেন না! কোনও ইন্টারনেট সংযোগ ছাড়াই স্থায়ীভাবে বিকাশ কার্যত শোনা যায় না। কিছু বিরল ক্ষেত্রে যেখানে এটি প্রয়োজনীয়, আপনি প্যাকেজ পরিচালক যে প্যাকেজটি গ্রাস করতে পারে এমন কোনও স্থানে প্যাকেজগুলি ডাউনলোড করে এটি মোকাবেলা করতে পারেন। (আমি জানি নুগেট এবং পাইপ একটি সাধারণ ফোল্ডার বা নেটওয়ার্ক ড্রাইভ থেকে টানতে বেশ খুশি; আমি সন্দেহ করি যে বেশিরভাগ অন্যান্যরাও এটি করতে পারে))

  3. দ্রুত বিল্ড (কোনও প্যাকেজ চেক নেই)।

    আমি উপরে বর্ণিত সুবিধাগুলির জন্য স্বয়ংক্রিয় বিল্ড চলাকালীন 30 সেকেন্ড এবং স্থানীয় দেব বিল্ড চলাকালীন 5 সেকেন্ড হ'ল একটি ভাল বাণিজ্য। এগুলি তুচ্ছ সময় ফ্রেম যা বেনিফিটগুলি সমাধান করে এমন সমস্যার তুলনায় সাধারণত বিবেচনা করার মতো নয়।

  4. সহজ পরিবেশ (কম জ্ঞানের প্রয়োজন)।

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

সাধারণ থিমটি হ'ল তারা ধারাবাহিকতা, ডকুমেন্টেশন এবং বৈশিষ্ট্যগুলি কেবলমাত্র প্রকল্পের মধ্যেই নয়, এমনকি তাদের জুড়েও সরবরাহ করে। এটি প্রত্যেকের জীবনকে সরল করে তোলে।


10
"ইন্টারনেট সংযোগ ব্যতীত স্থায়ীভাবে বিকাশ কার্যত শোনা যায় না" আমি আশা করি আমি আরও ভাল জানতাম না। সুরক্ষার কারণে পুরোপুরি বিচ্ছিন্ন নেটওয়ার্কগুলিতে প্রচুর বিকাশ হয়েছে। হ্যাঁ এটি যতটা শোনায় তত মজাদার তবে এটি একেবারেই সম্ভব। আপনাকে কেবল প্যাকেজ স্টোরেজের জন্য নিজস্ব কাঠামো সেট আপ করতে হবে (যেমন আপনার নিজের নুগেট ফিড)।
ভু

1
যদিও আপনার নিজস্ব অবকাঠামো থাকা আসলে যে কয়েকটি ক্ষেত্রে বোধগম্য কিছু জিনিসগুলির মধ্যে একটি: আপনি বাইরের অবকাঠামোতে নির্ভরযোগ্য হতে চান না। যদি এটি এক কারণে বা অন্য কারণে উপলব্ধ না হয় তবে ফলব্যাক হওয়া আরও ভাল যা গ্যারান্টি দেয় যে আপনার বিকাশকারীরা বিকাশ চালিয়ে যেতে পারে। (এবং কেউ আমাকে বলার আগে কীভাবে সেই nuget.org বা এনপিএম বা <প্রিয় প্যাকেজ রেপো> কখনই এ জাতীয় সমস্যায় পড়তে পারে না, আবারও ভাবুন ))
ভু

3
@ ইগনাসিওসোলারগার্সিয়া প্রতি প্রকল্প বা প্রতি বিভাগ বা প্রতি কোম্পানির কনভেনশন প্রতিষ্ঠা করা কেবল কোনও কনভেনশন হওয়ার চেয়ে সবাইকে না বলেই জেনে রাখা ভাল। অধিকন্তু, প্যাকেজ পরিচালনটি কনভেনশনটি কার্যকর করার জন্য আরও ভাল কাজ করে, কারণ এটি সম্মেলনটি ভেঙে দেওয়ার চেয়ে কম কাজ করে। এছাড়াও, যেমনটি আমি উল্লেখ করেছি, আমি সরাসরি নিউগেট প্রতিশ্রুতিবদ্ধ এবং এটি বিল্ড স্ক্রিপ্টে প্রার্থনা করি, সুতরাং এটি ইনস্টল করার দরকার নেই। আমি প্রকৃত ন্যূনতম পর্যন্ত সার্ভার ইনস্টলেশনগুলি বজায় রাখি।
jpmc26

2
@ jpmc26 ইমো আপনার প্রথম সংখ্যাযুক্ত তালিকাটি কিছুটা জোর দিয়ে উপকৃত হবে ।
সেরেন ডি Ptæus

1
@ সেরেনডি.প্যাটুস সম্পন্ন হয়েছে।
jpmc26

16

নিউগেটের সাহায্যে ম্যানুয়ালি ডাউনলোড করা লাইব্রেরিগুলি স্বয়ংক্রিয়ভাবে প্যাকেজ পরিচালনায় রূপান্তর করার পরে আমি বলতে পারি যে প্যাকেজ ম্যানেজার ব্যবহারের প্রচুর সুবিধা রয়েছে।

আমাদের পণ্য 27 সি # প্রকল্প জুড়ে বাস্তবায়িত হয়েছে, যা আজকের মানগুলির তুলনায় তুলনামূলকভাবে ছোট। আমাদের তৃতীয় পক্ষের কিছু নির্ভরতা কয়েক ডজন সমাবেশ করে।

নুগেটের আগে, আমি যদি আমাদের সমস্ত নির্ভরতা সর্বশেষতম সংস্করণে আপডেট করতে চাই তবে আমাকে তা করতে হবে:

  1. আমি আপডেট হওয়া সমস্ত লাইব্রেরি কোথায় পেতে পারি তা সন্ধান করুন
  2. এগুলি ডাউনলোড করুন এবং আনজিপ / ইনস্টল করুন
  3. উত্স নিয়ন্ত্রণে নতুন সংস্করণ যুক্ত করুন
  4. আমাদের প্রকল্পগুলির সমস্ত রেফারেন্স ম্যানুয়ালি দেখুন এবং তাদের নতুন অ্যাসেম্বলিতে নির্দেশ করতে আপডেট করুন

২ projects টি প্রকল্প এবং কয়েক ডজন নির্ভরশীল সমাবেশগুলি সহ, এই প্রক্রিয়াটি খুব ত্রুটিযুক্ত ছিল এবং এটি কয়েক ঘন্টা সময় নিতে পারে।

এখন আমরা নুগেট ব্যবহার করতে আপডেট করেছি, এটি আমার পক্ষে একক কমান্ড দিয়ে শেষ হয়েছে।


সম্মত হন, এটি প্রো এর 2 পয়েন্ট। যাইহোক নির্ভরতা পরিবর্তন হ'ল আমরা খুব কমই এটি করি (সম্ভবত যথাযথ অটোমেটস রিগ্রেশন টেস্টের অভাবের কারণে)।
ইগনাসিও সোলার গার্সিয়া

9
নির্ভরতা আপডেট করা এমন একটি বিষয় যা আপনি যদি নিয়মিত করেন তবে তা করা খুব কম বেদনাদায়ক।
26

1
এই পরীক্ষাগুলি কি স্বয়ংক্রিয় হয়? ঠিক কতক্ষণ তারা চালাতে সময় নেয়? এমনকি পুরো পরীক্ষার পুরো স্যুটটি চালাতে 24 ঘন্টা সময় লাগলেও, এটি আপনাকে সামান্য খারাপ দিক দিয়ে প্রতি কয়েকদিনে নির্ভরতা আপডেট করতে দেয় (যদিও আপনি সম্ভবত এটি অনুশীলনে বেশিরভাগ ক্ষেত্রেই করেন না)। এমনকি যদি তারা ম্যানুয়াল এবং অনিবার্য না হয়, ম্যানুয়াল ইনস্টলেশন ব্যবহার করে আপনি পরীক্ষাগুলি চালিয়ে দিনগুলি ব্যর্থ করতে পারেন কেবল এটির ব্যর্থতার কারণ আপনি কোনও নির্ভরতার কিছুটা নির্ভরতা মিস করেছেন, তবে আপনাকে এটি ইনস্টল করার পরে আবার শুরু করতে হবে, যা ঘটবে না প্যাকেজ পরিচালনা ব্যবহার করে ...
শন বার্টন

3
নতুন সফ্টওয়্যার রিলিজে আপনার কি রিগ্রেশন টেস্টের দরকার নেই? আপনি ইতিমধ্যে একটি মুক্তির জন্য পরীক্ষা করছেন যখন কেবল নির্ভরতা আপডেট করুন।
26

4
"এগুলি সম্পূর্ণরূপে স্বয়ংক্রিয়ভাবে আমাদের হাতে নেই এবং এটি করার জন্য সরঞ্জামটি খুব বড় ((এটি পরীক্ষা করতে বা এটি স্বয়ংক্রিয় করতে কয়েক মাস সময় নিতে পারে)" - আপনার বড় সমস্যা রয়েছে। এই পরীক্ষাগুলি শুরু থেকেই হওয়া উচিত ছিল। আপনার সমস্যাটি এমন নয় যে প্যাকেজ ম্যানেজার ব্যবহার করে কোনও উপকার পাওয়া যায় না, আপনার সমস্যাটি হ'ল আপনি যে প্রসঙ্গে কাজ করছেন সেটি অন্য উপায়ে আপনাকে ভোগ করার অনুমতি দেওয়ার জন্য খুব ভেঙে গেছে।
পিঁপিতে পি

14

প্যাকেজ পরিচালনা করার জন্য বাহ্যিক সরঞ্জামের প্রয়োজন নেই

এটাই কি নন-পয়েন্ট? আমি যদি কোনও প্যাকেজ পরিচালক ব্যবহার করি তবে আমার কোনও লিবিব ফোল্ডার লাগবে না। আমি নিজে প্যাকেজ পরিচালনা করতে হবে না।

কোনও ইন্টারনেট সংযোগ তৈরি করার প্রয়োজন নেই

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

দ্রুত বিল্ড (কোনও প্যাকেজ চেকিং নেই)

এটি একটি সুন্দর প্রান্তিক গতিপথ, তবে আপনি তর্কসাপসিতভাবে এটির জন্য একটি বিষয় বলতে পারেন।

সহজ পরিবেশ (কম জ্ঞানের প্রয়োজন)

বেশিরভাগ প্যাকেজ ম্যানেজার আজকাল এতটাই সহজ যে এগুলি করে তাদের কাছাকাছি যাওয়ার চেষ্টা করা খুব কমই উপযুক্ত। আপনি চাইলে ভিজ্যুয়াল ক্লায়েন্টও রয়েছে। তারা আসলে চলছে এমন অনেকগুলি ক্রাফট লুকায়।

প্যাকেজ পরিচালকরা আপনাকে বিভিন্ন প্রকল্পের মধ্যে এই প্যাকেজগুলি ভাগ করার অনুমতি দেয়। যদি আমার 5 টি প্রকল্প বুস্টের একই সংস্করণ ব্যবহার করে তবে প্রতিটি প্রকল্পের জন্য এটির নকল করার দরকার নেই। আপনি যে জটিল নির্ভরশীলতা গাছগুলির কথা বলছেন এটি বিশেষত সত্য true

একটি lib ফোল্ডারের সাহায্যে আপনি কেবল সেই প্রকল্পের জন্য প্যাকেজ পরিচালনা করেন, অন্যদিকে প্যাকেজ পরিচালক আপনাকে একক সরঞ্জাম দিয়ে আপনার পুরো বিকাশের পরিবেশের জন্য এটি করতে দেয়।


কোনও বিল্ড এজেন্টের কোনও বিল্ড চলাকালীন প্যাকেজ ম্যানেজার ইনস্টল করার জন্য নির্ভরতা পুনরুদ্ধার করা ইত্যাদির জন্য কনফিগার করা এত সহজ নয়। একটি lib ফোল্ডার সঙ্গে কিছুই প্রয়োজন।
ইগনাসিও সোলার গার্সিয়া

4
আমি মনে করি এটি নির্ভর করে আপনি কোন ভাষা / গুলি ব্যবহার করছেন। রুবি বা মরিচের মতো ভাষার সাথে প্যাকেজ-পরিচালনা এত ভাল সংহত হয়েছে যে এটি ব্যবহার করা সম্পূর্ণ তুচ্ছ।
শান বার্টন

ভাল আমি বিস্তৃত মন্তব্য করার উদ্দেশ্যে বাদ দিয়েছিলাম তবে আমি বিশেষত নুগেট, সি # এবং ভিএসটিএস ক্লাউড সম্পর্কে বলছি।
ইগনাসিও সোলার গার্সিয়া

4
@ ইগনাসিও আপনি যে কোনও বিল্ড সিস্টেম ব্যবহার করছেন এটি নিউগেটগুলি পুনরুদ্ধার করতে একেবারে তুচ্ছ হিসাবে তৈরি করে না তা সঙ্গে সঙ্গে ফেলে দেওয়া উচিত। ভাগ্যক্রমে ভিএসটিএস এটিকে যত সহজেই এটি সহজ করে তোলে ( ডকুমেন্টেশন ): এখানে একটি নিউগেট পুনরুদ্ধার টাস্ক রয়েছে যা আপনি আপনার সমাধান ফাইলটিতে নির্দেশ করেছেন এবং নিউগেট উত্সগুলি কী ব্যবহার করবেন তা বলুন - একটি সাধারণ প্রকল্পের জন্য কেবল ব্যবহার করে nuget.orgঠিক করা হবে (ডিফল্ট টেম্পলেটটি হওয়া উচিত) ইতিমধ্যে এইভাবে সেট আপ করা হবে)।
ভু

3
@ বেন আরভিএম কোনও প্যাকেজ পরিচালক নয়। রুবির প্যাকেজ ম্যানেজার হলেন রুবিগেমস। আরভিএম নিজেই রুবির সংস্করণ পরিচালনা করে এবং তার জন্য আরবেভ আরও ভাল ...
সান বার্টন

5

এটা ঠিক মধ্যে পার্থক্য ব্যবহার লাইব্রেরি (liberal এর সংক্ষিপ্ত রূপ ডিরেক্টরি) , এবং তাদের ব্যবহার করে, বজায় রাখার মেটা-তথ্য (প্যাকেজ ম্যানেজার) । এ জাতীয় মেটা-তথ্য সংস্করণ নম্বরগুলি, লাইব্রেরি এবং এর মধ্যে নির্ভরশীলতা (ট্রানজিটিভ) সম্পর্কিত করে।

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

  • গ্রন্থাগারের সংস্করণ এবং নির্ভরতার সমস্যাগুলি সময়ের অপচয় হতে পারে।

এছাড়াও একটি ভাগ করা (স্থানীয়) সংগ্রহস্থলের সুবিধা রয়েছে, তাই বেশ কয়েকটি প্রকল্পের জন্য আমদানিকৃত লিবিগুলির অনুলিপিগুলি বজায় রাখা দরকার হয় না। যদি একটিতে 20 টি সাবমডিউলযুক্ত একটি প্রকল্প থাকে তবে তাদের মধ্যে কয়েকটি 40 টি বিজোড় নির্ভরতা রয়েছে।

  • আরও কাঠামো
  • গ্রন্থাগারের আরও ছাঁটাই
  • গ্রন্থাগারগুলি সম্পর্কে কোনও মানসিক সিদ্ধান্ত নেই

3

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

তবে অন্য সমস্ত কিছুর জন্য, এটি বিকাশকারী প্যাকেজ পরিচালকের ভূমিকা অনুমান করার মতো:

  • বিকাশকারীদের লাইব্রেরিগুলি ডাউনলোড করতে হবে (ইন্টারনেট প্রয়োজনীয়)
  • বিকাশকারীকে ম্যানুয়ালি নতুন প্রকাশের জন্য পরীক্ষা করতে হবে
  • ...

এবং আইএমএইচও, এটি কম জ্ঞানের প্রয়োজন, কারণ আপনাকে বাহ্যিক সরঞ্জামের ব্যবহার সম্পর্কে শিখতে হবে তবে গ্রন্থাগারগুলি (যেমন নির্ভরতা) সম্পর্কে কম।


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

@ হাল্ক যদি এটি ওপেন সোর্স লাইব্রেরি হয় তবে আপনি কেবল নিজের সংস্করণটি প্রকাশ করতে পারেন (এবং হওয়া উচিত) প্যাকেজ পরিচালকের কাছে এটি দৃশ্যমান করে তুলতে পারেন। হয় রক্ষণাবেক্ষণকারীদের সংশোধন করে, বা আপনার নিজের লাইব্রেরির কাঁটাচামচ বের করে।
বাম দিকের বাইরে

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

1

অন্যান্য প্রশ্ন দ্বারা আচ্ছাদিত না হওয়াতে আরও একটি সমস্যা রয়েছে: ভাগ করে নেওয়ার বিষয়টি।

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

আপনি যদি প্যাকেজ পরিচালক ব্যবহার করেন তবে এটি কেবল একবার (প্রতি সংস্করণ) লাইব্রেরি ইনস্টল করবে এবং ইতিমধ্যে এটির জন্য পথ সরবরাহ করবে।

পিএস: অবশ্যই, এই প্রো পেতে আপনার গতিশীল লিঙ্কেজ (বা আপনার ভাষায় অনুরূপ ফাংশন) প্রয়োজন।


-5

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

অনেক অপারেটিং সিস্টেমগুলি এমনভাবে ভাগ করা লাইব্রেরি বাস্তবায়িত করে যা ইউনিক্স এমএমএপি () এপিআইয়ের মতো ব্যবস্থার উপর নির্ভর করে - যা বোঝায় যে একটি লাইব্রেরি কেবল একই সংস্করণ নয় কেবল বাস্তবে একই ফাইল হতে হবে। এমন কোনও প্রোগ্রামের পুরো সুবিধা গ্রহণ করা অসম্ভব যেটি নিজের লাইব্রেরির সেট সেট করে।

মেমোরিটি অনেক সস্তা, এবং 90 এর দশকের তুলনায় গ্রন্থাগারের সংস্করণগুলিতে আরও বৈচিত্র্য দরকার বলে দেওয়া হয়েছে, এই যুক্তিটি আজকে এতটা ওজন বহন করে না।


4
এই প্রশ্নটি ভাগ করা লাইব্রেরিগুলি সম্পর্কে আলোচনা করে না তবে একটি লাইব্রেরি ফোল্ডারে নির্ভরতা।
ইগনাসিও সোলার গার্সিয়া

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