2016-07-18 7 views
2

perl 디버거의 명령 기록에서 화살표 키를 사용하고 싶습니다. 난 아직도 펄 디버거 대신 이전/다음 명령을 다시 반향 ^[[A^[[B를 얻을 This solution 좋아 보인다, 그래서 우분투 사용하고 있기 때문에, 나는 Perl 디버거가 Perlbrew에서 화살표 키와 함께 작동하지 않습니다.

sudo aptitude install libterm-readline-gnu-perl 

을 시도하지만.

특히이 문제는 내 perlbrew envinronment에서 발견되었습니다. /usr/bin/perl -d 화살표 키 을 실행하면이 작동합니다 (즉, 설치가 해당 perl에만 고정 됨).

디버거가 perlbrew에서 작동하도록하려면 어떻게합니까?

는 마지막 도랑 노력으로 내 perlbrew 환경에서 나는 cpanm Term::ReadLine::Gnu을 시도했지만 좀 더 라이브러리 설치를 시작할 수

Could not find neither libtermcap.a, libncurses.a, or libcurses.

오류를 가지고,하지만 난 다른 뭔가 빠진 것 같은 그 이후는, 느낌 Perlbrew에 영향을 미치는 문제.

+3

"다른 것"을 놓치지 않았습니다. perlbrew perl에 Term :: Readline :: Gnu가 설치되어 있지 않기 때문에 perlbrew에만 영향을줍니다. – ThisSuitIsBlackNot

+0

OK, true ('libterm-readline-gnu-perl'에서'/ usr/lib/perl5' 아래에 설치되었는지 확인합니다). 그런데 왜 cpanm 오류가 perlbrew 아래에 있습니까? 즉, 왜/usr/bin/perl -d' * 라이브러리가 설치되지 않고 * 작동합니까? – Randall

+1

'$ Config {libpath}'에서 라이브러리를 찾을 수 없으면 그 오류가 발생합니다. 'Perl -MConfig -le'print $ Config {libpth} ''를 실행하여 검색중인 디렉토리를 확인하십시오. 라이브러리가 설치되었지만 perlbrew perl이 잘못된 디렉토리를 찾고 있거나 라이브러리가 설치되어 있지 않지만 libterm-readline-gnu-perl에 정적으로 링크되어 있습니다. – ThisSuitIsBlackNot

답변

0

@melpomene 패키지를 설치하면 속임수를 사용하는 것이 좋습니다.

그러나 이 아닌 다른 해결책을 찾았습니다.에 dev 패키지가 필요합니다 (따라서 루트가 필요하지 않습니다). 다음 CPAN 패키지 중 하나를자신에 사용할 수 있습니다

  • 기간 ::에서는 ReadLine :: 펄 (Readline와 라이브러리의 펄 구현)
  • 기간 : Readline와 :: Zoid (순수 펄 Readline 라이브러리 구현)

루트가없는 환경에서 Perlbrew가 사용되는 경우가 종종 있으므로 더 편리한 해결책 일 수 있습니다.

2

배포 패키지 시스템을 통해 설치된 Perl 모듈은 배포판의 perl (예 : /usr/bin/perl)에서만 사용할 수 있습니다. 다른 perl 설치 (예 : perlbrew에서 관리)는 영향을받지 않습니다. 이것이 다른 Perl이 Term :: ReadLine :: Gnu를 보지 못하는 이유입니다.

perlbrew 환경 (예 : cpan 또는 cpanm)에서 Term :: ReadLine :: Gnu를 설치하는 것이 올바른 해결책입니다. 얻는 오류는 아마도 개발 헤더가 누락되어서 발생했을 것입니다 (Term :: ReadLine :: Gnu는 readline C 라이브러리의 래퍼이므로 빌드 할 헤더가 필요합니다). ncurses-dev (aptitude 포함)을 설치 한 다음 cpanm을 다시 실행하십시오.

+0

의존성 지옥 :'rlver.c : 3 : 31 : 치명적인 오류 : readline/readline.h : 그런 파일이나 디렉토리가 없습니다. '하지만 내가 처음 뭔가를 놓치지 않았는지 확인하기 위해 :-) – Randall

+1

@Randall'libreadline-dev'도 설치해보십시오. – melpomene