it-swarm-tr.com

Eksik bir Perl modülünü kurmanın en kolay yolu nedir?

Bu hatayı alıyorum:

Can't locate Foo.pm in @INC

Yüklemek, açmak, açmak, yapmaktan daha kolay bir yolu var mı?

170
dreeves

Unix'de :

genelde Kabuğunuzda cpan başlarsınız:

# cpan

ve tür

install Chocolate::Belgian

veya kısa biçimde:

cpan Chocolate::Belgian

Windows'ta :

Windows'ta ActivePerl kullanıyorsanız, PPM (Perl Package Manager) , CPAN.pm ile aynı işlevselliğe sahiptir.

Örnek:

# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart

bakınız Perl modüllerini nasıl kurarım? CPAN SSS’inde

Pek çok dağıtım paket olarak bir çok Perl modülü gönderir.

  • Debian/Ubuntu: apt-cache search 'Perl$'
  • Arch Linux: pacman -Ss '^Perl-'
  • Gentoo: kategori dev-Perl

always otomatik (güvenlik) güncellemelerden ve kolaylığı çıkarılması . Bu cpan aracının kendisi ile oldukça zor olabilir.

Gentoo için, CPAN'dan modülü oluşturan/yükleyen ve bir Gentoo paketi yaratan g-cpan adında bir Güzel aracı var (- ebuild ) senin için.

208

Deneyin App :: cpanminus :

# cpanm Chocolate::Belgian

Sadece bazı şeyleri kurmak için harika. CPAN veya CPANPLUS'un daha karmaşık fonksiyonelliğinin hiçbirini sağlamaz, bu nedenle hangi modülü kurmak istediğinizi bilmeniz koşuluyla kullanımı kolaydır. Zaten cpanminus alamadıysanız, sadece ş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 ile ilgili bölüme bakın.

61
Philip Potter

Sudo’da bir koşu cpanı öneren bazı milletlere dikkat edin. Sistem dizinine kurmak için gerekli olan, ancak CPAN Kabuğu'nun modern versiyonları, kurulum için Sudo sadece kullanacak şekilde yapılandırmanıza izin verir. Bu çok daha güvenli, çünkü testlerin kök olarak çalışmadığı anlamına geliyor.

Eski bir CPAN Kabuk varsa, sadece yeni cpan ("CPAN yükle") yükleyin ve Shell'i yeniden yüklediğinizde, bu yeni yönergeleri yapılandırmanızı ister.

Bugünlerde eski bir CPAN'lı bir sistemdeyken yaptığım ilk şey Shell'i güncellemek ve bunu yapmak için ayarlamaktır, böylece cpan çalışmalarımın çoğunu normal bir kullanıcı olarak yapabilirim.

Ayrıca, Windows kullanıcılarının araştırmasını şiddetle tavsiye ediyorum strawberry Perl . Bu, önceden yapılandırılmış bir CPAN Kabuğu ve bir derleyici ile birlikte gelen bir Perl sürümüdür. Ayrıca, derlenmesi zor bazı Perl modülleri, özellikle XML :: Parser olmak üzere, dış C kitaplığı bağımlılıklarıyla birlikte içerir. Bu, modülleri kurarken 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" eğilimindedir.

29
Dave Rolsky

Ubuntu'daysanız 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 - IP adresinin aranan ülkesi Perl modülü 
 
 $ Sudo apt-get libgeo-ipfree-Perl 
 uygulamasını kurun
24
Otto

Birkaç kişi cpan yardımcı programından bahsetti, ancak bu sadece bir Shell başlatmaktan daha fazlası. Sadece kurmak istediğiniz modülleri verin ve çalışmasını sağlayın.

$Prompt> cpan Foo::Bar

Herhangi bir argüman vermezseniz, CPAN.pm Kabuğunu başlatır. Bu, Unix, Mac'te çalışır ve Windows'ta iyi olmalı (özellikle Strawberry Perl).

Cpan aracıyla da yapabileceğiniz başka şeyler var. İşte mevcut özelliklerin bir özeti (CPAN.pm ve Perl ile 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.
15
brian d foy

Sudo Perl -MCPAN -e 'install Foo'

11
dreeves

Ayrıca bakınız Evet, CPAN bile kullanabilirsiniz . Kök veya Sudo erişimi olmadan CPAN'ı nasıl kullanabileceğinizi gösterir.

10
Corion

Otto, iyi bir öneri yaptı . Bu, herhangi bir Debian türevinin yanı sıra Debian için de geçerlidir. Eksik parça apt-cache search bir şey bulamadığında ne yapmalı.

$ Sudo apt-get install dh-make-Perl build-essential apt-file
$ Sudo apt-file update

O zaman ne zaman rastgele bir modülünüz varsa, kurmak istediğiniz

$ 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 bazı :: Rastgele :: Modül almak için yükleyebileceğiniz bir deb paketini verecektir. Buradaki en büyük avantajlardan biri, man sayfalarıdır ve modülün yanı sıra örnek komut dosyaları da dağıtımınız için tercih ettiğiniz yere yerleştirilecektir. Eğer dağıtım, Some :: Random :: Module'ün daha yeni bir sürümü için resmi bir paketle birlikte gelirse, apt-get'i aldığınızda otomatik olarak kurulur.

8
mikegrb

Zaten cevaplandı ve cevap kabul edildi - ama yine de:

IMHO CPAN modüllerini kurmanın en kolay yolu (unix benzeri sistemlerde ve harikalar hakkında hiçbir fikriniz yok):

curl -L http://cpanmin.us | Perl - --Sudo App::cpanminus

Yukarıdaki, cpanm adlı "sıfır yapılandırma CPAN modülü yükleyicisini" yüklüyor. (Kurulumu birkaç dakika sürebilir - süreci bozmayın)

ve sonra - basitçe:

cpanm Foo
cpanm Module::One
cpanm Another::Module
7
jm666

CPAN.pm için bir çok öneri var, bu harika, ancak Perl 5.10 kullanıyorsanız, o zaman CPANPLUS.pm benzeri fakat daha iyi CPAN.pm seçeneğine de erişebilirsiniz.

Ve tabii ki, Perl’in eski sürümlerini kullanan insanlar için CPAN’te mevcut. Neden denemiyorsunuz:

$ cpan CPANPLUS
6
Dave Cross

Çoğu zaman cpan install komutu, "make testinin kötü durum verdiğini, zorlama olmadan yüklenmediğini" gibi bir mesajla başarısız oldu.

Bu durumda aşağıdaki modül monte edilir:

Perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"
5
jaxbihani

Ubuntu'da çoğu Perl modülü zaten paketlenmiştir, bu nedenle yükleme işlemi derlemek zorunda kalan diğer sistemlerden çok daha hızlıdır.

Komut istemine Foo::Bar komutunu kurmak için, örneğin genellikle yapmanız gereken:

Sudo apt-get install libfoo-bar-Perl

Ne yazık ki, tüm modüller bu adlandırma kurallarına uymuyor.

4
Myforwik

Hatta çalışması gerekir:

cpan -i module_name
4
Mandar Pande

Cpan komutunu cpan Modulename olarak kullanın

$ cpan HTML::Parser

Bağımlılıkları yüklemek için aşağıdakileri otomatik olarak izleyin

$ Perl -MCPAN -e Shell
cpan[1]>  o conf prerequisites_policy follow
cpan[2]>  o conf commit
exit

Ben tercih ederim App :: cpanminus , bağımlılıkları otomatik olarak kurar. Sadece yap

$ cpanm HTML::Parser
4
Chankey Pathak

Benim için en kolay yol şudur:

Perl_MM_USE_DEFAULT=1 Perl -MCPAN -e 'install DateTime::TimeZone'

a) otomatik özyinelemeli bağımlılık algılama/çözme/yükleme

b) bu ​​bir Shell onliner, kurulum komut dosyaları için iyi

3
Mister X

Bildiğim 2 yol:

PPM KULLANIMI:

Windows ile (ActivePerl) ppm kullandım

komut satırından ppm yazın. Ppm İsteminde ...

ppm> install foo

veya

ppm> search foo

foo modüllerinin bir listesini görmek için. Tüm komutlar için help yazın

CPAN KULLANIMI:

cPAN'ı şu şekilde de kullanabilirsiniz ( * nix sistemleri ):

Perl -MCPAN -e 'Shell'

sana bir istemi alır

cpan>

i̇stemde ...

cpan> install foo  (again to install the foo module)

cpan komutlarının listesini almak için h yazın

3
JWHEAT

Fedora Linux veya Enterprise Linux öğesinde, yum, Perl kitaplığı bağımlılıklarını da izler. Bu nedenle, eğer Perl modülü mevcutsa ve bazı rpm paketleri 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)

3
Michal Ingeli

Fedora'da kullanabilirsiniz

# yum install foo

fedora, modül için mevcut bir pakete sahip olduğu sürece.

3
Bruce Alderman

Yeni modülü, cpan Shell'iniz kullanmak için yapılandırılmadığı özel bir yere koymak istiyorsanız, belki 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
2
venkrao

Bazen göreceli Perl modülünü aramak için yum search foo, ardından yüklemek için yum install xxx kullanabilirsiniz.

2
Chris Forever

Cevabınızı zaten almışsınız gibi gözüktüm ama içeri gireceğimi düşündüm. Bir Ubuntu (veya debian sunucusu) üzerindeki bazı betiklerde 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([email protected]){
        system("cpanm $x");
        eval "use $x";
    }
}

Bu benim için iyi çalışıyor, belki burada kullanabileceğiniz bir şey var.

1
Ed Dunn

ActiveState Perl dağıtımı olan Windows'ta ppm komutunu kullanın.

1
PW.

Basitçe cpan Foo::Bar 'u Shell'de çalıştırmak bu amaca hizmet ederdi.

1
Kamal Nayan