কীভাবে একজন মুক্ত-উত্স প্রকল্পে বাহ্যিক নির্ভরতা পরিচালনা করবে?


23

যখন কেউ একটি মুক্ত-উত্স প্রকল্প লিখেন এবং গুগল কোড বা গিটহাব ব্যবহার করেন এবং লুয়ার মতো একটি লাইব্রেরি ব্যবহার করতে চান, তখন কীভাবে এটি করা উচিত?

  • নির্ভরতা কি ভাণ্ডার অন্তর্ভুক্ত করা উচিত?
  • নির্ভরতাটি কি অন্য প্রকল্পের মতো একই বিল্ড স্ক্রিপ্টের মধ্যে থেকে তৈরি করা উচিত, না আলাদা বিল্ড স্ক্রিপ্ট থেকে?

প্রদত্ত যে সংকলনের আগে গ্রন্থাগারের ইনস্টলেশন প্রয়োজন হয় না।

উত্তর:


10

আমি সাব-মডিউলগুলিতে গিটের ডকুমেন্টেশনগুলি পড়ার জন্য উচ্চ প্রস্তাব দিচ্ছি ; এটি এই সমস্যাটিকে খুব সুরাহা করে, ধরে নিচ্ছে যে আপনার সমস্ত উত্স গিট ব্যবহার করে। যদি তা না করে তবে আপনি ইন্টিগ্রেশনের উদ্দেশ্যে সর্বদা গিট রেপো সেট আপ করতে পারেন। প্রচেষ্টা তুচ্ছ এবং পরিশোধের বিষয়টি উল্লেখযোগ্য।


1
সাবমডিউলগুলি বরং সাধারণ ও গিট নির্ভরতা-পরিচালনার দুর্বল প্রয়োগ। কমপক্ষে গিট সাবট্রিটি আরও ভাল পুনরাবৃত্তি
অলস ব্যাজার

4
-1 দয়া করে আপনার উত্তরে লিংকের বিশদ অন্তর্ভুক্ত করুন অন্যথায় লিঙ্কটি অদৃশ্য হয়ে গেলে উত্তরটি অকেজো। এখনকার মতো now দুর্ভাগ্যক্রমে, আমার কাছে
ডাউনটা নামক জোট

@ প্রডাস্টিক: আপনি লিঙ্কের পাঠ্যটি গুগল করলে, এটি আপনাকে সরাসরি নতুন পৃষ্ঠায় নিয়ে যায়; আমি কতটা তথ্যপূর্ণ হতে পারি তা নিশ্চিত নই।
ব্রায়ান এজ

1
দয়া করে স্ট্যাকওভারফ্লো.com / help / how - to - answer পড়ুন - বিশেষত "লিঙ্কগুলির জন্য প্রসঙ্গ সরবরাহ করুন" শীর্ষক বিভাগটি (উদ্ধৃতি: "টার্গেট সাইটটি অ্যাক্সেসযোগ্য না হলে বা স্থায়ীভাবে অফলাইনে চলে যাওয়ার ক্ষেত্রে সর্বদা একটি গুরুত্বপূর্ণ লিঙ্কের সর্বাধিক প্রাসঙ্গিক অংশটি উদ্ধৃত করুন) । ")
পূর্বাভাস

17

নির্ভরতা কি ভাণ্ডার অন্তর্ভুক্ত করা উচিত?

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

নির্ভরতাটি কি অন্য প্রকল্পের মতো একই বিল্ড স্ক্রিপ্টের মধ্যে থেকে তৈরি করা উচিত, না আলাদা বিল্ড স্ক্রিপ্ট থেকে?

উত্স থেকে সংকলন করার কোনও ভাল কারণ না থাকলে পূর্বনির্ধারিত সংস্করণগুলি ব্যবহার করুন।

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

সংক্ষেপে: একটি সম্পূর্ণ স্ট্যান্ডেলোন, সম্ভব হলে ওয়ার্কিং প্যাকেজ সরবরাহ করুন। এটি আপনার ব্যবহারকারীদের সবচেয়ে সুবিধা দেয়।


1
@tdammers: আমি জানি, যদি আপনার লিনাক্স সিস্টেমে সফ্টওয়্যার ইনস্টল করা হয় তবে প্যাকেজ ম্যানেজার আপনার জন্য সমস্ত কাজ করে does তবে এর জন্য একটি ইন্টারনেট সংযোগ প্রয়োজন এবং প্যাকেজটি অবশ্যই একটি নির্দিষ্ট ফর্ম্যাটে থাকতে হবে এবং আমি স্পষ্ট করে বলেছি যে অটোমেশন সরঞ্জামগুলি এতে সহায়তা করতে পারে। আপনি নেট নেট ওপেন সোর্স সরঞ্জামগুলির জন্য যেমন কোনও সিস্টেম ব্যবহার করতে পারবেন না। যদি আপনি এনএইচবারনেট বা ক্যাসল উইন্ডসর এর মতো সোর্সফোর্স সরঞ্জামগুলি একবার দেখে থাকেন তবে আপনি দেখতে পাবেন যে সমস্ত নির্ভরতা বাইনারি হিসাবে বিভক্ত। এবং এটিই একমাত্র যুক্তিযুক্ত জিনিস।
ফ্যালকন

1
@ সংযোজনকারীরা: যথাক্রমে, আমাকে আজ এখানে একটি লিনাক্স মেশিনে ওপেন অফিস এসডিকে ইনস্টল করতে হবে। যেহেতু প্যাকেজ ম্যানেজারের মাধ্যমে এসডিকে ইনস্টল করা যাবে না, তাই আমি ওয়েবসাইট থেকে আরপিএম ধরেছিলাম। "Rpm --install" চালানোর চেষ্টা করার সময় আমি যে বার্তাটি পেয়েছি তা কী বলে আপনি মনে করেন? ত্রুটি: ব্যর্থতা নির্ভরতা: ooobasis3.3-core01 এর দরকার ooobasis3.3-sdk-3.3.0-9567.x86_64 - ওহ জয়ে !
ফ্যালকন

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

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

2
@tdammers: একটি নির্দিষ্ট লিনাক্স সিস্টেমে কীভাবে একটি নির্দিষ্ট প্রোগ্রাম ইনস্টল করতে হবে তার ওয়েবে অগণিত টিউটোরিয়ালগুলি এই ইস্যুর সাক্ষী।
ফ্যালকন

3

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

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


এখন পর্যন্ত আপনার প্রশ্নের উত্তর হিসাবে এখনই আমি এটি পুনরায় পড়েছি, একই জিনিসটি করুন এবং কেবল উল্লেখ করুন যে আপনার প্রকল্পটি লুয়ার একটি পূর্বনির্ধারিত 1.3.5 সংস্করণ ব্যবহার করে।


1

নির্ভরতা কি ভাণ্ডার অন্তর্ভুক্ত করা উচিত?

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

নির্ভরতাটি কি অন্য প্রকল্পের মতো একই বিল্ড স্ক্রিপ্টের মধ্যে থেকে তৈরি করা উচিত, না আলাদা বিল্ড স্ক্রিপ্ট থেকে?

মোটেই কিছু যায় আসে না। আপনার প্রয়োজনীয়তা অনুসারে আপনি যে কোনও পদ্ধতি পছন্দ করতে পারেন (গতি / স্বচ্ছতা / পরিচালনা / ইত্যাদি)


0

একটি গ্রহের দোকান হওয়ায় আমরা আমাদের বিল্ড / এসেম্বল / মোতায়েন প্রক্রিয়াটি পরিচালনা করতে সবেমাত্র বাকমিনস্টার ব্যবহার শুরু করেছি ।

আমাদের প্রথম পর্যায়টি ছিল আমাদের বিদ্যমান বিদ্যমান সমস্ত গ্রন্থাগারগুলি খুঁজে বের করা এবং বাকমিনস্টারকে সঠিকগুলি বাস্তবায়নের যত্ন নিতে দেওয়া। এটি একটি আরও দ্রুত এবং ছোট স্থাপনার জন্য তোলে।

পরবর্তী পদক্ষেপটি আমাদের একচেটিয়া svnসংগ্রহস্থলকে একাধিক মডুলার gitসংগ্রহস্থলগুলিতে স্থানান্তরিত করবে ।

আমি জানি না gitযে বাক্মিনস্টার কীভাবে সাবমোডিয়ালগুলিতে (বা সেই বিষয়ে পারদর্শী সাবরেপোস) একীভূত করবেন, তবে এটি খুব ভাল যে বাকিমিনস্টার কোনও প্রদত্ত উপাদানটির জন্য ব্যবহৃত ভিসিএসের বিষয়ে অজ্ঞেয়বাদী।

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