डेबियन व्हीज़ी और पर्ल मॉड्यूल सिस्टम में स्थापित / रूट नहीं


2

मैं छोटी समस्या का कारण है हर बार मैं जारी

cpan YAML

या इसे स्थापित करने वाले किसी भी पर्ल मॉड्यूल को स्थापित करने का प्रयास करें /root/perl5और इसके साथ कोई भी अन्य उपयोगकर्ता उन मॉड्यूल का उपयोग नहीं कर सकता है जिन्हें मैंने रूट के रूप में स्थापित किया है।

भले ही मैं करूँ

rm -frv /root/perl5 /root/.cpan

और फिर से cpan YAMLइसे रूट होम डायर में स्थापित करता है। मेरे द्वारा इसे कैसे बदला जा सकता है ?


2
चूंकि आप डेबियन में हैं, मेरा सुझाव है कि आप उपयोग करें dh-make-perl --cpan YAML। बेशक, यह मानते हुए कि आप डिस्ट्रो का उपयोग नहीं कर सकते हैं libyaml-perl
derobert

जवाबों:


2

एक डिफ़ॉल्ट फ़ाइल मौजूद है जो डिफ़ॉल्ट सेटिंग्स को परिभाषित करती है। आप फ़ाइल को cpan के इंस्टॉल पथ के तहत पा सकते हैं CPAN/Config.pm। रास्ता बेकार है /usr/lib/perl5/<version>/

मेरे सुझाव के मूल्यों को समायोजित किया जाएगा makepl_argऔर mbuildpl_argवैश्विक कॉन्फ़िग फ़ाइल में के बाद से पर्ल मॉड्यूल या तो निर्माण और के माध्यम से स्थापित कर रहे हैं MakeMakerया Build। यदि आप इसे डालते हैं:

'makepl_arg' => q[INSTALLDIRS=perl INSTALLBIN=/opt/mycpanmodules/bin/ INSTALLARCHLIB=/opt/mycpanmodules/perl5/ INSTALLPRIVLIB=/opt/mycpanmodules/perl5/ INSTALLSCRIPT=/opt/mycpanmodules/perl5/ INSTALLMAN1DIR=/opt/mycpanmodules/man/ INSTALLMAN3DIR=/opt/mycpanmodules/man/],
'mbuildpl_arg' => q[--install_path lib=/opt/mycpanmodules/perl5/ --install_path arch=/opt/mycpanmodules/perl5/ --install_path script=/opt/mycpanmodules/bin/ --install_path bindoc=/opt/mycpanmodules/man/ --install_path libdoc=/opt/mycpanmodules/man/],

आपके Config.pmसभी मॉड्यूल के माध्यम से स्थापित कर रहे हैं cpanकरने के लिए चला जाता है /opt/mycpanmodules

आखिरकार आपको पर्यावरण चर सेट करना होगा

PERL5LIB=/opt/mycpanmodules/perl5

ताकि आपके स्थानीय को perlपता हो कि अतिरिक्त स्थापित करने के लिए कहां खोज करनी है modules


1
फेडोरा (और आरएचईएल) पर, @INC में /usr/localइस उद्देश्य के लिए (अन्य बातों के अलावा) स्थान शामिल हैं । मैं डेबियन ऑफहैंड की स्थिति के बारे में निश्चित नहीं हूं, लेकिन perl -Vआपको दिखाऊंगा। इस तरह, आपको PERL5LIB सेट करने की आवश्यकता नहीं है।
Mattdm

अच्छी बात! इससे चीजें और भी आसान हो जाएंगी। इसलिए हम बदलना चाहिए /opt/mycpanmodulesपथ द्वारा दिए गए द्वारा perl -Vकि नीचे एक स्थान है /usr/local। किसी कारण से मुझे पैकेज प्रबंधन द्वारा प्रदान नहीं किए गए सभी सॉफ़्टवेयर स्थापित करने की आदत है, /optहालांकि /usr/localइस उद्देश्य के लिए आधिकारिक तौर पर सही है। है ना !?
user1146332

1
O_O क्या बहुत अजीब बात है ... perl -Vमैंने इसे अपने /root/.bashrc के अंत में जोड़ा export PERL_LOCAL_LIB_ROOT="/root/perl5"; export PERL_MB_OPT="--install_base /root/perl5"; export PERL_MM_OPT="INSTALL_BASE=/root/perl5"; export PERL5LIB="/root/perl5/lib/perl5/x86_64-linux-gnu-thread-multi:/root/perl5/lib/perl5"; export PATH="/root/perl5/bin:$PATH"; और मैंने इसे पसंद नहीं किया। यह कुछ पैकेज द्वारा किया जा सकता है?
दाऊद

2

अपनी जाँच करें .bashrc। मुझे इसमें अजीब वर्सा मिला:

/root/.bashrc:PERL_MM_OPT="INSTALL_BASE=/root/perl5"; export PERL_MM_OPT;

उन्हें निकालें और पुनः लॉगिन करें।


1

आप उस dh-make-perlपैकेज पर भी गौर करना चाहते हैं जो CPAN से .deb पैकेज का निर्माण कर सकता है। आप या तो पहले मॉड्यूल डाउनलोड कर सकते हैं, या आप इसे अपने dh-make-perlलिए डाउनलोड कर सकते हैं।

बेहतर अभी तक, क्यों स्थापित नहीं libyaml-perlहै जो CPAN YAML पैकेज पहले से ही डेबियन के लिए पैक किया गया है?

अंगूठे के एक नियम के रूप में, जब डेबियन पर सीपीएएन मॉड्यूल की तलाश होती है, तो पहले डेबियन पैकेज सूची की जांच करें - एक बहुत अच्छा मौका है कि आप जो चाहते हैं वह पहले से ही पैक किया जाएगा। यदि यह नहीं है, तो एक विकल्प संभवतः होगा (और, आमतौर पर, वह विकल्प सबसे अच्छा या समान मॉड्यूल के गुच्छा का सबसे अच्छा में से एक है)।

उदा apt-cache-search yaml | grep perl... मेरे सिस्टम (डेबियन साइड) पर, यह इस सूची का निर्माण करता है:

$ apt-cache search yaml | जीआरपी पर्ल
लिबेस्ट-पर्ल - फॉलबैकेबल मॉड्यूल लोडर
libcgi-formbuilder-source-yaml-perl - YAML फ़ाइल से प्रारंभिक फॉर्मब्यूरी एप्लिकेशन
libcgi-session-serialize-yaml-perl - YAML और YAML :: CGI के लिए साइक समर्थन :: सत्र के धारावाहिक
libclone-perl - पुनरावर्ती प्रति पर्ल डेटाैटेस की प्रतिलिपि बनाएँ
libconfig-any-perl - विभिन्न फ़ाइल स्वरूपों से कॉन्फ़िगरेशन लोड करने के लिए मॉड्यूल
libconfig-merge-perl - कॉन्फ़िगरेशन मॉड्यूल के लिए छाता इंटरफ़ेस
libconfig-yaml-perl - YAML- आधारित कॉन्फ़िगरेशन फ़ाइलों में हेरफेर करने के लिए मॉड्यूल
libcpan-meta-yaml-perl - CPAN मेटा फ़ाइलों के लिए YAML के सबसेट को फिर से लागू करना
libdata-phrasebook-loader-yaml-perl - डेटा के लिए लोडर क्लास :: YAML का उपयोग करके वाक्यांश बुक करें
libdata-yaml-perl - पर्ल डेटा संरचनाओं का आसान YAML क्रमांकन
libhtml-template-dumper-perl - परीक्षण-अनुकूल प्रारूप में आउटपुट टेम्पलेट डेटा
libmoosex-धन्य-पुनर्संरचना-पर्ल - डेटा :: Moose ऑब्जेक्ट्स बनाने के लिए आगंतुक
libmoosex-yaml-perl - मॉड्यूल को YAML से लोड करने के लिए मॉड्यूल
libpadre-plugin-datawalker-perl - सरल पर्ल डेटा संरचना ब्राउज़र Padre
libpadre-plugin-yaml-perl - पैडल द पर्ल आईडीई के लिए YAML समर्थन
libparse-cpan-meta-perl - META.yml और अन्य समान CPAN मेटाडेटा फ़ाइलों को पार्स करने के लिए मॉड्यूल
libsql- अनुवादक-पर्ल - SQL अनुवाद पुस्तकालय
libtemplate-plugin-yaml-perl - YAML मॉड्यूल के लिए सरल टेम्पलेट टूलकिट प्लगइन इंटरफ़ेस
libtest-cpan-meta-perl - CPAN के लिए पैकेज मेटाडेटा को मान्य करने के लिए परीक्षण मॉड्यूल
libtest-cpan-meta-yaml-perl - META.yml फ़ाइल को मान्य करने के लिए परीक्षण मॉड्यूल
libtest-yaml-meta-perl - अप्रचलित परीक्षण के लिए संक्रमणकालीन डमी पैकेज :: YAML :: मेटा
libtest-yaml-valid-perl - मान्य YAML के परीक्षण के लिए मॉड्यूल
libvitacilina-perl - पर्ल फ़ीड एकत्रीकरण पुस्तकालय
libyaml-appconfig-perl - YAML और चर संदर्भों के साथ कॉन्फ़िगरेशन फ़ाइलों का प्रबंधन करें
libyaml-libyaml-perl - पर्ल इंटरफ़ेस टू लिबायम्ल, एक यिमल कार्यान्वयन
libyaml-perl - YAML मार्कअप भाषा नहीं है
libyaml-shell-perl - YAML परीक्षण शेल
libyaml-syck-perl - एक तेज़, हल्का YAML लोडर और डम्पर प्रदान करने वाला पर्ल मॉड्यूल
libyaml-small-perl - YAML फ़ाइलों को पढ़ने और लिखने के लिए पर्ल मॉड्यूल
पर्ल-मॉड्यूल - कोर पर्ल मॉड्यूल

फिर आप प्रत्येक संकुल के साथ विवरण प्राप्त कर सकते हैं apt-cache show, जैसे

$ apt-cache शो libyaml-perl
पैकेज: libyaml-perl
संस्करण: 0.84-1
स्थापित-आकार: 200
अनुरक्षक: डेबियन पर्ल समूह <pkg-perl-maintainers@lists.alioth.debian.org>
वास्तुकला: सभी
निर्भर करता है: पर्ल
अनुशंसाएँ: libyaml-libyaml-perl | libyaml-syck-पर्ल
संकेत: कामेच्छा-खोल-पर्ल
विवरण-एन: YAML मार्कअप भाषा नहीं है
 YAML एक सामान्य डेटा क्रमांकन भाषा है जो मानव के लिए अनुकूलित है
 पठनीयता। इसका उपयोग सबसे आधुनिक के डेटा संरचनाओं को व्यक्त करने के लिए किया जा सकता है
 प्रोग्रामिंग भाषाएं (पर्ल सहित, निश्चित रूप से)। YAML यूनिकोड का समर्थन करता है
 और कई अलग-अलग भाषाओं में पार्सर के कार्यान्वयन हैं,
 यह एक बल्कि पोर्टेबल क्रमांकन प्रारूप बना रही है।
 ।
 कृपया ध्यान दें कि वर्तमान में YAML मॉड्यूल एक पदावनत कार्यान्वयन है
 शुद्ध पर्ल में, जो शायद आपके सिस्टम पर धीमा है। लेखकों का इरादा है
 इसे बदलने के लिए बस विभिन्न YAML के लिए एक फ्रंट-एंड इंटरफ़ेस मॉड्यूल होना चाहिए
 कार्यान्वयन। अभी के लिए, YAML :: कोई भी इस प्रयोजन के लिए प्रदान किया गया एक मॉड्यूल है,
 जो बस उपलब्ध सबसे अच्छा YAML कार्यान्वयन का चयन करता है।
मुखपृष्ठ: http://search.cpan.org/dist/YAML/
विवरण- md5: 207c6e42686e3356a6c6e3a975e92075
टैग: devel :: lang: perl, devel :: पुस्तकालय, कार्यान्वित-इन :: perl
अनुभाग: पर्ल
प्राथमिकता: वैकल्पिक
फ़ाइल नाम: पूल / मुख्य / लीबी / लीबायमल-पर्ल / लिबायमल-पेर्ल_0.84-1-all.deb
साइज: 72812
MD5sum: 4e4ab9f980f050253d403002bc7e3e39
SHA1: 8f1837257d08b2eb3e7a5dbcfd73d6954b55cf98
SHA256: 6636a5794490b7bd6ddfd3f87b3e6a90b4f212d5115db641fae007e7b5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.