আমি কীভাবে সিপিএএনকে সমস্ত নির্ভরতা ইনস্টল করতে বলি?


113

আমি কীভাবে সিপিএএনকে সমস্ত নির্ভরতা ইনস্টল করতে বলি?

আমি এগুলিতে সেট করার চেষ্টা করেছি cpan:

cpan> o conf prerequisites_policy follow
cpan> o conf commit

আমাকে তখনও বেশ কয়েকবার "y" জবাব দিতে হয়েছিল (তবে এর আগে যেমন মনে হয় তার চেয়ে কম)।

সর্বদা এগিয়ে এবং ইনস্টল করার জন্য এটির কী উপায় আছে? আমি এটি অপ্রয়োজনীয় করতে চাই।

দেখে মনে হচ্ছে যে আমি পতাকাটি সর্বদা সিপিএএনকে সঠিক জিনিসটি করার জন্য বিশ্বাস করতে চাই এবং যদি কোনও উত্তর প্রস্তাব দেয় তবে আমি এটি অনুসরণ করতে চাই ( Enterযখন কিছু জিজ্ঞাসা করা হয় তখন সর্বদা আঘাত করুন )।


1
সিপিএএন.পিএম সেটিং-এর ভিত্তিতে অটো ইনস্টল করা পরিবেশের ভেরিয়েবল সেট করার জন্য সম্ভবত আমার সিপিএন স্ক্রিপ্টে একটি বৈশিষ্ট্য যুক্ত করা উচিত। টিসির উত্তর দেখুন, যা সমস্যাটির অন্য অর্ধেক।
ব্রায়ান ডি ফয়ে

উত্তর:


30

স্বয়ংক্রিয়ভাবে প্রথমবারের সিপিএএন কনফিগারেশন সহ এই পরিবর্তনগুলি স্থায়ীভাবে করা ওয়ান-লাইনার এখানে রয়েছে:

perl -MCPAN -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'

বা local::libঅ-সুবিধাযুক্ত ব্যবহারকারীদের জন্য এটি মডিউলটির সাথে একত্রিত করুন :

perl -MCPAN -Mlocal::lib=~/perl5 -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'

সিপিএএন শেল বা যা কিছু ব্যবহার করার আগে এটি চালান।


এটি কি @ এসডিএফ আনওয়ারের মতো নয়?
ফিলিমনভ

83

PERL_MM_USE_DEFAULT এর মতো সেট করার চেষ্টা করুন:

PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install My::Module'

এটি সিপএএনকে সমস্ত অনুরোধের ডিফল্ট উত্তর দেওয়া উচিত।


এই অধ্যবসায়ী করার কোনও উপায়, যাতে আপনি প্রতিবার সিপিতে "ইনস্টল মাই: মডিউল" টাইপ করতে পারেন এবং এটি এটি মনে রাখবে? কনফিগার.এমপি সম্পাদনা করবেন?
জিফ

3
আপনি লিনাক্স হন, তাহলে লাইন যোগ export PERL_MM_USE_DEFAULT=1আপনার ~ / .bashrc করতে
andersand

1
আপনি যদি ত্রুটি পান Can't locate object method "install" via package "xxx" at -e line 1.তবে মডিউলের নামের ঠিক আগে "+" যুক্ত করুন।
ইয়ান সাগান

55

এই প্রশ্নের সর্বশেষতম এবং সবচেয়ে বড় উত্তরটি ব্যবহার করা cpanm পরিবর্তে হয় (এটি অ্যাপ্লিকেশন :: সিপেনমিনাস বা সিপেনমিনাস হিসাবেও পরিচিত)!

বর্ণনা

সিপ্যানমিনিস সিপিএএন থেকে মডিউলগুলি পাওয়ার, আনপ্যাক করা, তৈরি এবং ইনস্টল করার জন্য একটি স্ক্রিপ্ট এবং অন্য কিছু করে না।

এটি নির্ভরতা মুক্ত (নিজেই বুটস্ট্র্যাপ করতে পারে), শূন্য কনফিগারেশন প্রয়োজন এবং একা দাঁড়িয়ে। চলমান অবস্থায়, এটির জন্য কেবল 10MB র‌্যাম প্রয়োজন।

এটি ইনস্টল করতে বুটস্ট্র্যাপ করুন:

curl -L http://cpanmin.us | perl - --sudo App::cpanminus

অথবা আপনি যদি perlbrewসহজভাবে ব্যবহার করছেন

perlbrew install-cpanm

অথবা সিপিএন থেকেই:

cpan install App::cpanminus

এরপরে কার্যকর করে মডিউলগুলি ইনস্টল করুন (প্রয়োজনীয় হিসাবে মূল হিসাবে)

cpanm Foo::Bar

1
আমি যখন ব্যবহার করি তখন আমার এই সমস্যা হয় cpanm, তাই আমাকে এটি ব্যবহার করতে বলা এখানে সমাধান নয়।
রিইনারপোস্ট

3
অন্ধ মন্তব্য করার চেয়ে দয়া করে একটি নতুন প্রশ্ন হিসাবে জিজ্ঞাসা করুন এবং এখানে লিঙ্ক করুন। আমি সন্দেহ করি যে কোনও অনুমতি ইস্যুটি আপনার সমস্যা হতে পারে
জোয়েল বার্গার

একটি উবুন্টুতে 18.04 এ আমি ইনস্টল করেছি sudo apt install cpanminus make
পাবলো এ

নিচে-ভোটিং। লোকেরা কার্লের আউটপুট নির্বাহ করার পরামর্শ দেয় না।
রিচার্ড স্মিথ

28

আপনি যা খুঁজছেন তা আমি নিশ্চিত এটি এখানে:

cpan> o conf prerequisites_policy follow
cpan> o conf commit

27

পূর্বশর্তগুলির নীচে নীচের পরামিতিগুলি পরিবর্তন করা হচ্ছে_পলিসি অনুসরণ করে।

cpan> o conf prerequisites_policy 'follow'
cpan> o conf build_requires_install_policy yes
cpan> o conf commit

এটি এটিকে "জিজ্ঞাসা / হ্যাঁ" থেকে "হ্যাঁ" এ পরিবর্তন করবে এবং আপনাকে জিজ্ঞাসা করা বন্ধ করবে।


ধন্যবাদ! আমার এই দুটি বিকল্পের প্রয়োজন যাতে এটি আমাকে বারবার জিজ্ঞাসা না করে!
ডেটা টিটি

মনে রাখবেন যে এই সেটিংগুলির জন্য এটি ডিফল্ট মান।
ইকগামি

6

হতে পারে এটি ExtUtils :: AutoInstall বা Module :: AutoInstall এর সাথে সম্পর্কিত । PERL_AUTOINSTALL পরিবেশ পরিবর্তনশীল সেট করার চেষ্টা করুন। (সিএফ। Mod মডিউলগুলির ডকুমেন্টেশন))


6

সেট

prerequisites_policy

কনফিগারেশন।

কনফিগার ভেরিয়েবলগুলি দেখুন ।


2
প্রম্পটগুলি মডিউল উত্স ডাউনলোডের সাথে সম্পর্কিত? যদি তা হয় তবে কানেক্ট_ট_ইন্টারনেট_ক বিকল্পটি দেখুন। অন্যথায়, আপনি কী এড়াতে চাইছেন তা অন্যকে জিজ্ঞাসা করুন।
সিনান Ünür

সর্বোপরি মূলত, এই শেষগুলিগুলি ছিল "optionচ্ছিক মডিউলগুলি"।
নিফলে

সমস্যাটি এমন জিনিস যা নিজেরাই স্বয়ংক্রিয়ভাবে ইনস্টল হয়। CPAN.pm এই জিনিসগুলি হ্যান্ডেল করার সুযোগ পায় না। টিসির উত্তর দেখুন।
ব্রায়ান ডি ফয়ে

1
লিঙ্কটি এখন মারা গেছে বলে মনে হচ্ছে
অরেঞ্জডোগ

3

ব্যক্তিগতভাবে আমি সেভাবে সেটিংসটি সংশোধন করার জন্য কয়েকবার চেষ্টা করেছি এবং আসলে কোনও আর্গুমেন্ট না দিয়ে CPAN.pmশেলের মধ্যে ফেলে দেওয়া সহজ মনে হয়েছে cpan, তারপরে CPAN.pmইন্টারেক্টিভ প্রম্পট থেকে কনফিগার করে:

$ cpan
cpan> o conf init

এটি CPAN.pmইন্টারফেস কনফিগারেশন ইউটিলিটি শুরু করবে । কেবল এটির মধ্য দিয়ে চলুন এবং আপনার যেখানে দরকার তা "ফলো" নির্দিষ্ট করুন (আমি প্রশ্নটি ভুলে যাচ্ছি), এবং আপনার ভাল হওয়া উচিত।


আপনি নির্দিষ্ট সেটিংস এ পাস করতে পারেন init। উদাহরণস্বরূপ o conf init prerequisites_policy,। এইভাবে, আপনাকে দীর্ঘ সূচনা প্রক্রিয়াটি অতিক্রম করতে হবে না, তবে তবুও
প্রশ্নোত্তর

3

আমি এটি খুঁজে পেয়েছি, সিপিএএন মডিউলগুলি ইনস্টল করার দ্রুত এবং সবচেয়ে নির্ভরযোগ্য উপায়:

yes | perl -MCPAN -e "CPAN::Shell->notest(qw!install Your::Module!)"

এটি প্রশ্নের উত্তর দেয় না - ওপি স্বয়ংক্রিয়ভাবে নির্ভরতা ইনস্টল করার / অনুরোধগুলিতে স্বয়ংক্রিয়ভাবে প্রতিক্রিয়া জানাতে চায়।
উইলিয়াম তুরেল

আসলে, এটি নির্ভরতা ইনস্টল করে এবং স্বয়ংক্রিয়ভাবে অনুরোধগুলিতে সাড়া দেয়। আমি এই মুহুর্ত সহ সব সময় এটি ব্যবহার করি। তবে একটি ছোট্ট সংশোধন করা দরকার: yes|/root/bin/perl -MCPAN -e "CPAN::Shell->notest(qw!install Your::Module!)"
ভ্লাদিমির মার্চেনকো

" yes" কি করার কথা?
পিটার মর্টেনসেন

2

আমি এটি এমন লোকদের সুবিধার্থে লিখছি যারা কোনও নির্দিষ্ট পার্ল স্ক্রিপ্টের জন্য প্রয়োজনীয় সমস্ত মডিউল নির্ভরতা ইনস্টল করার উপায় অনুসন্ধান করতে এই পৃষ্ঠায় এসে থাকতে পারে। আমি এর জন্য একটি স্ক্রিপ্ট লিখেছিলাম:

এটি হিসাবে চালানো উচিত ./installdep.pl yourscript.pl

#!/usr/bin/perl
`sudo apt install cpanminus`;
while (<>) {
    if (/USE /i)
    {
        my $line=$_;
        $line=~ s/\s//g;
        $line=~ /^(.*)\./;
        $line=~ s/\;//;
        $line=~s/^USE//i;
        $line=~s/lib.*//i;
        $line=~s/feature.*//i;
        $line=~s/strict//i;
        $line=~s/warnings//i;
        $line =~ s/^(.*)\(.*/$1/;
        unless ($line eq '') {
        my $cmd='sudo cpanm '.$line;
        print "Installing $line \n";
        open my $cmd_fh, "$cmd |";
        while (<$cmd_fh>) {
          print "$_";
        }
        close $cmd_fh;
        print "\n";
    }
    }
}

এটি আপনার স্ক্রিপ্টের জন্য প্রয়োজনীয় সমস্ত মডিউল নির্ভরতা ইনস্টল করতে সিপ্যানমিনাস ব্যবহার করবে। সিপিএনএম ইনস্টল না করা থাকলে এটি এটি ইনস্টল করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.