मैं CURL का उपयोग करके GitHub से एक टारबॉल कैसे डाउनलोड करूं?


93

मैं का उपयोग कर GitHub से एक टारबॉल डाउनलोड करने के लिए कोशिश कर रहा हूँ cURL , लेकिन यह पुनः निर्देशित होना प्रतीत नहीं होता है:

$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2
<html><body>You are being <a href="https://nodeload.github.com/pinard/Pymacs/tarball/v0.24-beta2">redirected</a>.</body></html>

नोट: wget मेरे लिए काम करता है:

$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2

हालाँकि मैं cURL का उपयोग करना चाहता हूं क्योंकि आखिरकार मैं कुछ इनलाइन के साथ इनर करना चाहता हूं:

$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx

मैंने पाया कि रीडायरेक्ट करने के बाद URL https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz हो गया है , लेकिन मैं यह जानना चाहूंगा कि फिगर काफी स्मार्ट होगा यह बाहर है।

जवाबों:


148

-Lपुनर्निर्देश का पालन करने के लिए विकल्प का उपयोग करें :

curl -L https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx

3
के लिए https, आप भी की आवश्यकता होगी -k
nicerobot

1
हाल ही में raw.github.com पर प्रमाणपत्र समस्याएं क्यों हैं? मुझे एक नई मशीन पर होमब्रे और आरवीएम स्थापित करने में समस्याएं थीं। मैं मुखपृष्ठ से कॉपी और पेस्ट करता था और काम कर रहा था। अब मुझे प्रमाणपत्र समस्या: रूबी -e "$ (curl -fsSL raw.github.com/mxcl/homebrew/go )" कर्ल: (60) एसएसएल प्रमाणपत्र समस्या: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ अधिक जानकारी यहाँ: कर्ल। haxx.se/docs/sslcerts.html कर्ल "बंडल" का उपयोग करके डिफ़ॉल्ट रूप से SSL प्रमाणपत्र सत्यापन करता है, .. यदि आप प्रमाणपत्र के कर्ल सत्यापन को बंद करना चाहते हैं, तो -k (या --insecure) विकल्प का उपयोग करें।
क्रिस सिनेली

मम्म ... क्या टारबॉल में उप-मॉड्यूल को भी शामिल करने की संभावना है? ऐसा लगता है, कि उप-मॉड्यूल के लिए टारबॉल में केवल खाली निर्देशिका बनाई जाती है।
अरोरा

निश्चित नहीं है कि यह अभी एक अस्थायी समस्या है, लेकिन जीथब फिलहाल इसके लिए 500 आंतरिक सर्वर त्रुटि लौटा रहा है।
बीटी

15
और बस संभावित रूप से किसी को बचाने के लिए, -Lइसका मतलब है पुनर्निर्देश का पालन करें।
स्टीव केहलेट

45

यह करने का आधुनिक तरीका है:

curl -sL https://github.com/user-or-org/repo/archive/sha1-or-ref.tar.gz | tar xz

बदलें user-or-org, repoऔर sha1-or-refतदनुसार।

यदि आप टारबॉल के बजाय ज़िप फ़ाइल चाहते हैं, तो .zipइसके बजाय निर्दिष्ट करें.tar.gz प्रत्यय के ।

आप -u token:x-oauth-basicकर्ल के विकल्प को निर्दिष्ट करके एक निजी रेपो के संग्रह को पुनः प्राप्त कर सकते हैं । tokenएक निजी एक्सेस टोकन के साथ बदलें


3
सभी उत्तरों में, यह वही था जिसकी मुझे तलाश थी! यदि आपके पास एक ऊहुट टोकन है, तो आप इसे सीधे उपयोग कर सकते हैं; https://token@github.com/user-or-org/repo/archive/sha1-or-ref.tar.gz
स्वेवस

अभिलेखागार के बजाय रिलीज़ से डाउनलोड करने के लिए यह कैसे काम करेगा?
५६

1
@waspinator, मैं यहाँcurl -OL https://github.com/user-or-org/repo/releases/download/version/<asset name>.tar.gz उदाहरण देखें
वेन

क्या आप बता सकते हैं कि स्वीकृत उत्तर की तुलना में यह कैसे बेहतर है?
रोबिन मेट्रल

14

आप wget का उपयोग इस »इनलाइन को अनारित करने के लिए भी कर सकते हैं। बस आउटपुट फ़ाइल के रूप में स्टैडआउट निर्दिष्ट करें ( -O -):

wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2 -O - | tar xz

2

अन्य सभी समाधानों में एक रिलीज / संस्करण संख्या निर्दिष्ट करने की आवश्यकता होती है जो स्पष्ट रूप से स्वचालन को तोड़ती है।

यह समाधान- वर्तमान में Github API v3 के साथ काम करने के लिए परीक्षण किया और जाना जाता है - हालाँकि प्रोग्राम का उपयोग किसी टैग या रिलीज़ नंबर को निर्दिष्ट किए बिना LATEST रिलीज़ को हथियाने के लिए किया जा सकता है और आपके द्वारा स्विच में निर्दिष्ट मनमाने ढंग से नाम बाइनरी को अन-टार्स करता है --one-top-level="pi-ap"। बस अपने स्वयं के विवरण और बॉब के अपने चाचा के साथ नीचे दिए गए उदाहरण में स्वैप-आउट यूजर f1linux और रेपो पी-एपी :

curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1

यह सुंदर है, लेकिन वास्तव में कुछ स्पष्टीकरण का उपयोग कर सकता है। उदाहरण के लिए कौन सा GitHub एपीआई संस्करण है और यह कहां प्रलेखित है?
l3l_aze

1
@ l3l_aze उत्तर को संपादित करें इसमें वर्तमान Githib API संस्करण संख्या शामिल है जिसका मेरे समाधान का परीक्षण किया गया है और इसके साथ काम करने के लिए जाना जाता है। आपकी प्रतिक्रिया के लिए धन्यवाद! - T
F1Linux

वाह। मुझे नहीं लगता था कि यह आपके द्वारा पहले से साझा किए गए से बेहतर हो सकता है। आपका बहुत बहुत धन्यवाद!
l3l_aze 15

1

एक विशिष्ट डायर के साथ

cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx


अधिक बेहतर तरीका cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx; cd -
6
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.