![CPAN 대 APT: 버전 충돌?](https://rvso.com/image/1035891/CPAN%20%EB%8C%80%20APT%3A%20%EB%B2%84%EC%A0%84%20%EC%B6%A9%EB%8F%8C%3F.png)
이에 대한 답은 어디서도 찾을 수 없습니다. APT를 통해 설치된 모듈이 CPAN을 통해 설치된 모듈과 충돌합니까?
그 질문과 함께 다음과 같은 질문이 있습니다. 설치된 CPAN 모듈은 어디에 있습니까? 전역적으로 액세스할 수 있나요? 아니면 설치하는 사용자만 액세스할 수 있나요? 어느 것을 어떻게 알 수 있나요? 무엇이 설치되어 있고 무엇이 우선인지 어떻게 알 수 있나요?
APT를 통해 모듈이 설치된 경우에도 CPAN을 사용해야 합니까?
답변1
Debian 및 Ubuntu에서 CPAN( /usr/bin/cpan
유틸리티)은 /usr/local/lib/
기본적으로 모듈을 설치합니다. 그리고 데비안 패키지는 파일을 /usr/share/perl5/
및 /usr/lib/perl5/
. 따라서 다음을 통해 설치된 파일은 /usr/bin/cpan
apt를 통해 설치된 파일을 덮어쓰지 않습니다.
시스템 Perl을 사용하는 데에는 아무런 문제가 없으며 apt와 cpan 코드를 혼합하면 일반적으로 작동합니다.
적절한 저장소에서 사용할 수 없는 cpan 배포판을 수동으로 패키징하도록 선택할 수도 있습니다. dh-make-perl 도구를 사용하면 쉽습니다.
dh-make-perl --cpan Some::Module && cd Some-Module* && sudo debi
답변2
나는 사용한다펄브루. Perl 및 cpan의 로컬 버전을 설치합니다. 그것이 하는 모든 일은 홈 디렉토리에서 이루어집니다. 설치와 사용이 간단하며 최신 버전의 Perl을 설치할 수 있습니다.
답변3
CPAN에서 직접 설치할 때 개인 디렉토리에 local::lib를 사용하는 것이 좋습니다. 부스트래핑 기술 보기https://metacpan.org/module/local::lib
이렇게 하면 CPAN이 설치된 모듈은 사용자만 사용할 수 있으며 APT를 사용하여 설치된 모듈과 매우 명확하게 구분됩니다.
또한 문제가 발생하거나 Ubuntu를 업그레이드할 때 CPAN이 설치된 모듈을 쉽게 제거할 수 있습니다.
이것이 제가 우분투에서 사용하는 방법입니다.
답변4
둘 다 사용할 수 있지만 충돌이 발생합니다. 그들은 같은 위치에 기록되므로 apt에서 무언가를 설치한 다음 cpan에서 최신 버전을 설치하면 문제가 발생할 수 있습니다.
나는 Perl을 많이 사용하지 않지만 Python에는 확실히 당신이 말하는 apt-vs-PyPI라는 딜레마가 있습니다. 저는 개인적으로 가능할 때마다 apt를 선택합니다. 이는 개별 Python 패키지를 유지 관리할 필요 없이 업데이트를 받아야 함을 의미합니다. 그뿐만 아니라 모든 시스템이 해당 패키지의 동일한 버전에서 실행되어야 함을 의미합니다.
항상 성공하는 것은 아닙니다. 때때로 저장소에 새로운 항목이 충분하지 않거나 필요한 항목이 패키지되어 있지 않은 경우가 있습니다. 어느 쪽이든 완벽하지는 않지만 그럴 가능성이 있다고 믿습니다.더완벽한. 당신이하고있는 일을 알고 있으면 괜찮을 것입니다.
편집하다- 잊어버릴 뻔했지만, 시스템이 자체 환경을 가질 수 있고 개발 중인 모든 것이 자체 환경(CPAN으로 완전히 관리하는)에서 살 수 있도록 항목을 분할하는 더 좋은 방법이 있습니다. Python처럼 virtualenv
...