2010-08-15 4 views
6

내 홈 디렉토리에 여러 버전의 perl을 설치하고 싶습니다. App::perlbrew을 사용해 보았지만 한 버전의 XS 모듈이 다른 버전에서 segfaults를 발생 시켰습니다. 여러 버전의 perl을 설치하고 XS 모듈을 자동으로 분리하도록하는 방법이 있습니까?어떻게 서로의 XS 모듈에 걸리지 않고 여러 Perl 버전을 설치할 수 있습니까?

+0

사실 나는 local :: lib도 사용하고 있다는 것을 기억하고 있습니다. 아마 그들은 잘 상호 작용하지 않습니다. 나는 그것을 비활성화하려고합니다. –

+0

흠, local :: lib와 perlbrew가 잘 어울리지 않는 것처럼 보입니다. 이것은 내 문제 인 것 같다. –

+0

[패키지 관리자를 사용할 때 Perl 모듈을 어떻게 관리합니까?] (http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package) -manager) – Ether

답변

11

각 perl을 다른 perl 설치와 완전히 별도로 설치할 수 있습니다. 바이너리와 모듈은 서로 완전히 분리되어 있습니다.

$ ./Configure -des -Dprefix=/usr/local/perls/perl-5.12.1 

모두가 해당 접두어에 설치되고, 빈의 모든 프로그램은/은 특정 펄을 사용합니다 : 기본적으로 설치하는 경우, 각 당신이 그것을 자신의 접두사를 제공 펄. 나는 이것을 좀 더 깊이 들어간다. Effective Perl Programming.

는 거기에서, 나는 그 프로그램의 각 내 ~/빈에 심볼릭 링크를 만들고 여기에 버전 번호를 부착, 그래서 나는 등 ~/perl5.12.1, perldoc5.12.1이 있고, . 나는 perlbrew가 당신을 원한 방식으로 버전을 갖기를 선택할 필요가 없습니다. 나는 Effective Perler 블로그에 Make links to per-version tools.에 대해 자세히 기록합니다.

local :: lib를 사용할 수는 있지만 실제로는 한 버전의 Perl로 작업하고 개인 라이브러리 디렉토리 하나를 사용하도록 설계되었습니다. 당신은 다른 디렉토리를 사용하도록 말할 수 있지만, 그 시점에서 전통적인 방식으로는 아무 것도 저장할 수 없습니다.

+0

local :: lib가 단일 버전에만 사용된다는 것을 명확히 해 주셔서 감사합니다. 나는 local :: lib와 perlbrew를 비활성화했다. –

+0

나는 Dprefix가 충분하지 않을 수도 있다고 생각한다; 모든 lib 디렉토리를 올바른 위치에 놓은 perl 설치가 끝났지 만 실행 파일에는 여전히/usr/local/bin을 사용했습니다. 나는 무슨 일이 일어 났는지보기 위해 아직 돌아 가지 않았기 때문에, 단지 이것을 각주 (footnote) 주의자로 언급 할 것이다. – Ether

+0

그래서 local :: lib가 여러 perl 버전과 XS 모듈에서 올바르게 작동하는 방법이 있습니까? 아니면 비활성화하고 perlbrew가 모든 것을 처리하도록해야합니까? –

관련 문제