একাধিক প্যাকেজ পরিচালনা সিস্টেম সম্পর্কিত ভাল অনুশীলন


14

কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ তাদের নিজস্ব প্যাকেজ ম্যানেজমেন্ট সিস্টেমের সাথে আসে, উদাহরণস্বরূপ, আর এর ক্ষেত্রে বিল্ট-ইন install.packagesকমান্ড সিআরএএন সংগ্রহস্থল থেকে ইনস্টল করে এবং নির্ভরতা নিয়ে কাজ করে।

সমান্তরালভাবে, ওএস তাদের নিজস্ব প্যাকেজ ম্যানেজমেন্ট সিস্টেমগুলি নিয়ে আসে, যেমন aptডেবিয়ান-ভিত্তিক লিনাক্স বিতরণের জন্য আদেশ হিসাবে।

আগেই ঠিক করে রেখেছিলাম যে গ্যারান্টি বিতরণের প্যাকেজ ম্যানেজার ব্যবহার, যাতে যে আমার সিস্টেমে সবকিছু সামঞ্জস্যপূর্ণ হবে (দেখুন ভাল ছিল /programming//a/31293955/1878788 )।

তবে শীঘ্রই এমন একটি দিন এসেছিল যখন আমার এমন জিনিসগুলির প্রয়োজন ছিল যা এইভাবে উপলভ্য ছিল না। উদাহরণস্বরূপ, একটি বায়োইনফরম্যাটিক্স প্রোগ্রাম যা আমার বিতরণ দ্বারা প্যাকেজ করা হয়নি আর এর কিছু নির্দিষ্ট সংস্করণ প্রয়োজন হবে এটি ঘটেছে যে প্রোগ্রামটি "বায়োকন্ডাক্টর" নামে একটি প্রকল্পের মাধ্যমে উপলব্ধ ছিল, যার লক্ষ্য ছিল বায়োইনফর্ম্যাটিক্সের জন্য আর প্যাকেজ সরবরাহ করা, প্যাকেজগুলি নিশ্চিত করে যে একে অপরের সাথে সামঞ্জস্যপূর্ণ হন ( https://www.bioconductor.org/install/#why-biocLite দেখুন )।

সুতরাং আমি biocLiteআরএসের জন্য আমার ওএস প্যাকেজিং ম্যানেজমেন্ট সিস্টেমটি ব্যবহার না করার এবং বায়ো কন্ডাক্টর প্রকল্পের দ্বারা প্রদত্ত কমান্ডের মাধ্যমে সবকিছু ইনস্টল করার সিদ্ধান্ত নিয়েছি।

এই দৃষ্টিভঙ্গি কিছু সময়ের জন্য সুচারুভাবে চলল, যতক্ষণ না আমি আবিষ্কার করেছি যে সুসংগত, স্বাস্থ্যকর এবং সহজেই পুনর্গঠনযোগ্য বায়োইনফরম্যাটিক বাস্তুতন্ত্র বজায় রাখতে কিছু লোক কনডা প্যাকেজ পরিচালনা ব্যবস্থা ব্যবহার করার সিদ্ধান্ত নিয়েছিল to "বায়োকোন্ডা" নামে পরিচিত এই প্রকল্পটি কেবল আর প্যাকেজই সরবরাহ করে না, তবে বিভিন্ন সংস্করণ থেকে সহজেই সংস্করণগুলিতে স্যুইচ করার সম্ভাবনা রয়েছে এবং এটিও ( https://bioconda.github.io/ দেখুন ) provides

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

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

সম্পাদনা (14/09/2017) : অন্য একটি বিকল্প হিসাবে আমি বিবেচিত হ'ল গুইস বা নিক্সের মতো বিকল্প ওএস-স্তরের প্যাকেজ পরিচালকদের ব্যবহার করা ।


1
ফেডোরা প্রকল্পের প্যাকেজিং আর প্রোগ্রামের জন্য নির্দেশিকা রয়েছে । Fedora, RHEL এবং CentOS এ আরপিএম প্যাকেজগুলি সাধারণত এগুলি অনুসরণ করবে।
মাইকেল হ্যাম্পটন

উত্তর:


13

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

সিস্টেম প্যাকেজগুলি কেবলমাত্র সিস্টেমের প্রয়োজনে ব্যবহৃত হয়।


0

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

সুতরাং আমি বলব, সেক্ষেত্রে সর্বোত্তম উপায় হ'ল ভাষার অন্তর্নির্মিত কার্যাদি। যদি আর-ক্রিয়েটাররা প্যাকেজ পরিচালনার জন্য অফিসিয়াল সরঞ্জাম তৈরি করে, তবে তা দুর্দান্ত হবে তবে আন-অফিসিয়াল সরঞ্জাম ব্যবহার করা কিছুটা ঝুঁকিপূর্ণ।

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