সুরকারকে কিভাবে একটি লাইব্রেরি পুনরায় ইনস্টল করতে বাধ্য করবেন?


102

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

আমি কীভাবে সুরকারকে একটি নির্দিষ্ট কাঠামো পুনরায় ইনস্টল করতে বাধ্য করতে পারি যাতে আমি নতুন করে-সংশোধিত-অনুলিপিটি পেতে পারি?

PS: দয়া করে .gitignore ফাইলটি অপসারণের প্রস্তাব করবেন না কারণ এটি কোনও কারণে রয়েছে; এটি আমার তৃতীয় পক্ষের লাইব্রেরিগুলিকে আমার অ্যাপের ভাণ্ডারে প্রবেশ করতে বাধা দেয়। আমি একটি স্বয়ংক্রিয় স্থাপনার সময় সর্বদা এগুলি ইনস্টল করতে পারি।


4
একটি বিকল্প
হ'ল কমপোজারলক

উত্তর:


50

--prefer-sourceভিসিএস তথ্য (যদি কোনও উপলভ্য থাকে) দিয়ে বাহ্যিক প্যাকেজগুলি চেকআউট করতে আপনি সুরকারের জন্য পতাকা ব্যবহার করতে পারেন । আপনি কেবল আসল অবস্থায় ফিরে যেতে পারেন। আপনি যদি composer updateকমান্ড রচয়িতা জারি করেন তবে স্থানীয়ভাবে আপনার করা কোনও পরিবর্তন সনাক্ত করে এবং আপনি সেগুলি বাতিল করতে চান কিনা তা জিজ্ঞাসা করবে।

আপনার .gitignore ফাইলটি আপনার মূল প্রকল্পের সাথে সম্পর্কিত (জেডএফ 2 কঙ্কাল) এবং এটি বিক্রেতাদেরকে (যেখানে আপনার তৃতীয় পক্ষের লিবস রয়েছে) আপনার নিজস্ব ভিসিএস থেকে প্রতিরোধ করতে বাধা দেয়। উপেক্ষা করা ফাইলটি আপনার বিক্রেতার গিট রেপোর সাথে সম্পর্কিত নয়।


7
প্রাথমিকভাবে আপনার-পূর্ব-উত্সের পরামর্শটি কার্যকর হয়নি যতক্ষণ না আমি বুঝতে পেরেছিলাম যে আমার ইচ্ছা অনুযায়ী কাজ করার জন্য আমাকে সমস্ত লাইব্রেরি সরিয়ে ফেলা এবং পুনরায় ইনস্টল করতে হবে এবং তারপরে composer status -vপরিবর্তনগুলি দিয়ে আমাকে তথ্য দিয়েছিল।
জুলিয়ান

172

শুধু আপনার বিক্রেতাদের ফোল্ডার সাফ করুন

rm -rf vendor/*

@ লেনিক্স, তাদের আনলক করুন।
হাফস্টপ

8
আমার এমন কেস হয়েছে যেখানে স্থানীয় ক্যাশেটি দূষিত হয়েছিল, তাই বিক্রেতার ডিরেক্টরিটি মুছার পরেও আমি একটি ভাঙা নির্ভরতা পুনরায় ইনস্টল করতে থাকি। composer clearcacheযেমন ক্ষেত্রে একটি ভাল সংযোজন।
Okdewit

4
এটি মনে হয় খুব র‌্যাডিকাল পদ্ধতির মতো বিবেচনা করে যে সুরকারকে তখন সমস্ত প্যাকেজ পুনরায় ইনস্টল করতে হবে যখন ওপিতে কেবল একটি প্যাকেজ পুনরায় ইনস্টল করা দরকার। composer require vendor/packageওপি যা চায় তা করবে এবং কম সময়েও। আমি কিছুটা অবাক হয়েছি যে অনেকে এই উত্তরটি আপ-ভোট দিয়েছেন।
ফ্রেডেরিক্জেহ

সুরকার ক্লিয়ারচে যদি কাজ না করে তবে আপনি / home/mittedusername +/.cache ডিরেক্টরি মুছতে পারেন। এটি পুনরায় ডাউনলোড করতে বাধ্য করবে। আপনি যদি প্যাকেগিস্ট.কম পোস্টার.অর্গ ছাড়াও প্রাইভেট কম্পোজার প্যাকেজিস্ট ব্যবহার করেন এবং কেউ নতুন ট্যাগ যুক্ত না করে পরিবর্তন করেন তবে দরকারী।
নীল ডেভিস

4
সুরকার অগত্যা কেবলমাত্র বিক্রেতা ডিরেক্টরিতে ইনস্টল করে না, সুতরাং ভারী হাতের পদ্ধতির হিসাবেও এটি সমস্ত পরিস্থিতিতে কাজ করে না।
ummdorian

39

আমি vendor/ডিরেক্টরিতে থাকা সমস্ত প্যাকেজ মুছতে চাইনি , সুতরাং আমি এটি কীভাবে করেছি:

  1. rm -rf vendor/package-i-messed-up
  2. composer install আবার

4
বা 'সুরকারের জন্য বিক্রেতা / প্যাকেজ-ই-
মেসড

4
যদি এটি কাজ না করে, composer clearcacheযদি কোনও কারণে ক্যাশেটি দূষিত হয় তবে আপনি সম্ভবত প্রথমে দৌড়াবেন।
শিম শিন

27

আমি কি করেছিলাম:

  1. নির্দিষ্ট গ্রন্থাগারের ফোল্ডার মোছা হয়েছে
  2. composer update --prefer-source vendor/library-name

এটি গিট রেপো সহ লাইব্রেরিটি আবার নিয়ে আসে


যদি এটি কাজ না করে, composer clearcacheযদি কোনও কারণে ক্যাশেটি দূষিত হয় তবে আপনি সম্ভবত প্রথমে দৌড়াবেন।
শিম শিন

9

নির্ভরতা পুনরায় ইনস্টল করুন। লিনাক্সের পূর্বে ভেন্ডার ফোল্ডারটি (ম্যানুয়ালি) অথবা rm কমান্ডের মাধ্যমে (যদি আপনি প্রকল্প ফোল্ডারে থাকেন তবে অবশ্যই) সরান:

rm -rf vendor/

composer update -v

https://www.dev-metal.com/composer-problems-try-full-reset/


3

ব্যবহারকারীর @Aaracrr অন্য উত্তরে একটি মন্তব্যে উল্লেখ করেছেন যেহেতু সর্বোত্তম উত্তর হ'ল একই সংস্করণ সীমাবদ্ধতার সাথে প্যাকেজটির পুনরায় প্রয়োজন।

অর্থাত্

composer require vendor/package

বা একটি সংস্করণ সীমাবদ্ধতা নির্দিষ্ট করে

composer require vendor/package:^1.0.0

2

কিছু কারণে পুনরায় ইনস্টল করার জন্য কেউই সুস্পষ্ট এবং সর্বাধিক সোজা অগ্রসর উপায়টির পরামর্শ দেয়নি:

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