2017-05-23 1 views
-2

perl 모듈을 설치하려고합니다 : Net :: SSH2 with cpan하지만 실제로는 작동하지 않습니다.Cant install Net :: SSH2 perl module

cpan -f install Net::SSH2 

출력 :

CPAN : 저장 가능한 '/root/.cpan/sources/authors/01mailrc.txt.gz' 을 읽어가는 확인 (V2.20)로드 ... .................................................. ....................... 완료 '/root/.cpan/sources/modules/02packages.details.txt.gz'로 이동하기 데이터베이스 생성 날짜 : 2017 년 5 월 22 일 22:29:03 GMT HTTP :: Date 사용할 수 없음 ............. 새 CPAN.pm 버전 (v2.16)을 사용할 수 있습니다.
[현재 실행중인 버전은 v1.9402입니다.] CPAN reload cpan을 설치하면 CPAN.pm을 업그레이드하고 현재 세션을 종료하지 않고 새 버전을 실행할 수 있습니다.

.............................................. ................. DONE '/root/.cpan/sources/modules/03modlist.data.gz'읽으 실 수 없음 을 통해 객체 메소드 "data"를 찾을 수 없음 패키지 "CPAN :: Modulelist"(아마도 "CPAN :: Modulelist"를로드하는 것을 잊었습니까?)에서 (0120) 색인 :: rd_modlist ('CPAN :: Index', '/root/.cpan/sources/modules/03modlist.data.gz') /usr/share/perl5/CPAN/Index.pm 라인 85 CPAN : : Index :: reload ('CPAN :: Index')는 /usr/share/perl5/CPAN.pm 라인에서 호출됩니다. 955 CPAN :: exists ('CPAN = HASH (0x21fd2f0)', 'CPAN :: Module', ' install ')/usr/share/perl5/C에서 호출됩니다. PAN/Shell.pm 라인 1243 /usr/share/perl5/CPAN/Shell.pm 라인에서 호출 된 CPAN :: Shell :: expandany ('CPAN :: Shell', 'install') 라인 1639 CPAN :: Shell :: /usr/share/perl5/CPAN/Shell.pm 라인에서 호출 된 rematein ('CPAN :: Shell', 'force', 'install', 'install') 1935 CPAN :: Shell :: ANON ('CPAN/usr/bin/cpan 라인에서 호출 됨main :: _ default ('ARRAY (0x1938f18)')/usr/bin/cpan 라인에서 호출 됨 278

답변

0

PerlMonks thread에는 비슷한 문제가있는 다른 사람이 있습니다. 이 대답은이 경우에 효과가있는 것처럼 보입니다.

.cpan 디렉토리에 손상된 데이터가있는 것 같습니다. 나는 그것을 날려 다시 시도 것 :

$ rm -rf /home/user/.cpan 

이 당신의 자신의 위험을보십시오. 귀하의 경우에는 /root/.cpan을 삭제해야합니다.

또한 cpan의 올바른 사용은 명령 다음에 모듈 이름을 나열하는 것입니다. 따라서 cpan install Net::SSH2 대신 cpan Net::SSH2을 사용해야합니다. -f 옵션을 사용하는 경우 -i : cpan -f -i Net::SSH2을 지정해야하지만 먼저 강제 설정하지 않아야합니다. 시스템의 깨진 모듈을 시스템의 perl에 아무렇지도 않게 설치하고 싶지는 않습니다.

실제로 일반적으로 시스템의 perl은 전혀 엉망이되고 싶지 않습니다. 자신의 perl을 빌드하고 원하는만큼 엉망으로 만듭니다.

PS : install은 많은 사람들이이 실수를 저지르기 때문에 정확하게 만들어진 더미 모듈입니다.

1

CPAN 설치가 불완전하거나 손상된 것으로 보입니다. OS와 Perl 버전이 도움이 될 수 있습니다. 현재 많은 리눅스 배포판에서, Perl 모듈과 그 의존성은 yum (RHEL/CentOS), apt (Debian/Ubuntu), yast (SuSE)와 같은 일반적인 시스템 소프트웨어 유틸리티를 사용하여 설치할 수 있습니다. 단점은 최신 버전이 아닐 수 있습니다.

0

Perl 모듈을 설치하는 가장 안전하고 편리한 방법은 배포판에 따라 달라질 수 있습니다. 예를 들어, the recommended method on Fedora은 다음과 같습니다 시스템에 펄 모듈을 설치, 그 예와 같이

$ sudo dnf install 'perl(Net::SSH2)' 

은 일반적으로 sudo를 또는 루트 사용자가 필요합니다. 따라서 sudoer 인 경우 sudo 명령을 사용하는 것이 좋습니다.

그런 종류의 전원이 없다면 로컬로 설치해야 할 수 있습니다. 일반적으로 홈 디렉토리에 생성 한 Perl 라이브러리 디렉토리로 다운로드하고, 에 경로를 포함하여 $PERL5LIB을 업데이트하여 /home/user/perl/modules/Net-SSH2/lib/ 또는 모듈 lib 디렉토리의 경로가 무엇이든간에 업데이트하는 것을 의미합니다.