CPAN vs. APT : 버전 충돌?


9

어디에서나 이에 대한 답을 찾을 수 없습니다. APT를 통해 설치된 모듈이 CPAN을 통해 설치된 모듈과 충돌합니까?

설치된 CPAN 모듈은 어디에 있습니까? 전 세계적으로 또는 설치 사용자 만 액세스 할 수 있습니까? 어느 것을 어떻게 알 수 있습니까? 무엇이 설치되고 어떤 것이 우선하는지 어떻게 알 수 있습니까?

APT를 통해 모듈을 설치할 때 CPAN을 사용해야합니까?

답변:


8

데비안과 우분투에서 CPAN ( /usr/bin/cpan유틸리티) /usr/local/lib/은 기본적으로 모듈을 설치합니다 . 데비안 패키지는 자신의 파일을 보관 /usr/share/perl5/하고 /usr/lib/perl5/. 따라서 설치된 파일 /usr/bin/cpan은 apt를 통해 설치된 파일을 덮어 쓰지 않습니다.

시스템 perl을 사용하는 데 아무런 문제가 없으며 apt와 cpan 코드를 혼합하면 일반적으로 작동합니다.

apt 리포지토리에서 사용할 수없는 cpan 배포를 수동으로 패키징하도록 선택할 수도 있습니다. dh-make-perl 도구를 사용하면 쉽습니다.

dh-make-perl --cpan Some::Module && cd Some-Module* && sudo debi

cpan설치된 모듈 이있는 위치 는 PERL에 의해 결정됩니다 Config.pm. 내 우분투 11.04에서는입니다 /usr/local/share/perl/5.10.1.
Riccardo Murri

/usr/local/share순수한 펄 모듈과 /usr/local/libxs를 위한 것이라고 생각합니다 .
berekuk

6

나는 perlbrew를 사용 합니다 . 로컬 버전의 Perl 및 cpan을 설치합니다. 모든 작업은 홈 디렉토리에서 수행됩니다. 설치 및 사용이 간단하며 최신 버전의 Perl을 설치할 수 있습니다.


2
시스템 펄에서 출발하고 싶을 때도 좋습니다.
szabgab

4

CPAN에서 직접 설치하는 경우 local :: lib를 개인 디렉토리에 사용하는 것이 좋습니다. 부스트 랩핑 기술 참조 https://metacpan.org/module/local::lib

그렇게하면 CPAN 설치 모듈은 사용자 만 사용하게되며 APT를 사용하여 설치된 모듈과는 아주 깨끗하게 분리됩니다.

또한 문제가 발생하거나 Ubuntu를 업그레이드 할 때 CPAN 설치 모듈을 쉽게 제거 할 수 있습니다.

그것이 우분투에서 사용하는 방법입니다.


1

둘 다 사용할 수 있지만 충돌합니다. 그것들은 같은 장소에 작성되었으므로 apt에서 무언가를 설치하고 cpan에서 최신 버전을 설치하면 일을 피할 수 있습니다.

나는 많은 Perl을하지 않지만 파이썬에서는 분명히 당신이 말하는 딜레마가 있습니다 : apt-vs-PyPI. 나는 가능할 때마다 개인적으로 apt를 선택합니다. 그것은 각각의 개별 파이썬 패키지를 유지 관리 할 필요없이 업데이트를 받아야한다는 것을 의미합니다. 뿐만 아니라 모든 시스템이 동일한 버전의 패키지에서 실행되고 있어야합니다.

항상 운동하는 것은 아닙니다. 때로는 repos에 새로운 것들이 충분하지 않거나 필요한 것이 포장되어 있지 않은 경우가 있습니다. 어느 쪽도 완벽하지는 않지만 완벽 하다고 생각 합니다. 하고있는 일을 알고 있으면 괜찮을 것입니다.


편집 -거의 잊어 버렸습니다. 시스템을 자체 환경으로 유지할 수 있도록 개발하는 더 좋은 방법이 있으며 개발중인 모든 것이 자체 환경에서 살 수 있습니다 (CPAN으로 완전히 관리) virtualenv.

/programming/1423879/how-can-i-install-specialized-environments-for-different-perl-applications


CPAN이 일부 Site또는 site디렉토리에 설치되기를 바랍니다. 또는 적어도 강제로 실행할 수 있기를 바랍니다.
메이

3
참고 : Ubuntu에서 cpan설치된 모듈은 / usr / local / share / perl (또는 PERL이 지정한 위치 Config.pm)로 끝나는 반면 APT 패키지는 데비안 정책에 따라 / usr / share / perl5로 끝납니다. 따라서 충돌 하지 않으며 CPAN 및 APT 설치를 혼합하여 일치시키는 것이 안전합니다. (Python은 여기서 좋은 비유가 아닙니다 : PERL 패키징과 모듈 처리는 파이썬과는 매우 다르고 -IMHO-가 뛰어납니다.)
Riccardo Murri

@Riccardo : 그렇습니다. 다른 위치에서도 마찬가지입니다.
Mei
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.