2013-06-20 4 views
11

मैं लिनक्स सर्वर पर डेटटाइम मशीन स्थापित करने की कोशिश कर रहा हूं। दुर्भाग्यवश, इस लिनक्स सर्वर में कुछ प्रतिबंधित नेटवर्क एक्सेस नीति है जो मुझे सीधे सामग्री डाउनलोड करने या cpanminus इंस्टॉल करने के लिए सीपीएएन खोल का उपयोग करने से रोकती है। एक्सेस पॉलिसी बदलना मेरे नियंत्रण से बाहर है, इसलिए मैं एक वर्कअराउंड ढूंढ रहा हूं। मेरे पास इस लिनक्स सर्वर की रूट पहुंच भी नहीं है।सीपीएएन नेटवर्क एक्सेस के बिना मशीन पर कई निर्भरताओं के साथ पर्ल मॉड्यूल स्थापित करें

हालांकि, मैं अपने काम की विंडो मशीन पर कुछ भी डाउनलोड कर सकता हूं, और इस सर्वर पर फ़ाइल साझा करने के लिए अपलोड कर सकता हूं। तो मैंने डेटटाइम निर्भरताओं को एक-एक करके नीचे खींचना शुरू कर दिया। मैं एक मॉड्यूल डाउनलोड करूंगा, कभी-कभी इसमें Makefile.PL होगा, कभी-कभी इसमें Build.PL होगा। मैं फिर प्रत्येक बिल्ड या मेकफ़ाइल को अपने INSTALL_BASE पर रीबेस करता हूं, प्रत्येक मॉड्यूल का परीक्षण करता हूं। मैंने लगभग 20 मॉड्यूल के लिए ऐसा किया है, और पेड़ों को कभी भी छोटे वर्गों में विस्तार नहीं होता है ...

मुझे आशा है कि आप मुझे एक बेहतर तरीका बता सकते हैं। क्या कोई तरीका है कि मैं सभी दिनांक समय निर्भरताओं के सीपीएएन एक्सेस (यानी मेरा विंडोज बॉक्स) के साथ एक मशीन से डाउनलोड शुरू कर सकता हूं, इसे एक विशाल पर्ल पैकेज में अपलोड करें, इसे लिनक्स सर्वर पर अपलोड करें, और वहां सीपीएएन चलाएं (बिना नेटवर्क एक्सेस के) चीजें सही जगह पर रखो? धन्यवाद।

alias localcpanm='cpanm --mirror file:///Users/Shared/cpan/ --mirror-only' 

मैं के साथ विचित्र नेटवर्क का उपयोग के साथ लंबी रेल यात्रा पर इस तकनीक का इस्तेमाल किया है:

+2

क्या आपने यह सुनिश्चित किया है कि इस लॉक डाउन मशीन पर निर्माण वातावरण है? यदि आप उनके साथ सौदा करने के लिए उपकरण नहीं हैं तो वितरण में स्थानांतरित करने में बहुत समय व्यतीत करना होगा। – innaM

उत्तर

10

अब तक का सबसे कारगर तरीका एक minicpan बनाने के लिए, लिनक्स मशीन और अन्य नाम इस तरह localcpanm कुछ पर cpanm स्थापित है महान सफलता।

+0

धन्यवाद। क्या सीपीएएन के केवल एक उप-समूह का दर्पण बनाने के लिए मिनीपैन का उपयोग करने का कोई तरीका है, यानी।एक डेटटाइम मॉड्यूल और इसकी सभी निर्भरताओं के लिए? और बाद में, उस दर्पण में केवल उस अतिरिक्त मॉड्यूल को जोड़ने में सक्षम हो, जिसमें हम रुचि रखते हैं? मुझे लगता है कि पूरे सीपीएएन को मिरर करना ठीक है, लेकिन पूरी चीज से कम करने में सक्षम होना एक अच्छा विकल्प होगा। – frank

+0

ऐसा लगता है जैसे सीपीएएन :: मिनी :: फ्रॉमलिस्ट ऐसा कर सकता है लेकिन cpanratings समीक्षा आत्मविश्वास को प्रेरित नहीं करती है। – singingfish

+0

cpanm आवश्यक प्रश्न "minicpan" बना सकता है, जो इस प्रश्न के उत्तर में दिखाया गया है –

1

इस समस्या के लिए कुछ समाधान हैं, उदाहरण के लिए Carton देखें जो रूबी के बंडलर की तरह है या अन्य Pinto जिसका लक्ष्य है कि आप अपना निजी सीपीएएन बनें (जैसा कि मैं इसे समझता हूं)।

1

एक समाधान जो मैं काम पर उपयोग करता हूं वह है कि पेर्लब्रू, एक पर्ल + मॉड्यूल और ऐप प्रति ऐप के साथ एक विकास सर्वर और यह सब एक गिट रेपो में है। उत्पादन मशीनों पर गिट रिपोजिटरी तक पहुंच ऐप को तैनात करने और टैग का उपयोग करके संस्करणों के बीच स्विच करने की आवश्यकता होती है।

7

पहला कदम स्वचालित रूप से सभी निर्भरताओं को डाउनलोड करना है। आप अपने नेटवर्क से जुड़ा मशीन पर यह करने के लिए cpanm उपयोग कर सकते हैं:

cpanm -L /dev/null --save-dists dists --scandeps DateTime

यह दोनों निर्भरता की एक सूची बनाता है, लेकिन अधिक महत्वपूर्ण बात dists निर्देशिका में उन्हें डाउनलोड करता है। -L /dev/null यह सुनिश्चित करता है कि यह पहले से स्थापित मॉड्यूल पर ध्यान नहीं देता है।

dists कॉपी करें जैसा कि आपके प्रतिबंधित बॉक्स में है।

फिर, स्थानीय स्थापना प्रदर्शन करने के लिए अपने सीमित बॉक्स पर cpanm का उपयोग करें:

cpanm --mirror file:///path/to/dists -L foo DateTime

जहां /path/to/distsdists निर्देशिका का निरपेक्ष पथ है। यह चीजों को foo निर्देशिका में स्थापित करेगा।

+0

धन्यवाद, यह वही है जो मैं ढूंढ रहा था। – frank

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