क्या सिग्विन पैकेज में apt-get
डेबियन yum
पर या रेडहैट पर समान उपकरण है जो मुझे कमांड लाइन से घटकों को स्थापित करने की अनुमति देता है?
क्या सिग्विन पैकेज में apt-get
डेबियन yum
पर या रेडहैट पर समान उपकरण है जो मुझे कमांड लाइन से घटकों को स्थापित करने की अनुमति देता है?
जवाबों:
विशेष रूप से 'setup.exe' इंस्टॉलर में कोई उपकरण नहीं है जो apt-get की कार्यक्षमता प्रदान करता है। हालांकि, साइगविन के लिए एक कमांड-लाइन पैकेज इंस्टॉलर है जिसे अलग से डाउनलोड किया जा सकता है, लेकिन यह पूरी तरह से स्थिर नहीं है और वर्कअराउंड पर निर्भर करता है।
apt-cyg: http://github.com/transcode-open/apt-cyg
ज्ञात समस्याओं को देखने के लिए प्रोजेक्ट के लिए समस्याएँ टैब देखें।
setup-x86.exe -q -P packagename1,packagename2
। के रूप में apt-get
या यहाँ तक कि फैंसी के रूप में नहीं , apt-cyg
लेकिन यह ज्यादातर मामलों में चाल करता है। और आप इसे cmd.exe
(सिग्विन को बंद करने के बाद) से भी चला सकते हैं ।
सिगविन का सेटअप कमांड-लाइन से पैकेज स्थापित करने के लिए कमांड-लाइन तर्क स्वीकार करता है ।
जैसे setup-x86.exe -q -P packagename1,packagename2
किसी भी जीयूआई बातचीत ( 'पहुंच से बाहर सेटअप मोड') के बिना पैकेज इंस्टॉल करने।
(ध्यान दें कि आपको उपयुक्त setup-x86.exe
या setup-x86_64.exe
उपयुक्त उपयोग करने की आवश्यकता है ।)
पैकेज सूची के लिए http://cygwin.com/packages/ देखें ।
setup-x86_64 --packages="openssh,python"
अधिक सुविधाजनक इंस्टॉलर के लिए, आप apt-cyg
अपने पैकेज मैनेजर के रूप में उपयोग करना चाह सकते हैं
। इसके सिंटैक्स के समान है
apt-get
, जो एक प्लस है। इसके लिए, उपरोक्त चरणों का पालन करें और फिर निम्न चरणों के लिए सिग्विन बैश का उपयोग करें
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin
अब वह apt-cyg
स्थापित है। यहां कुछ पैकेजों को स्थापित करने के कुछ उदाहरण दिए गए हैं
apt-cyg install nano
apt-cyg install git
apt-cyg install ca-certificates
wget
और यह apt-cyg
समस्याओं के बिना डाउनलोड करता है। 404 किस बिंदु पर दिखाई देता है?
कुछ स्क्रिप्ट मौजूद हैं, जिन्हें साइगविन के लिए सरल पैकेज प्रबंधकों के रूप में इस्तेमाल किया जा सकता है। लेकिन यह जानना महत्वपूर्ण है, कि वे हमेशा सीमित रहेंगे , क्योंकि ... ईएचएम ... विंडोज।
पैकेजों को स्थापित करना या हटाना ठीक है, सिगविन के लिए प्रत्येक पैकेज प्रबंधक ऐसा कर सकता है। लेकिन अपडेट करना एक दर्द है क्योंकि विंडोज आपको एक निष्पादन योग्य को अधिलेखित करने की अनुमति नहीं देता है, जो वर्तमान में चल रहा है। इसलिए आप उदाहरण के लिए Cygwin DLL या किसी भी पैकेज को अपडेट नहीं कर सकते हैं जिसमें वर्तमान में Cygwin से ही निष्पादन योग्य है। यह नोट सिगविन इंस्टालेशन पेज पर भी है:
"अधिक पूर्ण-विशेषताओं वाले पैकेज मैनेजर के न होने का मूल कारण यह है कि इस तरह के कार्यक्रम को साइगविन के पोसिक्स कार्यक्षमता के सभी लोगों तक पूर्ण पहुंच की आवश्यकता होगी। हालांकि, साइगविन-मुक्त वातावरण में प्रदान करना मुश्किल है, जैसे पहले मौजूद है। स्थापना। इसके अलावा, विंडोज आसानी से इन-यूज एक्जीक्यूटेबल्स की ओवरराइटिंग की अनुमति नहीं देता है, इसलिए सिग्विन डीएलएल का एक नया संस्करण स्थापित करना, जबकि एक पैकेज मैनेजर डीएलएल का उपयोग कर रहा है, समस्याग्रस्त है। "
साइगविन के सेटअप निष्पादनों को अधिलेखित करने के लिए विंडोज रजिस्ट्री का उपयोग करता है जो उपयोग में हैं और इस पद्धति के लिए विंडोज के रीबूट की आवश्यकता होती है । इसलिए, पैकेजों को अपडेट करने से पहले सभी Cygwin प्रक्रियाओं को बंद करना बेहतर है , इसलिए आपको परिवर्तनों को लागू करने के लिए अपने कंप्यूटर को रिबूट करने की आवश्यकता नहीं है। एक नए पैकेज की स्थापना पूरी तरह से बिना किसी बाधा के होनी चाहिए। मुझे नहीं लगता कि सिग्विन के किसी भी पैकेज के सिवाय setup.exe
किसी भी तरीके का उपयोग करने के लिए फाइल को ओवरराइट करने के लिए किसी भी विधि को लागू नहीं किया गया है, इसलिए यदि यह उन्हें अधिलेखित नहीं कर सकता तो यह बस विफल हो जाएगा।
अपडेट : कॉपीराइट मुद्दों ( DMCA टेकडाउन ) के कारण हाल ही में भंडार को अक्षम कर दिया गया था । ऐसा लगता है कि रिपॉजिटरी के मालिक ने अपनी खुद की रिपॉजिटरी पर DMCA टेकडाउन जारी किया और Sage (bellow देखें) नामक एक नया प्रोजेक्ट बनाया ।
मेरे लिए सबसे अच्छा। केवल इसलिए कि यह सबसे हाल का है। यह साइगविन का उपयोग नहीं करता है setup.exe
, यह फिर से लागू setup.exe
करता है , क्या करता है। यह दोनों प्लेटफार्मों के लिए सही ढंग से काम करता है - x86 और साथ ही x86_64 । अधिक या कम अतिरिक्त सुविधाओं के साथ बहुत सारे कांटे हैं। उदाहरण के लिए, kou1okada कांटा बेहतर संस्करणों में से एक है , जो वास्तव में बहुत अच्छा है।
apt-cyg सिर्फ एक शेल स्क्रिप्ट है, कोई इंस्टॉलेशन नहीं है। बस इसे डाउनलोड करें (या रिपॉजिटरी को क्लोन करें), इसे निष्पादन योग्य बनाएं और इसे पाथ में कहीं कॉपी करें:
chmod +x apt-cyg # set executable bit
mv apt-cyg /usr/local/bin # move somewhere to PATH
# ...and use it:
apt-cyg install vim
विभिन्न विशेषताओं के साथ कांटे का गुच्छा भी है।
शेल स्क्रिप्ट के रूप में कार्यान्वित एक और पैकेज मैनेजर। मैंने इसकी कोशिश नहीं की, लेकिन यह वास्तव में अच्छा लग रहा है।
यह एक रिपॉजिटरी में संकुल की खोज कर सकता है, एक श्रेणी में संकुल की जाँच कर सकता है, निर्भरता की जाँच कर सकता है, संकुल फाइलों की सूची बना सकता है। इसमें ऐसी सुविधाएँ हैं जो अन्य पैकेज प्रबंधकों के पास नहीं हैं।
परित्यक्त मूल का कांटा CYG-उपयुक्तसुधार और बगफिक्स के साथ। इसमें काफी विशेषताएं हैं और इसे पायथन में लागू किया गया है। स्थापना का उपयोग करके बनाया गया है make
।
यदि आपने Cygwin को स्थापित करने के लिए Chocolatey का उपयोग किया है, तो आप पैकेज cyg-get को स्थापित कर सकते हैं , जो वास्तव में CySwin केsetup.exe
PowerShell में लिखे गए चारों ओर एक साधारण आवरण है ।
इसमें कमांड लाइन मोड भी है । इसके अलावा, यह आपको एक बार में सभी स्थापित पैकेजों को अपग्रेड करने की अनुमति देता है (जैसा apt-get upgrade
कि डेबियन आधारित लिनक्स पर है)।
उदाहरण का उपयोग करें:
setup-x86_64.exe -q --packages=bash,vim
आप आसान उपयोग के लिए एक उपनाम बना सकते हैं, उदाहरण के लिए:
alias cyg-get="/cygdrive/d/path/to/cygwin/setup-x86_64.exe -q -P"
फिर, उदाहरण के लिए, आप Vim पैकेज स्थापित कर सकते हैं :
cyg-get vim
sage
apt-cyg
पिछले एक साल या दो (स्टीवन पेनी) पर इसके सबसे सक्रिय योगदानकर्ताओं का कांटा है । ऐसा प्रतीत होता है कि इस वर्ष की शुरुआत में उन्होंने मूल apt-cyg
लेखक (स्टीफन जुंगल्स) के साथ कुछ असहमति जताई थी और जब उन्होंने परियोजना को रद्द कर दिया तो DMCA को जारी कर दिया। चूंकि जुंगल्स (उर्फ ट्रांसकोड) मौखिक रूप से परियोजना का मूल लेखक है, इसलिए GitHub ने मूल परियोजना को जल्द ही बहाल कर दिया। वर्तमान में, दोनों परियोजनाएं उपलब्ध हैं - हालांकि मूल परियोजना में विभाजन के बाद से कोई नया कोड अपडेट नहीं हुआ है। यह वास्तव में एक गन्दा स्थिति है।
सबसे पहले, इंस्टॉलर को यहां डाउनलोड करें : https://cygwin.com/setup-x86_64.exe (विंडोज 64 बिट), फिर:
# move installer to cygwin folder
mv C:/Users/<you>/Downloads/setup-x86_64.exe C:/cygwin64/
# add alias to bash_aliases
echo "alias cygwin='C:/cygwin64/setup-x86_64.exe -q -P'" >> ~/.bash_aliases
source ~/.bash_aliases
# add bash_aliases to bashrc if missing
echo "source ~/.bash_aliases" >> ~/.profile
जैसे
# install vim
cygwin vim
# see other options
cygwin --help
मैं इसके लिए एक समाधान चाहता था apt-get --print-uris
, लेकिन दुर्भाग्य से apt-cyg ऐसा नहीं करता है। निम्नलिखित एक समाधान है जिसने मुझे केवल उन पैकेजों को डाउनलोड करने की अनुमति दी है जिनकी मुझे ज़रूरत थी, उनकी निर्भरता के साथ, और उन्हें स्थापना के लिए लक्ष्य पर कॉपी करें। यहाँ एक bash स्क्रिप्ट है जो apt-cyg
URI की सूची में आउटपुट को पार्स करता है:
#!/usr/bin/bash
package=$1
depends=$( \
apt-cyg depends $package \
| perl -ne 'while ($x = /> ([^>\s]+)/g) { print "$1\n"; }' \
| sort \
| uniq)
depends=$(echo -e "$depends\n$package")
for curpkg in $depends; do
if ! grep -q "^$curpkg " /etc/setup/installed.db; then
apt-cyg show $curpkg \
| perl -ne '
if ($x = /install: ([^\s]+)/) {
print "$1\n";
}
if (/\[prev\]/) {
exit;
}'
fi
done
ऊपर उन पैकेजों के पथ प्रिंट किए जाएंगे, जिन्हें डाउनलोड करने की आवश्यकता है, जो कि पहले से स्थापित किए गए किसी भी पैकेज को छोड़ते हुए, सागविन मिरर रूट के सापेक्ष है। उन्हें डाउनलोड करने के लिए, मैंने फ़ाइल में आउटपुट लिखा cygwin-packages-list
और फिर wget का उपयोग किया:
mirror=http://cygwin.mirror.constant.com/
uris=$(for line in $(cat cygwin-packages-list); do echo "$mirror$line"; done)
wget -x $uris
इंस्टॉलर को फिर स्थानीय कैश निर्देशिका से स्थापित करने के लिए उपयोग किया जा सकता है। ध्यान दें कि इस काम के लिए मुझे setup.ini
डाउनलोड की गई फ़ाइलों के साथ निर्देशिका में पिछले cygwin पैकेज कैश से कॉपी करने की आवश्यकता थी (अन्यथा इंस्टॉलर को पता नहीं है कि क्या है)।
पुराना सवाल है, लेकिन अभी भी प्रासंगिक है। यहाँ मेरे लिए आज (6/26/16) काम किया गया है।
बैश शेल से:
lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin
wget
या curl
शायद इसके लिए एक बेहतर उपकरण है। (और व्यक्तिगत रूप से, मैं इसे अपने $PATH
बजाय किसी अन्य निर्देशिका में स्थापित करूंगा /bin
।)
दाविद फ़ेरेन्स्की का जवाब बहुत अच्छा है, लेकिन मैंने उनके लगभग सभी विकल्पों को आज़माने के बाद पाया है कि चॉकलेटरी का साइबर-गेट सबसे अच्छा था (कम से कम केवल एक ही जो मुझे काम करने के लिए मिल सकता था)।
मैं स्थापित करना चाहता था wget
, कदम यह था:
choco install cyg-get
फिर:
cyg-get wget
आमतौर पर पैकेज स्थापित करने से पहले किसी को इसका सही नाम पता होना चाहिए:
# define a string to search
export to_srch=perl
# get html output of search and pick only the cygwin package names
wget -qO- "https://cygwin.com/cgi-bin2/package-grep.cgi?grep=$to_srch&arch=x86_64" | \
perl -l -ne 'm!(.*?)<\/a>\s+\-(.*?)\:(.*?)<\/li>!;print $2'
# and install
# install multiple packages at once, note the
setup-x86_64.exe -q -s http://cygwin.mirror.constant.com -P "<<chosen_package_name>>"