সুরকার আপডেট এবং সুরকার ইনস্টল মধ্যে পার্থক্য কি?


উত্তর:


296

সুরকার আপডেট

composer update আপনার ডিপেন্সেন্সিসিগুলি যেমন নির্দিষ্ট করা আছে তে আপডেট করবে composer.json

উদাহরণস্বরূপ, যদি নির্ভরতা হিসাবে আপনার এই প্যাকেজটির প্রয়োজন হয়:

"mockery/mockery": "0.9.*",

এবং আপনি প্রকৃতপক্ষে 0.9.1প্যাকেজের সংস্করণ ইনস্টল করেছেন , দৌড়ানোর composer updateফলে এই প্যাকেজটির একটি আপগ্রেড ঘটবে (উদাহরণস্বরূপ 0.9.2, এটি ইতিমধ্যে প্রকাশিত হলে)

বিস্তারিতভাবে composer updateকরবে:

  • পড়ুন composer.json
  • ইনস্টল করা প্যাকেজগুলি সরান যাগুলিতে আর প্রয়োজন হয় না composer.json
  • আপনার প্রয়োজনীয় প্যাকেজগুলির সর্বশেষতম সংস্করণগুলির উপলভ্যতা পরীক্ষা করুন
  • আপনার প্যাকেজগুলির সর্বশেষতম সংস্করণ ইনস্টল করুন
  • আপডেট composer.lockইনস্টল করা প্যাকেজ সংস্করণ সংরক্ষণ করতে

সুরকার ইনস্টল

composer installকিছু আপডেট হবে না; এটি কেবলমাত্র composer.lockফাইলটিতে উল্লিখিত সমস্ত নির্ভরতা ইনস্টল করবে

বিস্তারিত:

  • composer.lockফাইল বিদ্যমান কিনা তা পরীক্ষা করুন (না থাকলে চালনা করুন composer-updateএবং এটি তৈরি করুন)
  • composer.lockফাইল পড়ুন
  • composer.lockফাইলটিতে নির্দিষ্ট প্যাকেজগুলি ইনস্টল করুন

কখন ইনস্টল করবেন এবং কখন আপডেট করবেন

  • composer updateআমাদের প্রকল্পের প্যাকেজগুলি composer.jsonফাইলটিতে যা নির্দিষ্ট করা হয়েছে তার অনুসারে আপগ্রেড করতে, বেশিরভাগই 'উন্নয়ন পর্বে' ব্যবহৃত হয় ,

  • composer install সুরকার আপডেট দ্বারা তৈরি করা কমপোজারলক ফাইলটিতে একই নির্ভরতা ব্যবহার করে একটি প্রোডাকশন সার্ভারে বা পরীক্ষামূলক পরিবেশে আমাদের অ্যাপ্লিকেশন ইনস্টল করতে প্রাথমিকভাবে 'স্থাপনা পর্বে' ব্যবহৃত হয়।


5
আমাদের কাছে কোনও লক ফাইল এবং কল সুরকার ইনস্টল না থাকলে কী হবে তা আপনি বর্ণনা করেন নি। সুন্দর বর্ণনা বিটিডব্লিউ।
ব্যবহারকারী 1954544

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

এবং composer global updateস্থানীয় সিস্টেমে আপনার গ্লোবাল ভান্ডারগুলিতে নির্ভরতা আপডেট করে ( COMPOSER_HOME
এনভ

1
তারপরে, আমি কীভাবে নিরাপদে একটি প্রোডাকশন সার্ভারে একটি নির্দিষ্ট প্যাকেজ আপডেট করতে পারি?
মিশেল

@ মিশেল আপনার প্রথমে composer updateআপনার স্থানীয় সিস্টেমে চালিত হওয়া উচিত এবং আপনার অ্যাপ্লিকেশনটি পরীক্ষা করা উচিত, তারপরে আপনার প্রোডাকশন সার্ভারে কম্পোজার.লক আপলোড করুন এবং চালানcomposer install
আমিন শোজায়ে

58

আপনি যখন চালনা composer installকরবেন তখন এটি একটি লক ফাইল সন্ধান করবে এবং এতে থাকা যা কিছু আছে তা ইনস্টল করবে, যদি এটি কোনও সন্ধান না করে তবে এটি পড়বে composer.json, তার নির্ভরতা ইনস্টল করবে এবং একটি লকফিল তৈরি করবে।

আপনি যখন চালান composer updateএটি সহজভাবে পড়া composer.json, নির্ভরতা ইনস্টল করে এবং লকফিল আপডেট করে (বা একটি নতুন লকফিল তৈরি করে)।


23

composer install

  1. যদি composer.lockবিদ্যমান থাকে।
    • প্রক্রিয়া এবং composer.lockফাইল থেকে নির্ভরতা ইনস্টল করে ।
  2. তাহলে composer.lockকী না বিদ্যমান।
    • প্রক্রিয়া প্যাকেজ থেকে ইনস্টল composer.json
    • তৈরি করা হয় composer.lockইনস্টল করা প্যাকেজ উপর ভিত্তি করে ফাইল।

অনুসারে composer help install:

ইনস্টল কমান্ডটি composer.lockবর্তমান ডিরেক্টরি থেকে ফাইলটি পড়ে , এটি প্রক্রিয়া করে এবং ফাইলটিতে বর্ণিত সমস্ত লাইব্রেরি এবং নির্ভরতা ডাউনলোড করে ইনস্টল করে s যদি ফাইলটি না থাকে তবে এটি অনুসন্ধান করবে composer.jsonএবং একই কাজ করবে।


composer update

  1. composer.jsonফাইল থেকে প্রক্রিয়া নির্ভরতা (ইনস্টল, আপডেট এবং অপসারণ)।
  2. composer.lockপরিবর্তনগুলি অনুসারে ফাইল তৈরি করে বা আপডেট করে ।

অনুসারে composer help update:

আপডেট কমান্ড composer.jsonফাইলটি বর্তমান ডিরেক্টরি থেকে পড়ে , এটি প্রক্রিয়া করে এবং আপডেট করে, সমস্ত নির্ভরতা সরিয়ে বা ইনস্টল করে।


আরও দেখুন: সুরকার: লক ফাইল সম্পর্কে এটি সমস্ত


সুরকার ইনস্টল পয়েন্ট 3 এর কোনও অর্থ নেই। যদি লক ফাইলটি ইতিমধ্যে বিদ্যমান থাকে তবে এটি কেবল এটি পড়বে এবং এটি কখনই "আপডেট" হবে না। এটি কেবল তখনই তৈরি করা হয় যদি এটি এখনও বিদ্যমান না থাকে ..
বেন

@ আমি এই বিষয়গুলি স্পষ্ট করে দিয়েছি, এখনই যদি সেগুলি বোঝা যায় তবে আমাকে জানান।
কেনারব

3

মধ্যে শ্রেষ্ঠ পার্থক্য composer updateএবংcomposer install

সুরকার ইনস্টল

নির্ভরতা যুক্ত করতে আপনার এটিকে রচনা মেশিন.জেসন ফাইলটিতে ম্যানুয়ালি যুক্ত করতে হবে।

কমপোজারলক ফাইল যদি বিদ্যমান থাকে তবে এই ফাইলটিতে যা নির্দিষ্ট করা হয়েছে ঠিক তা ইনস্টল করুন

  • অন্যথায় কোন নির্ভরতাগুলি ইনস্টল করা দরকার তা অনুসন্ধান করার জন্য composer.json ফাইলটি পড়ুন
  • প্রকল্পের তথ্যের সাথে রচনা লিখুন (ইনস্টল করা নির্ভরতা)

এই আদেশ দিয়ে কোনও উপাদান আপডেট করা হবে না।

সুরকার আপডেট

নির্ভরতা যুক্ত করতে বা অপসারণ করতে আপনাকে এটিকে ম্যানুয়ালি কমপোজার জেএসন ফাইলটিতে যুক্ত করতে হবে

  • রচনা ফাইলটি উপেক্ষা করা হবে be
  • composer.json ফাইল নির্ভরতা ইনস্টল এবং আপডেট করা হবে (কোনও নির্ভরতা ইনস্টল না করা থাকলে এটি ডাউনলোড করা হবে)

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

সুরকার প্রয়োজন

উদাহরণস্বরূপ, যদি আমরা কমান্ড লাইনের সাথে নির্ভরতা যুক্ত করতে চাই আমরা কেবল কার্যকর করব

composer require twig/twig

  • composer.json ফাইলটি স্বয়ংক্রিয়ভাবে পরিবর্তিত হবে এবং নতুন নির্ভরতা যুক্ত হবে
  • নির্ভরতা প্রকল্পে ডাউনলোড করা হবে

সুরকার অপসারণ

আপনি যদি অব্যবহৃত নির্ভরতা অপসারণ করতে চান তবে আমরা সহজভাবে সম্পাদন করব:

composer remove twig/twig --update-with-dependencies

  • টুইগ তার সমস্ত নির্ভরতা সহ সরানো হবে

1

সুরকার ইনস্টল

if(composer.lock existed){
   installs dependency with EXACT version in composer.lock file
} else {
   installs dependency with LATEST version in composer.json
   generate the composer.lock file
}

সুরকার আপডেট

composer update = remove composer.lock -> composer install

আমাদের 2 কমান্ডের প্রয়োজন কেন। আমি মনে করি এটি কমপোজারলক দ্বারা ব্যাখ্যা করতে পারে।

কল্পনা করুন, আমরা না আছে composer.lockএবং composer.json, একটি নির্ভরতা হয় "monolog/monolog": "1.0.*"বা "monolog/monolog": "^1.0"
তারপরে, এটি কিছু ক্ষেত্রে থাকবে

  • আমরা বর্তমান নির্ভরশীলতা সংস্করণ (উদা: ১.০.০) এর সাথে আজ ভালভাবে কাজ করছি তবে কয়েক মাস পরে, নির্ভরতা আপডেট (যেমন: ১.০.১) এবং এর কিছুটা বাগ থাকতে পারে
  • অন্য দলের সদস্যের যদি composer installভিন্ন সময়ে চালানো হয় তবে তাদের নির্ভরতা সংস্করণ থাকতে পারে ।

যদি আমরা সর্বদা composer.jsonযেমন একটি নির্ভুল সংস্করণ ব্যবহার করি তবে কী হবে "monolog/monolog": "1.0.1"?
আমাদের এখনও প্রয়োজন composer.lockকারণ composer.jsonকেবলমাত্র আপনার নির্ভরতার মূল সংস্করণটিই ট্র্যাক করে এটি নির্ভরতার নির্ভরতাগুলির সংস্করণটি ট্র্যাক করতে পারে না।

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

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

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