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 снова.

Другие вопросы по тегам