Bu hatayı alıyorum:
Can't locate Foo.pm in @INC
Yüklemenin, indirmekten, untarring, yapımdan, vb.
Bu hatayı alıyorum:
Can't locate Foo.pm in @INC
Yüklemenin, indirmekten, untarring, yapımdan, vb.
Yanıtlar:
Unix'te :
genellikle kabuğunuzda cpan başlatırsınız :
# cpan
ve yazın
install Chocolate::Belgian
veya kısa formda:
cpan Chocolate::Belgian
Windows'ta :
Windows'ta ActivePerl kullanıyorsanız, PPM (Perl Paket Yöneticisi) CPAN.pm ile aynı işleve sahiptir.
Misal:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
bkz. Perl modüllerini nasıl kurarım? CPAN SSS bölümünde
Birçok dağıtım paket olarak birçok perl modülü gönderiyor.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Otomatik (güvenlik) güncellemelerden ve kaldırma kolaylığından yararlandıkça bunları her zaman tercih etmelisiniz . Bu cpan aracının kendisi ile oldukça zor olabilir .
Gentoo için modülü CPAN'dan oluşturan / yükleyen ve sizin için bir Gentoo paketi ( ebuild ) oluşturan g-cpan adında güzel bir araç var.
ppm
tire kullanır , bu da çok daha dürüsttür. Örneğin, yüklemek için kullanırsanız , ya da sizin için dağıtımı yükleyecektir . Dağıtımların çoğunluğu, eşdeğer bir adı olan tek bir modül içerir, ancak bunun gibi birkaç istisna vardır-
cpan
LWP
LWP::Simple
LWP::UserAgent
libwww-perl
Uygulamayı deneyin :: cpanminus :
# cpanm Chocolate::Belgian
Sadece bir şeyler yüklemek için harika. CPAN veya CPANPLUS'un daha karmaşık işlevlerinden hiçbirini sağlamaz, bu nedenle hangi modülü kurmak istediğinizi bilmeniz koşuluyla kullanımı kolaydır. Henüz cpanminus'unuz yoksa şunu yazın:
# cpan App::cpanminus
yüklemek için.
Ayrıca cpan kullanmadan da kurmak mümkündür. Temel bootstrap prosedürü,
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
Daha fazla bilgi için App :: cpanminus sayfasına gidin ve kurulum bölümüne bakın.
cpan
Yüklemek App::cpanminus
için kullanmak biraz tuhaf. Normal yükleme talimatları, bir kısmını cpanmin.us'tan indirme ve geri kalanını yüklemek için bunu içeren bir önyükleme prosedürünü içerir . Bu, cpan
(bundan sonra) yararsız bir .cpan
dizinin yapılandırılmasını ve oluşturulmasını önler .
cpanminus
terminalden kurulum yapabilirsiniz . Hata günlüklerini ekrana koymadığı için onları geçici günlük dosyalarında sakladığı ve hata durumunda yol verdiği için cpanm
daha iyi buluyorum cpan
.
Ben sudo altında bir çalışma cpan düşündüren bazı millet not. Bu eskiden sistem dizinine kurmak için gerekliydi, ancak CPAN kabuğunun modern sürümleri onu sadece yükleme için sudo kullanacak şekilde yapılandırmanıza izin veriyor . Bu çok daha güvenlidir, çünkü testler kök olarak çalışmaz.
Eski bir CPAN kabuğunuz varsa, yeni cpan'ı ("CPAN'ı yükle") yükleyin ve kabuğu yeniden yüklediğinizde, bu yeni yönergeleri yapılandırmanızı isteyecektir.
Günümüzde, eski bir CPAN ile bir sistemdeyken, yaptığım ilk şey kabuğu güncellemek ve bunu yapmak için ayarlamaktır, böylece cpan işlerimin çoğunu normal bir kullanıcı olarak yapabilirim.
Ayrıca, Windows kullanıcılarının çilek Perl'i araştırmasını şiddetle tavsiye ediyorum . Bu, önceden yapılandırılmış bir CPAN kabuğu ve bir derleyici ile birlikte gelen Perl'nin bir sürümüdür. Ayrıca, harici XML kütüphanesi bağımlılıklarıyla, özellikle XML :: Ayrıştırıcı ile derlenmesi zor Perl modüllerini de içerir. Bu, modülleri kurmak söz konusu olduğunda diğer tüm Perl kullanıcılarıyla aynı şeyi yapabileceğiniz anlamına gelir ve işler daha sık "sadece" işe yarar.
install CPAN
Nereden? $sudo apt-get install cpan
?
App::cpanminus
, onu kullanmak büyük bir keyif. Philip Potter burada cevabında bunu önerdi ve bu Chas'ı deneyebilirsiniz . Owens cevabı .
Ubuntu üzerindeyseniz ve önceden paketlenmiş perl modülünü kurmak istiyorsanız (örneğin, geo :: ipfree) şunu deneyin:
$ apt-cache search perl geo :: ipfree libgeo-ipfree-perl - Bir IP adresi Perl modülü ülkesi $ sudo apt-get install libgeo-ipfree-perl
Birkaç kişi cpan yardımcı programından bahsetti, ama sadece bir kabuk başlatmaktan daha fazlası. Sadece kurmak istediğiniz modülleri verin ve çalışmasına izin verin.
$prompt> cpan Foo::Bar
Eğer herhangi bir argüman vermezseniz, CPAN.pm kabuğunu başlatır. Bu Unix, Mac üzerinde çalışır ve Windows'ta (özellikle Çilek Perl) iyi olmalıdır.
Cpan aracıyla yapabileceğiniz başka şeyler de var. Mevcut özelliklerin bir özeti (CPAN.pm ve perl ile birlikte gelenlerden daha yeni olabilir):
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Ayrıca bkz. Evet, hatta CPAN kullanabilirsiniz . Kök veya sudo erişimine sahip olmadan CPAN'ı nasıl kullanabileceğinizi gösterir.
Otto iyi bir öneri yaptı . Bu, Debian ve diğer Debian türevleri için de geçerlidir. Eksik parça apt-cache search bir şey bulamadığında ne yapılacağıdır.
$ sudo apt-get install dh-make-perl build-essential apt-file
$ sudo apt-file update
Ardından rastgele bir modülünüz olduğunda:
$ cd ~/some/path
$ dh-make-perl --build --cpan Some::Random::Module
$ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.deb
Bu size Some :: Random :: Module almak için yükleyebileceğiniz bir deb paketi verecektir. Buradaki en büyük faydalardan biri, modülün kendisine ek olarak man sayfaları ve örnek komut dosyaları dağıtımınızın tercih ettiği yere yerleştirilecektir. Distro, Some :: Random :: Module yazılımının daha yeni bir sürümü için resmi bir paketle gelirse, yükseltmeye başladığınızda otomatik olarak yüklenir.
Zaten cevaplandı ve yanıtı kabul etti - ama yine de:
IMHO CPAN modüllerini kurmanın en kolay yolu (unix benzeri sistemlerde ve mucizeler hakkında hiçbir fikri yok):
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
Yukarıdaki "sıfır yapılandırma CPAN modülleri yükleyici" denilen yüklüyor cpanm
. (Kurulumu birkaç dakika sürebilir - işlemi kırmayın)
ve sonra - basitçe:
cpanm Foo
cpanm Module::One
cpanm Another::Module
Tavsiye için bir sürü CPAN.pm
, bu harika, ama kullanıyorsanız Perl 5.10
o zaman da CPANPLUS.pm
hangi gibi CPAN.pm
ama daha iyi erişim var .
Ve elbette, CPAN
hala Perl'in eski sürümlerini kullanan insanlar için kullanılabilir. Neden denemiyorsunuz:
$ cpan CPANPLUS
Çoğu zaman cpan install komutunun "testin kötü durum döndürdüğünü, zorlanmadan yüklenmeyeceğini" iletisiyle başarısız olması
Bu durumda modülü takmanın yolu aşağıdadır:
perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"
Ubuntu'da çoğu perl modülü zaten paketlenmiştir, bu nedenle kurulum derlemek zorunda olan diğer sistemlerden çok daha hızlıdır.
Foo::Bar
Örneğin bir komut istemine yüklemek için genellikle şunları yaparsınız:
sudo apt-get install libfoo-bar-perl
Ne yazık ki tüm modüller bu adlandırma kuralına uymuyor.
Cpan komutunu şu şekilde kullanın: cpan Modulename
$ cpan HTML::Parser
Bağımlılıkları yüklemek için otomatik olarak aşağıdakileri izleyin
$ perl -MCPAN -e shell
cpan[1]> o conf prerequisites_policy follow
cpan[2]> o conf commit
exit
App :: cpanminus'u tercih ederim , bağımlılıkları otomatik olarak yükler. Sadece yap
$ cpanm HTML::Parser
Bildiğim 2 yol:
PPM KULLANMA:
ile Windows'un (ActivePerl) Kullandığım ppm
komut satırından ppm yazın. Ppm isteminde ...
ppm> install foo
veya
ppm> search foo
foo modüllerinin bir listesini almak için. Tür yardım tüm komutlar için
CPAN KULLANMA:
CPAN'ı şu şekilde de kullanabilirsiniz ( * nix sistemleri ):
perl -MCPAN -e 'shell'
sana bir emir verir
cpan>
anında ...
cpan> install foo (again to install the foo module)
cpan komutlarının bir listesini almak için h yazın
Fedora'da şunları kullanabilirsiniz:
# yum install foo
Fedora modül için mevcut bir pakete sahip olduğu sürece.
Açık Fedora Linux
veya Enterprise Linux
, yum
ayrıca parça kütüphane bağımlılıkları perl. Yani, perl modülü mevcutsa ve bazı rpm paketi bu bağımlılığı dışa aktarırsa, sizin için doğru paketi kuracaktır.
yum install 'perl(Chocolate::Belgian)'
(büyük olasılıkla perl-Çikolata-Belçika paketi, hatta ChocolateFactory paketi)
Yeni modülü, cpan kabuğunuzun kullanmak için yapılandırılmadığı özel bir konuma koymak istiyorsanız, belki de aşağıdakiler kullanışlı olacaktır.
#wget <URL to the module.tgz>
##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
Bazen yum search foo
göreli perl modülünü aramak için tuşunu, ardından yum install xxx
kurmak için tuşunu kullanabilirsiniz .
Güvenli çözüm
Birçok cevap , güvenlikle ilgili bir kelime olmadan cpan
yardımcı programın (kullanan CPAN.pm
) kullanıldığından bahseder . Varsayılan olarak, CPAN
2.27 ve önceki sürümleri MITM saldırılarına izin veren urllist
bir http URL'si ( http://www.cpan.org/ ) kullanacak şekilde yapılandırır , bu nedenle güvensizdir. CHECKSUMS
Dosyaları indirmek için kullanılan budur , böylece güvenli bir URL olarak değiştirilmesi gerekir (örn. Https://www.cpan.org/ ).
Bu nedenle, cpan'ı çalıştırıp varsayılan yapılandırmayı kabul ettikten sonra, oluşturulan MyConfig.pm
dosyayı (tam yol çıktıdır) aşağıdaki şekilde değiştirmeniz gerekir. değiştirmek
'urllist' => [q[http://www.cpan.org/]],
tarafından
'urllist' => [q[https://www.cpan.org/]],
Not: https yeterli değildir; güvenebileceğiniz bir web sitesine de ihtiyacınız var. Bu nedenle, rasgele bir ayna seçmek istiyorsanız dikkatli olun.
Sonra kullanabilirsiniz cpan
her zamanki gibi .
Benim hata raporu güvensiz URL hakkında rt.cpan.org üzerinde.
https://www.cpan.org/
).
Sadece cpan Foo::Bar
kabuk üzerinde yürütmek amaca hizmet edecektir.
Görünüşe göre cevabınızı almışsınız ama içeri gireceğimi düşündüm. Bir Ubuntu'daki (veya debian sunucusundaki) bazı komut dosyalarında yaptığım şey bu
#!/usr/bin/perl
use warnings;
use strict;
#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'} = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';
#Fill this with the perl modules required for your project
my @perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::ProcessTable);
chomp(my $curl = `which curl`);
if(!$curl){ system('apt-get install curl -y > /dev/null'); }
chomp(my $cpanm = system('/bin/bash', '-c', 'which cpanm &>/dev/null'));
#installs cpanm if missing
if($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus'); }
#loops through required modules and installs them if missing
foreach my $x (@perl){
eval "use $x";
if($@){
system("cpanm $x");
eval "use $x";
}
}
Bu benim için iyi çalışıyor, belki burada kullanabileceğiniz bir şey var.