it-swarm-ko.tech

누락 된 Perl 모듈을 설치하는 가장 쉬운 방법은 무엇입니까?

이 오류가 발생합니다.

Can't locate Foo.pm in @INC

다운로드, 언 타링, 제작 등보다 쉬운 설치 방법이 있습니까?

170
dreeves

유닉스에서 :

일반적으로 쉘에서 cpan을 시작합니다.

# cpan

그리고 유형

install Chocolate::Belgian

또는 짧은 형태로 :

cpan Chocolate::Belgian

Windows에서 :

Windows에서 ActivePerl을 사용하는 경우 PPM (Perl Package Manager) 는 CPAN.pm과 동일한 기능을 갖습니다.

예:

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

참조 CPAN의 FAQ에서 펄 모듈을 어떻게 설치합니까? 참조

많은 배포판에서 많은 Perl 모듈을 패키지로 제공합니다.

  • 데비안/우분투 : apt-cache search 'Perl$'
  • 아치 리눅스 : pacman -Ss '^Perl-'
  • 젠투 : 카테고리 dev-Perl

자동 (보안) 업데이트제거 용이성으로 혜택을 받으려면 always을 선호해야합니다. 이것은 cpan 도구 자체에서 매우 까다로울 수 있습니다.

젠투에는 CPAN에서 모듈을 빌드/설치하고 젠투 패키지 ( ebuild )를 생성하는 g-cpan라는 멋진 도구가 있습니다.

208
Benedikt Waldvogel

앱 :: cpanminus :

# cpanm Chocolate::Belgian

물건을 설치하는 데 좋습니다. CPAN 또는 CPANPLUS의 더 복잡한 기능은 제공하지 않으므로 설치할 모듈을 알고 있으면 사용하기 쉽습니다. cpanminus가 없다면 다음과 같이 입력하십시오.

# cpan App::cpanminus

그것을 설치하십시오.

Cpan을 전혀 사용하지 않고 설치할 수도 있습니다. 기본 bootstrap 절차는 다음과 같습니다.

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

자세한 내용은 App :: cpanminus 페이지로 이동하여 설치 섹션을 참조하십시오.

61
Philip Potter

Sudo에서 하나의 실행 cpan을 제안하는 사람들이 있습니다. 이전에는 시스템 디렉토리에 설치해야했지만 CPAN 쉘의 최신 버전에서는 설치에 Sudo just 를 사용하도록 구성 할 수 있습니다. 테스트가 루트로 실행되지 않기 때문에 훨씬 안전합니다.

이전 CPAN 셸이있는 경우 새 cpan ( "install CPAN")을 설치하고 셸을 다시로드하면 이러한 새 지시문을 구성하라는 메시지가 표시됩니다.

요즘 구 CPAN이있는 시스템에있을 때 가장 먼저해야 할 일은 쉘을 업데이트하고이를 수행하도록 설정하여 대부분의 cpan 작업을 일반 사용자로 수행 할 수 있습니다.

또한 Windows 사용자는 strawberry Perl 을 조사하는 것이 좋습니다. 이 버전은 컴파일러뿐만 아니라 사전 구성된 CPAN 셸과 함께 제공되는 Perl 버전입니다. 또한 외부 C 라이브러리 종속성, 특히 XML :: Parser와 함께 컴파일하기 어려운 Perl 모듈도 포함합니다. 이는 모듈을 설치할 때 다른 모든 Perl 사용자와 동일한 작업을 수행 할 수 있으며 일이 더 자주 "작동하는"경향이 있음을 의미합니다.

29
Dave Rolsky

Ubuntu를 사용 중이고 사전 패키지 된 Perl 모듈 (예 : geo :: ipfree)을 설치하려면 다음을 시도하십시오.

 $ apt-cache search Perl geo :: ipfree 
 libgeo-ipfree-Perl-ip 주소 Perl 모듈의 조회 국가 
 
 $ Sudo apt-get libgeo-ipfree-Perl 
 설치
24
Otto

두 사람이 cpan 유틸리티를 언급했지만 셸을 시작하는 것 이상입니다. 설치하려는 모듈을 제공하고 작동하도록하십시오.

$Prompt> cpan Foo::Bar

인수를 제공하지 않으면 CPAN.pm Shell이 ​​시작됩니다. 이것은 Unix, Mac에서 작동하며 Windows (특히 Strawberry Perl)에서는 잘 작동합니다.

Cpan 도구로 수행 할 수있는 몇 가지 다른 작업이 있습니다. 다음은 현재 기능에 대한 요약입니다 (CPAN.pm 및 Perl과 함께 제공되는 기능보다 최신 기능 일 수 있음).

-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

예, CPAN도 사용할 수 있음 도 참조하십시오. 루트 또는 Sudo 액세스 권한없이 CPAN을 사용하는 방법을 보여줍니다.

10
Corion

오토는 좋은 제안 를 만들었다. 이것은 데비안뿐만 아니라 다른 데비안 파생물에서도 작동합니다. 누락 된 부분은 apt-cache 검색에서 무언가를 찾지 못할 때 수행 할 작업입니다.

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

그런 다음 임의 모듈이있을 때마다 설치하려고합니다.

$ cd ~/some/path
$ dh-make-Perl --build --cpan Some::Random::Module
$ Sudo dpkg -i libsome-random-module-Perl-0.01-1_i386.deb

그러면 Some :: Random :: Module을 얻기 위해 설치할 수있는 deb 패키지가 제공됩니다. 여기서 큰 이점 중 하나는 모듈 자체 외에 매뉴얼 페이지와 샘플 스크립트가 배포판의 선택한 위치에 배치된다는 것입니다. 배포판에 Some :: Random :: Module의 최신 버전에 대한 공식 패키지가 포함 된 경우 업그레이드를 수행하면 자동으로 설치됩니다.

8
mikegrb

이미 답변하고 수락했습니다. 그러나 어쨌든 :

시스템과 같은 유닉스에서 CPAN 모듈을 설치하는 가장 쉬운 방법은 IMHO입니다.

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

위의 cpanm이라는 "제로 구성 CPAN 모듈 설치 프로그램"을 설치 중입니다. (설치하는 데 몇 분이 걸릴 수 있음-프로세스를 중단하지 마십시오)

그리고 이후-단순히 :

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

CPAN.pm에 대한 많은 추천이 있지만, Perl 5.10을 (를) 사용하는 경우 CPANPLUS.pm와 같은 CPAN.pm에 액세스 할 수 있지만 더 좋습니다.

물론 이전 버전의 Perl을 사용하는 사람들을 위해 CPAN에서 사용할 수 있습니다. 시도해 보지 않겠습니까?

$ cpan CPANPLUS
6
Dave Cross

여러 번 cpan install 명령이 "make test가 잘못된 상태를 반환했습니다. 강제로 설치하지 않습니다"와 같은 메시지와 함께 실패합니다.

이 경우 다음은 모듈을 설치하는 방법입니다.

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

우분투에서는 대부분의 Perl 모듈이 이미 패키지되어 있으므로 컴파일해야하는 대부분의 다른 시스템보다 설치 속도가 훨씬 빠릅니다.

예를 들어 일반적인 프롬프트에서 Foo::Bar을 (를) 설치하려면 다음과 같이하십시오.

Sudo apt-get install libfoo-bar-Perl

안타깝게도 모든 모듈이 해당 명명 규칙을 따르는 것은 아닙니다.

4
Myforwik

심지어 작동해야합니다.

cpan -i module_name
4
Mandar Pande

Cpan 명령을 cpan Modulename로 사용하십시오.

$ cpan HTML::Parser

종속성을 자동으로 설치하려면 다음을 따르십시오.

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

App :: cpanminus 를 선호하며 종속성을 자동으로 설치합니다. 그냥 해

$ cpanm HTML::Parser
4
Chankey Pathak

가장 쉬운 방법은 다음과 같습니다.

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

a) 자동 재귀 종속성 감지/해결/설치

b) 쉘 온라인 사용자이며 설정 스크립트에 적합합니다.

3
Mister X

내가 아는 두 가지 방법 :

사용 중 PPM :

Windows (ActivePerl) 사용하면 ppm을 사용했습니다.

명령 행 유형에서 ppm. ppm 프롬프트에서 ...

ppm> install foo

또는

ppm> search foo

사용 가능한 foo 모듈 목록을 가져옵니다. 모든 명령에 help를 입력하십시오.

CPAN 사용 :

다음과 같이 CPAN을 사용할 수도 있습니다 (* nix systems).

Perl -MCPAN -e 'Shell'

당신에게 프롬프트를 얻는다

cpan>

프롬프트에서 ...

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

cpan에 대한 명령 목록을 얻으려면 h를 입력하십시오.

3
JWHEAT

Fedora Linux 또는 Enterprise Linux에서 yum도 Perl 라이브러리 종속성을 추적합니다. 따라서 Perl 모듈을 사용할 수 있고 일부 rpm 패키지가 해당 종속성을 내 보내면 올바른 패키지가 설치됩니다.

yum install 'Perl(Chocolate::Belgian)'

(대부분 Perl-Chocolate-Belgian 패키지 또는 ChocolateFactory 패키지)

3
Michal Ingeli

Fedora에서는 다음을 사용할 수 있습니다

# yum install foo

fedora에 모듈에 대한 기존 패키지가있는 한.

3
Bruce Alderman

Cpan 쉘이 사용하도록 구성되지 않은 사용자 정의 위치에 새 모듈을 배치하려면 다음이 유용 할 것입니다.

 #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

때때로 yum search foo를 사용하여 상대 Perl 모듈을 검색 한 다음 yum install xxx를 사용하여 설치할 수 있습니다.

2
Chris Forever

당신이 이미 당신의 대답을 얻은 것 같지만 나는 차임 할 것이라고 생각했습니다. 이것은 우분투 (또는 데비안 서버)의 일부 스크립트에서하는 일입니다.

#!/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";
    }
}

이것은 나를 위해 잘 작동합니다. 어쩌면 여기에 사용할 수있는 것이있을 수 있습니다.

1
Ed Dunn

ActiveState 배포가 Perl 인 Windows에서는 ppm 명령을 사용하십시오.

1
PW.

셸에서 cpan Foo::Bar을 실행하면 목적을 달성 할 수 있습니다.

1
Kamal Nayan