Cygwin कमांड-लाइन के माध्यम से पैकेजों को अपग्रेड और इंस्टॉल करना?


113

मैं एक अंधा कंप्यूटर उपयोगकर्ता हूं जो Cygwin का उपयोग करता है।

इंस्टॉलेशन प्रोग्राम बहुत सुलभ नहीं है: विशिष्ट पैकेज को अपग्रेड करना, इंस्टॉल करना और हटाना काफी कठिन है क्योंकि आपको क्लिक और स्क्रॉल करने के लिए नकली माउस कीस्ट्रोक्स का उपयोग करना होगा।

वहाँ या तो मैन्युअल रूप से स्थापित / उन्नयन पैकेज स्थापित करने या उन्हें कमांड-लाइन के माध्यम से स्थापित / अपग्रेड करने का एक तरीका है?

जवाबों:


121

Apt-cyg स्थापित करें :

lynx -source https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

उसके बाद आप पैकेज को "lynx" कह सकते हैं, जिसमें निर्भरता भी शामिल है:

apt-cyg install lynx

4
रिपॉजिटरी स्थानांतरित नहीं हुई है: एक DMCA शिकायत फिर से ट्रांसकोड-ओपन / एप्ट-साग जारी की गई है । संयोग से, Github उपयोगकर्ता svnpenn ने उसी समय "ऋषि" नाम का एक कांटा बनाया, जो इसके उत्तराधिकारी होने का दावा करता है
लुकास साइमन


मुझे इसके लिए निष्पादन योग्य होने के लिए + x apt-cyg को chmod करना पड़ा (बस मामले में यह किसी की मदद करता है)
Pedro A

23

चूँकि कुछ लोगों ने सही ढंग से कहा कि apt-cygस्वयं को wget की आवश्यकता है और apt-cygआपको wget की आवश्यकता होने के लिए , wgetशुद्ध bash में बूटस्ट्रैप का केवल एक समाधान है ।

अपने मिनिट बैश शेल में इस तरह का फंक्शन बनाएं:

function __wget() {
    : ${DEBUG:=0}
    local URL=$1
    local tag="Connection: close"
    local mark=0

    if [ -z "${URL}" ]; then
        printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \
               "${FUNCNAME[0]}" "${FUNCNAME[0]}"
        return 1;
    fi
    read proto server path <<<$(echo ${URL//// })
    DOC=/${path// //}
    HOST=${server//:*}
    PORT=${server//*:}
    [[ x"${HOST}" == x"${PORT}" ]] && PORT=80
    [[ $DEBUG -eq 1 ]] && echo "HOST=$HOST"
    [[ $DEBUG -eq 1 ]] && echo "PORT=$PORT"
    [[ $DEBUG -eq 1 ]] && echo "DOC =$DOC"

    exec 3<>/dev/tcp/${HOST}/$PORT
    echo -en "GET ${DOC} HTTP/1.1\r\nHost: ${HOST}\r\n${tag}\r\n\r\n" >&3
    while read line; do
        [[ $mark -eq 1 ]] && echo $line
        if [[ "${line}" =~ "${tag}" ]]; then
            mark=1
        fi
    done <&3
    exec 3>&-
}

अब आप इसे लगभग wget की तरह उपयोग कर सकते हैं :

__wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg > /usr/bin/apt-cyg && chmod 0755 /usr/bin/apt-cyg

क्षमा करें, @moreaki, लेकिन एक बात है जिसे मैं apt-cyg से समझ नहीं पा रहा हूं: शास्त्रीय CygWin विंडोज इंस्टॉलर में मैं रिपॉजिटरी / संकुल स्थान निर्दिष्ट कर सकता / सकती हूं, चाहे वह (कई) ftp / http डाउनलोड में से एक हो साइटें, या स्थानीय ड्राइव (मेरे कंप्यूटर में)। मुझे आधिकारिक googlecode साइट में ऐसा कोई विकल्प दिखाई नहीं देता है। कहाँ apt-cygसे संकुल डाउनलोड करता है?
सिल्पाजो डी एरियेरेज़

मेरे देर से जवाब को क्षमा करें। मैंने आधिकारिक googlecode साइट पर apt-cyg के कोड के माध्यम से केवल स्किम्ड किया है और मेरे लिए ऐसा लगता है कि चयनित डाउनलोड साइट प्रतीत होती है http://mirrors.kernel.org/sourceware/cygwin, जैसा findworkspace()कि आपने निर्दिष्ट लाइन विकल्प का उपयोग करके दर्पण को निर्दिष्ट नहीं किया है -m। यदि आप कमांड लाइन निर्दिष्ट करते हैं, तो दर्पण सर्वर जानकारी को लिखा जाएगा /etc/setup/last-mirror
मोरकी

apt-cyg स्थापना अब wget पर निर्भर नहीं करती है, इसलिए इनमें से कोई भी संभवत: कोई मायने नहीं रखता है? वे अपनी वेबसाइट पर lynx का उपयोग करते हैं (जो लगता है कि बिल्ट-इन साइबरविन?)।
उकुपी जू

@ ऑस्टेन थोक एडिट का क्या कारण है जो पर्याप्त हिस्से से अधिक बदलता है? यह बहुत ज्यादा एक अलग जवाब ही है
यादृच्छिक

1
फिर नीचे उतरें और एक प्रतिस्पर्धी उत्तर प्रदान करें। आप apt-CYG की देखभाल करने वाले हैं कि प्राधिकारी या पृष्ठभूमि उस तरह का पता चलता है संपादन इस तरह के swathes साथ में steamroll को आपकी प्रोफ़ाइल पर या अपने संपादन सारांश या कहीं भी दिखाई में कोई संकेत नहीं है
यादृच्छिक

21

आधिकारिक apt-CYG स्थापना विधि है:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

दो चरण तीन से बेहतर है। फिर:

apt-cyg install nano

वैसे, इसे काम करने के लिए आपको apt-cyg का उपयोग करने के लिए wget , tar , gawk और bzip2 को इंस्टॉल करना होगा । Wget के अलावा, अन्य डिफ़ॉल्ट Cygwin स्थापना के साथ आते हैं।


2
64-बिट साइगविन के लिए, svnऔर apt-cygटूट सकता है। तो आपको three stepस्थापित करने के लिए wget दृष्टिकोण का उपयोग करना पड़ सकता है apt-cygऔर फिर apt-cyg फ़ाइल की 98 और 105 लाइनों के $mirror/setup...साथ प्रतिस्थापित कर सकते हैं $mirror/x86_64/setup...
सगुनम्स

17

पुराना सवाल है, लेकिन दूसरों के लिए है कि गूगल और यहां मिल गया: आधिकारिक सेटअप में कमांड लाइन तर्क हैं, जिन्होंने मुझे सरल * .bat स्क्रिप्ट तैयार करने की अनुमति दी है - बस निम्नलिखित पंक्ति को "इंस्टाल- pkg.bat" में रखें और उस फाइल को अपनी रूट डायरेक्टरी में डालें। (उदा C: \ cygwin):

setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --root "%cd%" --packages %*

आपको उसी निर्देशिका में http://www.cygwin.com/setup-x86.exe (32bit) या http://www.cygwin.com/setup-x86_64.exe (64bit) डालने की आवश्यकता है। पैकेज स्थापित करने के लिए अब आपको बस इतना करना है:

install-pkg packagename

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


1
अच्छा जवाब, क्योंकि यह एक ऐसा उपकरण है जो आपके पास पहले से ही किसी भी सिग्विन इंस्टॉलेशन में है; हालाँकि, ऐसा लगता है कि आप इसे पहले से स्थापित सभी पैकेजों को अपडेट करने से रोक नहीं सकते हैं? यदि आप सिर्फ एक नया पैकेज स्थापित करना चाहते हैं तो यह काफी कष्टप्रद है; दूसरे शब्दों में, आलेखीय setup.exe के "कीप" विकल्प के बराबर कोई कमांड-लाइन नहीं है
golimar

1
नोट setup.exe को अब setup-x86.exe कहा जाता है - या सीपीयू बिट्स के आधार पर एक प्रकार।
एरचबस्चुलज़

लिंक टूट गया है, अब है: cygwin.com/faq/faq.html#faq.setup.cli क्या आप इसे अपने उत्तर में संपादित कर सकते हैं? धन्यवाद
Benj

यदि आपको --no-adminस्विच (उसी के रूप में -B) का उपयोग करने में आपको व्यवस्थापक अधिकारों की आवश्यकता नहीं है ।
cdlvcdlv

13

Cygwin की setup.exe, कम से कम 1.7 "बीटा" रिलीज़ में, "अनअटेंडेड" मोड अंतर्निहित है। कमांड विंडो में अपने setup.exe शॉर्टकट को खींचें और छोड़ें (या अन्यथा इसे स्विच के साथ चलाने के लिए तैयार करें), और -qअनअटेंडेड मोड के बाद -Pऔर अल्पविराम से अलग किए गए पैकेज नामों को जोड़ें। तो, मेरे लिए, यह स्थापित lynx:

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx

अरे, यह काम करता है लेकिन कैसे के बारे में अगर मैं स्थापना के समय कुछ संकुल जोड़ना चाहते हैं, कैसे करना है ??
जॉनडेप

1
नोट setup.exe को अब setup-x86.exe कहा जाता है - या सीपीयू बिट्स के आधार पर एक प्रकार।
एरचबस्चुलज़

7
setup-x86 -nq -s http://box-soft.com -P curl,git,make

या

setup-x86 -nq -s http://box-soft.com -P curl -P git -P make

यह cURL, git, और मेक को स्थापित करेगा, जिसमें कोई भी मोड शांत मोड में नहीं होगा।


2

मुझे साइबरविन के लिए दो 'एप्ट जैसे' पैकेज मैनेजर मिले। एक साइबर लिपि है जिसे साइबर एप कहा जाता है जिसे आप http://www.lilypond.org/~janneke/software/cyg-apt से डाउनलोड कर सकते हैं और दूसरा एप्ट-साइबर है जिसे आप http: // कोड पर पा सकते हैं । google.com/p/apt-cyg/


0

स्वीकृत उत्तर के साथ एक चिकन <=> अंडे की समस्या है । यदि आपको आरंभिक इंस्टॉल के दौरान wgetया नहीं मिला lynx, तो आप उपयोग नहीं कर सकते apt-cyg। यहां बताया गया है कि मैंने कैसे स्थापित किया wgetताकि मैं उपयोग कर सकूं apt-cyg। (यह cygwin सेटअप exe की CLI सुविधाओं का उपयोग करता है ।)

# check to see if you are running 64 bit cygwin
$ uname -a
CYGWIN_NT-10.0 WINDOWS-ABMESEI 2.6.0(0.304/5/3) 2016-08-31 14:32 x86_64 Cygwin

# if you are not using 64 bit, get http://www.cygwin.com/setup-x86.exe instead of...
$ curl -o cygwin-setup.exe http://www.cygwin.com/setup-x86_64.exe
$ chmod +x cygwin-setup.exe

# now you are ready to use it according to: https://cygwin.com/faq/faq.html#faq.setup.cli
$ cygwin-setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --packages wget

-1

कम से कम पैकेजों के लिए जिन्हें पोस्ट-इंस्टॉलेशन कॉन्फ़िगरेशन की आवश्यकता नहीं होती है, मैंने उन्हें केवल साइबर रूट '/' से अनट्रेड किया है। मुझे तोड़फोड़ (1.7.14) के पुराने संस्करण की आवश्यकता थी जो सेटअप द्वारा संभाले गए दो संस्करणों से आगे निकल गया था।

एक अतिरिक्त लाभ यह है कि पैकेज साइबरविन पैकेज प्रबंधन दुनिया के बाहर हो जाता है और इस प्रकार एक प्रकार का एडहॉक ब्लैकलिस्ट स्वचालित रूप से नवीनतम पैकेज के साथ अपडेट नहीं किया जाता है यदि चूक रखी जाती है।

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