Perl отладчик не работает с клавишами со стрелками под Perlbrew
Я хотел бы, чтобы клавиши со стрелками работали для истории команд в Perl-отладчике. Это решение выглядит хорошо, поэтому, так как я использую Ubuntu, я попытался
sudo aptitude install libterm-readline-gnu-perl
Но я все еще получаю ^[[A
а также ^[[B
эхом отозвался в отладчике perl вместо предыдущих / следующих команд.
Я обнаружил, что это конкретно проблема в моем perlbrew
envinronment. Если я бегу /usr/bin/perl -d
Клавиши со стрелками работают (т.е. установка исправила это только для этого Perl).
Как заставить отладчик работать под perlbrew?
В качестве последней попытки, в моей среде perlbrew я пытался cpanm Term::ReadLine::Gnu
но получил ошибку
Не удалось найти ни libtermcap.a, libncurses.a, ни libcurses.
Я мог бы начать устанавливать больше библиотек, но мне кажется, что я что-то упускаю, так как это всего лишь проблема с Perlbrew.
2 ответа
Установка пакетов, предлагаемых @melpomene, делает свое дело.
Но я нашел другое решение, которое не требует пакетов dev (и, следовательно, не требует root). Любой из следующих пакетов CPAN может использоваться самостоятельно:
- Term:: ReadLine:: Perl (реализация Perl библиотек Readline)
- Term:: Readline:: Zoid (Реализациячистых Perl библиотек Readline)
Поскольку Perlbrew иногда (часто?) Используется в средах, где у вас нет root, это, вероятно, более удобное решение.
Модули Perl, установленные через систему пакетов вашего дистрибутива, доступны только в perl из вашего дистрибутива (т.е. /usr/bin/perl
). Другие установки perl (например, управляемые perlbrew) не затрагиваются. Вот почему другие Perl не видят Term::ReadLine::Gnu.
Установка Term:: ReadLine:: Gnu из среды perlbrew (например, через cpan или cpanm) является правильным решением. Ошибка, которую вы получаете, вероятно, вызвана отсутствием заголовков разработки (Term::ReadLine::Gnu является оболочкой библиотеки readline C, поэтому для сборки нужны заголовки). Попробуйте установить ncurses-dev
(со способностью), затем бегите cpanm
снова.