क्या उनके स्थापित निर्देशिका के साथ चॉकलेट पैकेजों को सूचीबद्ध करने का एक तरीका है?


56

आदेश

choco list -lo

स्थापित पैकेजों को सूचीबद्ध करता है। लेकिन मैं कैसे निर्धारित करूं कि एक चॉकलेट एप्लिकेशन कहां स्थापित हो? अब तक मुझे उनके लिए शिकार करना था।

कुछ उदाहरण:

  • NUnit को जाता है Program Files (x86)
  • WGET को जाता है %ALLUSERSPROFILE%\chocolatey\bin and %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools
  • ConsoleZ को गया %ALLUSERSPROFILE%\chocolatey\lib\[Package Name]\tools

क्या उस पर कोई झंडा है choco listजो मुझे बताएगा कि वे कहां गए थे? ChocolateyGUI ऐसा करने के लिए प्रतीत नहीं होता है।

डेबियन की तरह की तरह:

dpkg-query

या रेडहैट का:

rpm -ql [package-name]

या यम का प्रतिक्रमण:

repoquery --list [package-name]

होमब्रे :

brew list [package-name]

जवाबों:


26

वर्तमान में, आप जो पूछ रहे हैं, उसे करने का कोई तरीका नहीं है।

प्रत्येक चॉकलेटरी पैकेज इस अर्थ में अद्वितीय है कि यह एक MSI या EXE के आसपास एक आवरण हो सकता है, या यह किसी ज्ञात स्थान अर्थात C: \ Tools के लिए संपीड़ित संग्रह का एक साधारण निष्कर्षण हो सकता है, या यह एक PowerShell मॉड्यूल हो सकता है PSModulePath का अर्क, या यह पूरी तरह से कस्टम हो सकता है।

यह विंडोज इकोसिस्टम का एक साइड इफेक्ट है, जहां एक ही काम करने के कई तरीके हैं। कम से कम उन सभी पैकेजों को खोजने के लिए जो एक जगह पर आप चाहते हैं, मैकेनिज्म प्रदान करके चॉकलेटी कुछ इस तरह का आदेश लाने की कोशिश कर रही है, लेकिन केवल इतना चॉकलेटी ही कर सकती है।

यदि आप चीजों को पूरी तरह से अलग तरीके से देखते हैं, तो निम्नलिखित का उपयोग करके एक चॉकलेट पैकेज में अधिष्ठापन तर्क पारित करना संभव है:

https://github.com/chocolatey/chocolatey/wiki/CommandsInstall#installarguments-optional---v09813

यह, सिद्धांत रूप में, जहाँ फ़ाइलों को स्थापित करने के लिए MSI या EXE आधारित चॉकलेटरी पैकेज के इंस्टॉलेशन तर्कों को बदल सकते हैं। आप इस दृष्टिकोण का एक उदाहरण यहां देख सकते हैं:

http://chocolatey.org/packages/VisualStudio2013Ultimate

हालाँकि, यह दृष्टिकोण सीमित है। हर कोई मैट की तरह संभव संस्थापन तर्कों का उल्लेख करने के लिए समय नहीं लेता है, और यह संस्थापन तर्कों को निकालने के लिए काफी जटिल प्रक्रिया है जिसे एमएसआई या ईएक्सई में भेजा जाना संभव है।

ChocolateyGUI के संदर्भ में, और उस उत्पाद के वर्तमान अनुरक्षक के रूप में, मैं आपको बता सकता हूं कि यह इस क्षेत्र में चालाक कुछ भी नहीं करता है :-)। यह केवल कमांड लाइन टूल के आसपास एक आवरण है जो चॉकलेटी प्रदान करता है, और इसका उद्देश्य उन लोगों के लिए आसान बनाना है जो कमांड लाइन का उपयोग करना पसंद नहीं करते हैं।


2
चॉकलेट के रूप में समाधान है पैकेज के लिए शिम फ़ाइल उत्पन्न करता है जो निष्पादन योग्य मार्ग रखता है और लक्ष्य को उजागर करता है यदि --shimgen-noopस्विच के साथ कहा जाता है , तो मेरा उत्तर देखें
maoizm

8
लगभग 3 साल बाद, यह अभी भी वह चीज है जो मुझे चोको के बारे में सबसे अधिक निराशाजनक लगती है: "एक चीज़ स्थापित की। अब .... यह कहाँ है?"
बेन कॉलिन्स

@BenCollins मैं मान रहा हूं कि आपने हाल ही में चॉकलेट को अपग्रेड किया है? अब यह रिपोर्ट करता है कि यह चीजें कहां स्थापित करता है - और यह अब लगभग एक साल से है (0.9.10 के बाद से)। github.com/chatalogy/choco/issues/689
ferventcoder

1
"सॉफ्टवेयर '$ टूल्सडिर' में स्थापित है" जी, धन्यवाद चॉकलेटी।
ब्लूबेन

1
हो सकता है कि कुछ चॉकलेटी डायरेक्टरी में इंस्टॉलेशन लॉग को स्टोर किया जाए और यूजर्स को पैकेज नाम से इसे फिर से प्राप्त करने की क्षमता दी जाए ...
Marcello Romani

4

यदि Chocolatey पैकेज के लिए एक शिम बनाता है, उदाहरण के लिए, yourprogram.exeआप निम्नलिखित Powershell one-liner द्वारा निष्पादन योग्य फ़ाइल को पथ बता सकते हैं:

(yourprogram --shimgen-noop | sls "path to executable:" ) -split "path to executable:" | % {$_.Trim() }

यह तभी काम करता है जब shim .exe फ़ाइल हो। यह बहुत सामान्य है, हालांकि कुछ पैकेज .ps1, .cmd या .bat फाइलें भी उत्पन्न करते हैं। इन दुर्लभ मामलों में यह नुस्खा काम नहीं करेगा।


4

दुर्भाग्य से, नहीं कि मुझे पता है। मेरा मानना ​​है कि स्थापित निर्देशिका पैकेज द्वारा ही निर्धारित की जाती है। यह .nuspec फ़ाइल में परिभाषित नहीं है, और मैं कहीं भी नहीं देख सकता कि यह स्पष्ट रूप से चॉकलेट स्रोत कोड में परिभाषित किया गया है।

स्रोत कोड: https://github.com/chatalogy/chmilly


यह सही है। को देखते हुए एक पैकेज बनाने के लिये दस्तावेज आप देखेंगे कि सबसे संकुल के लिए मूल सॉफ्टवेयर निर्माता द्वारा बनाई गई MSI इंस्टॉलर स्थापना पथ को परिभाषित करता है। चॉकलेट को पता नहीं है कि एमएसआई कहां फाइलें लगाती है।
हैवीड

1
cinst notepadplusplus.install -ia "'/D=E:\SomeDirectory\npp'"

यदि यह एक MSI था, तो आमतौर पर आप पास कर सकते थे -ia:

INSTALLDIR=""E:\SomeDirectory\npp""

 

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