'cpan'을 통해 설치된 Perl 모듈을 어떻게 제거 할 수 있습니까?
사용자 공간 (루트를 통해 설치되지 않음)에서 실행중인 Perl을 사용하고 명령 줄을 통해 모듈을 설치하고 있습니다 cpan
. 개별 파일을 삭제하는 많은 작업을 할 필요없이 모듈을 제거하는 간단한 방법이 있는지 알고 싶습니다.
나는 인터넷 에서이 질문을 검색하고 몇 가지 답변을 찾았지만 내가 찾은 답변은 Perl 패키지 관리자 (Microsoft Windows 전용) 또는 운영 체제 별 (BSDpan) 사용에 대해 논의하는 것처럼 보입니다. 나는 여러 가지 나쁜 경험을했거나) 다음과 같이 죽은 링크를 가리키며 끝났습니다 http://www.cpan.org/misc/cpan-faq.html#How_delete_Perl_modules
.
내 질문은 특히 .NET을 통해 설치된 모듈을 제거하는 깨끗한 방법이 있는지 여부 cpan
입니다.
당신은 할 수 없습니다. 내 CPAN 클라이언트에는 이러한 작업을 수행하는 기능이 없습니다. 우리는 이번 주말의 Perl QA Workshop에서 어떻게 그렇게 할 수 있는지에 대해 이야기하고 있었지만 Ether가 언급 한 모든 이유로 일반적으로 어렵습니다.
App::cpanminus
CPAN에서 설치합니다 (사용 :이를cpan App::cpanminus
위해).- cpanminus를 사용하여 모듈을 제거하려면 입력
cpanm --uninstall Module::Name
( "m
" 참고)하십시오 .
작동합니다.
일반적으로 CPAN 모듈과 함께 제공되는 특정 '제거'메커니즘은 없습니다. 그러나 일부 패키지에는 설치 스크립트에이 지시문이 포함되어 make uninstall
있으므로 모듈이 압축 해제 된 원래 디렉토리 (종종 /root/.cpan
또는 아래에 있음 ~/.cpan
) 에서 시도 할 수 있습니다 . (그러나 로컬 (루트가 아닌) 라이브러리 디렉토리에 모듈을 설치 했으므로이 전체 디렉토리를 날려 버리고 유지하려는 다른 모든 것을 다시 설치할 수도 있습니다.)
많은 시간 동안 perllib에서 A/B.pm
파일 ( A::B
모듈 용)을 제거하는 것만으로도 벗어날 수 있습니다. 그러면 최소한 모듈을 사용할 수 없게됩니다. 대부분의 모듈에는 설치할 파일 목록 ( "매니페스트"라고 함)도 포함되어 있으므로이를 찾을 수 있으면 삭제할 수있는 파일을 알 수 있습니다.
그러나 이러한 접근 방식은 종속성으로 설치된 모듈을 처리하지 않습니다. 다른 것이 해당 모듈에 종속되어 있는지 알 수있는 좋은 (자동화 된) 방법이 없으므로 확신이 들면 수동으로도 제거해야합니다.
모듈 제거의 어려움은 많은 Perl 개발자가 설치를 추적하기 위해 개정 제어 시스템을 사용하는 한 가지 이유입니다. 예를 들어 brian d foy 의 기사 를 패키지 관리를위한 git 사용에 대해 논의하는 그의 다가오는 책의 보충 자료로 참조하십시오 .
CPAN에는 모듈을 제거하려는 스크립트가 있습니다.
ExtUtils :: Packlist 는 코드를 제거하는 샘플 모듈을 보여줍니다 modrm
.
2013 업데이트 :이 코드는 더 이상 사용되지 않습니다. 찬성 투표 BSB는 대답을 늦게오고 대신.
모듈을 자주 제거 할 필요 .packlist
는 없지만 파일 기반 접근 방식은 지금까지 실패한 적이 없습니다.
use 5.010;
use ExtUtils::Installed qw();
use ExtUtils::Packlist qw();
die "Usage: $0 Module::Name Module::Name\n" unless @ARGV;
for my $mod (@ARGV) {
my $inst = ExtUtils::Installed->new;
foreach my $item (sort($inst->files($mod))) {
say "removing $item";
unlink $item or warn "could not remove $item: $!\n";
}
my $packfile = $inst->packlist($mod)->packlist_file;
print "removing $packfile\n";
unlink $packfile or warn "could not remove $packfile: $!\n";
}
모듈을 설치할 때 주로 해당 .pm 파일을 각 디렉토리에 넣습니다. 따라서 일부 테스트 목적으로 만 모듈을 제거하려는 경우 또는 일시적으로 가장 좋은 방법은 모듈이 저장된 경로를 찾은 perldoc -l <MODULE>
다음 해당 모듈을 다른 위치로 이동하는 것입니다. 이 접근 방식은보다 영구적 인 해결책으로 시도 할 수도 있지만 주로 테스트를 위해 수행하므로 부정적인 결과를 알지 못합니다.
참고 URL : https://stackoverflow.com/questions/2626449/how-can-i-de-install-a-perl-module-installed-via-cpan
'program story' 카테고리의 다른 글
.NET에서 프로그래밍 방식으로 Windows 서비스를 다시 시작하는 방법 (0) | 2020.11.23 |
---|---|
새로 설치 한 후 Postgresql에 어떻게 로그인하고 인증합니까? (0) | 2020.11.23 |
클래스 속성을 Symfony2 양식 입력으로 설정하는 방법 (0) | 2020.11.22 |
'if'문이 왜 악한 것으로 간주됩니까? (0) | 2020.11.22 |
오류 : ': app : processDebugResources'작업에 대한 실행이 실패했습니다. (0) | 2020.11.22 |