2009-07-11 8 views
17

रुबी के साथ gzipped tar archive बनाने का सबसे अच्छा तरीका क्या है?रूबी: एक गजिपेड टैर आर्काइव बनाएं

मेरे पास एक रेल ऐप है जिसे उपयोगकर्ता क्रियाओं के जवाब में संपीड़ित संग्रह बनाने की आवश्यकता है। आदर्श रूप से, पहले इंटरमीडिएट अस्थायी फ़ाइलों को उत्पन्न करने की आवश्यकता के बिना सीधे एक संपीड़ित फ़ाइल को लिखना संभव होगा। Ruby Zlib लाइब्रेरी प्रत्यक्ष gzip संपीड़न का समर्थन करने के लिए प्रतीत होता है। मैं इसे टैर आउटपुट के साथ कैसे जोड़ सकता हूं?

कई अर्ध-समाधान प्रस्तावित किए गए प्रतीत होते हैं और बहुत सारी जानकारी पुरानी प्रतीत होती है।

उदाहरण के लिए, "रूबी टैर" के लिए शीर्ष Google खोज परिणाम this thread देता है, जिसे 2007 में स्पष्ट रूप से कोई संकल्प नहीं मिला था।

एक और उच्च रैंकिंग खोज परिणाम this one describing ruby tar है। यह 2002 की तारीख है, और घोषणा वास्तव में आत्मविश्वास को प्रेरित नहीं करती है।

मैंने यूनिक्स टैर और इसी तरह के खोलने की विभिन्न रिपोर्ट भी देखी हैं।

तो, मुझे पता है कि ऐसा करने के कई तरीके हैं, लेकिन मैं वास्तव में कुछ विकल्पों की कोशिश करने वाले किसी व्यक्ति से सबसे विश्वसनीय और सुविधाजनक व्यक्ति की सिफारिश की तलाश में हूं।

कोई विचार?

+0

क्या आपको कोई जवाब मिला? – hornairs

+0

यह मेरे प्रश्न के समान है: http://stackoverflow.com/questions/7856491/ruby-streaming-tar-gz किसी को भी कोई जवाब मिल रहा है? –

+0

मैं अभी भी इसके साथ खेल रहा हूं, लेकिन यह एक अच्छा विचार की तरह लग रहा था। रुबी का [पुरालेख :: टैर] (http://www.ruby-doc.org/gems/docs/a/archive-tar-0.9.0/Archive/Tar.html) – Pred

उत्तर

4

यह Ruby Minitar परियोजना 2009 में अद्यतन और जैसे कि यह आपकी समस्या का समाधान होगा

+0

मिनीटर लेखन टार्स की अनुमति नहीं देता है एक स्ट्रीम से, केवल फाइलों से। हालांकि, यह एक धारा में आउटपुट कर सकते हैं। –

9

आप यूनिक्स के तहत चलाए जा रहे हैं, तो आप डिस्क के लिए बाहर फ़ाइलें लिख सकता है लगता था, तो टार के लिए एक प्रणाली कॉल चलाने/उन्हें gzip ।

`tar -czf #{file_name}.tar.gz #{file_name}` 
+0

मुझे यह पसंद है - बहुत आसान है। भले ही यह जांच न करे कि आपके सिस्टम पर "टैर" स्थापित है, अगर यह रूबी हो गया है तो यह उचित धारणा है :) इसके आसपास की बैकटिक्स को न भूलें। तो मुझे आगे की जगह जोड़ने की अनुमति नहीं दी जाएगी ताकि वे दिखाई दे सकें। –

संबंधित मुद्दे