किसी लाइब्रेरी को फिर से स्थापित करने के लिए संगीतकार को मजबूर कैसे करें?


97

मैं ZF2 कंकाल ऐप का उपयोग कर रहा हूं और इसमें एक .gitignore है जो बाहरी पुस्तकालयों को गिट में आने से रोकता है। डीबग करना मुझे पसंद है कि चीजें कैसे काम करती हैं, यह जानने के लिए पुस्तकालयों के स्रोत में यहां और वहां सामान बदलना पसंद करते हैं। अगर ये संस्करण नियंत्रित होते हैं तो उन्हें वापस उनकी मूल स्थिति में वापस लाना बहुत आसान होगा।

मैं एक विशेष ढांचे को फिर से स्थापित करने के लिए संगीतकार को कैसे मजबूर कर सकता हूं ताकि मुझे एक नया-अनमॉडिफाइड-कॉपी फिर से मिल सके?

पुनश्च: कृपया .gitignore फ़ाइल को हटाने का सुझाव न दें क्योंकि यह एक कारण है; यह मेरे तीसरे पक्ष के पुस्तकालयों को मेरे ऐप के भंडार में जाने से रोकता है। मैं हमेशा एक स्वचालित तैनाती के दौरान उन्हें स्थापित कर सकता हूं।


2
एक विकल्प यह होगा कि कंपोज़र को हटा दें। फिर कंपोज़र इंस्टॉल करें
vascowhite

जवाबों:


48

आप --prefer-sourceVCS जानकारी (यदि उपलब्ध हो) के साथ बाहरी पैकेजों की जांच करने के लिए संगीतकार के लिए ध्वज का उपयोग कर सकते हैं । आप बस मूल स्थिति में वापस आ सकते हैं। इसके अलावा अगर आप composer updateकमांड कंपोजर जारी करते हैं, तो आप स्थानीय स्तर पर किए गए किसी भी बदलाव का पता लगाएंगे और पूछेंगे कि क्या आप उन्हें छोड़ना चाहते हैं।

आपकी .itignore फाइल आपकी रूट परियोजना (ZF2 कंकाल) से संबंधित है और यह विक्रेता को dir (जहाँ आपकी तीसरी पार्टी के लिबास हैं) को आपके अपने VCS के लिए प्रतिबद्ध करने से रोकती है। अनदेखा फ़ाइल आपके विक्रेताओं के गिट रेपो के लिए असंबंधित है।


7
प्रारंभ में आपका -प्रश्न-स्रोत सुझाव तब तक काम नहीं करता था जब तक मुझे एहसास नहीं हुआ था कि मुझे इसके लिए काम करने के लिए सभी पुस्तकालयों को निकालना और पुन: स्थापित करना है जैसा कि मैंने इरादा किया था और फिर composer status -vमुझे परिवर्तनों के साथ जानकारी दी।
जूलियन

167

बस अपने विक्रेताओं फ़ोल्डर साफ़ करें

rm -rf vendor/*

@ फोनिक्स, उन्हें अनलॉक करें।
हाफस्टॉप

7
मेरे पास ऐसे मामले हैं जहां स्थानीय कैश को दूषित किया गया था, इसलिए विक्रेता निर्देशिका को हटाने के बाद भी मैं एक टूटी हुई निर्भरता को पुनर्स्थापित करता रहा। composer clearcacheऐसे मामलों में एक अच्छा जोड़ है।
ओकेडिट

3
यह एक बहुत ही कट्टरपंथी दृष्टिकोण की तरह लगता है कि संगीतकार को तब सभी पैकेजों को पुनर्स्थापित करने की आवश्यकता होती है, जब ओपी को केवल एक पैकेज की आवश्यकता होती है। composer require vendor/packageओपी क्या चाहता है और कम समय में भी करेगा। मैं थोड़ा हैरान हूं कि इतने लोगों ने इस जवाब को वोट दिया है।
frederickjh

यदि संगीतकार क्लीचे काम नहीं करता है तो आप /home/ Isusernameiding/.cache निर्देशिका को हटा सकते हैं। वह फिर से डाउनलोड करने के लिए मजबूर करेगा। उपयोगी है यदि आप packagist.composer.org के अलावा निजी संगीतकार पैकैगिस्ट का उपयोग करते हैं, और कोई नया टैग जोड़े बिना परिवर्तन करता है।
नील डेविस

2
संगीतकार आवश्यक रूप से केवल विक्रेता निर्देशिका में स्थापित नहीं होता है, इसलिए भारी-भरकम दृष्टिकोण के रूप में भी यह सभी स्थितियों में काम नहीं करता है।
ummdorian

36

मैं vendor/निर्देशिका के सभी पैकेज हटाना नहीं चाहता था , इसलिए यहां बताया गया है कि मैंने यह कैसे किया:

  1. rm -rf vendor/package-i-messed-up
  2. composer install फिर

4
या 'संगीतकार की आवश्यकता होती है विक्रेता / पैकेज-ए-गड़बड़-अप' भी अच्छा होगा
aarcarr

1
यदि वह काम नहीं करता है, तो आप composer clearcacheपहले किसी कारण से कैश के दूषित होने की स्थिति में दौड़ सकते हैं ।
बीन

26

मैंने क्या किया:

  1. उस विशेष लाइब्रेरी के फ़ोल्डर को हटा दिया गया
  2. composer update --prefer-source vendor/library-name

यह फिर से git रेपो के साथ पुस्तकालय लाता है


यदि वह काम नहीं करता है, तो आप composer clearcacheपहले किसी कारण से कैश के दूषित होने की स्थिति में दौड़ सकते हैं ।
को बीन

8

निर्भरता को पुनर्स्थापित करें। विक्रेता फ़ोल्डर (मैन्युअल रूप से) या आरएम कमांड के माध्यम से निकालें (यदि आप प्रोजेक्ट फ़ोल्डर में हैं, तो सुनिश्चित करें कि इससे पहले) लिनक्स पर:

rm -rf vendor/

composer update -v

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


3

जैसा कि उपयोगकर्ता @ARacrr ने एक अन्य उत्तर पर एक टिप्पणी में कहा था कि संभवतः सबसे अच्छा उत्तर एक ही संस्करण बाधा के साथ पैकेज की फिर से आवश्यकता है।

अर्थात।

composer require vendor/package

या एक संस्करण बाधा निर्दिष्ट

composer require vendor/package:^1.0.0

1

किसी कारण से किसी ने फिर से स्थापित करने के लिए स्पष्ट और सबसे सीधे आगे के रास्ते का सुझाव नहीं दिया:

> composer remove vendor-name/package-name && composer vendor-name/package-name
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.