Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

cpan: Terminal does not support AddHistory.

by kcott (Bishop)
on Jan 05, 2021 at 04:39 UTC ( #11126345=perlmeditation: print w/replies, xml ) Need Help??

I have been seeing the following, for the past 18 months, every time I use the cpan utility:

$ cpan Terminal does not support AddHistory. To fix that, maybe try> install Term::ReadLine::Perl cpan shell -- CPAN exploration and modules installation (v2.28) Enter 'h' for help. cpan[1]>

I looked into that briefly (and unsuccessfully) several times; in general, whatever I wanted to install via cpan was more important than AddHistory, which I only use infrequently anyway, so it ended up on my TODO list.

I tried with the suggested module, Term::ReadLine::Perl, as well as a variety of others including: Term::ReadLine::Perl5, Term::ReadLine::Gnu, and Term::ReadLine::Tiny. These all failed, the most common problem being the process hanging when the Term::ReadKey dependency was being installed. Actually, installation of Term::ReadLine::Tiny worked fine but it didn't provide AddHistory.

I spent some hours this morning looking into this and eventually came up with a solution. My basic Perl setup is: Win10 - Cygwin - Perlbrew - Perl 5.32.0. If you're experiencing the same problem, this solution may work for you: I can't make any guarantees as I don't have other systems on which to test this.

The only thing that worked was a completely manual installation.

Download then run the familiar incantation:

$ tar zxvf TermReadKey-2.38.tar.gz $ cd TermReadKey-2.38 $ perl Makefile.PL $ make $ make test $ make install

Download then a very similar incantation:

$ tar zxvf Term-ReadLine-Gnu-1.37.tar.gz $ cd Term-ReadLine-Gnu-1.37 $ perl Makefile.PL $ make $ make test $ make install

Now I get:

$ cpan cpan shell -- CPAN exploration and modules installation (v2.28) Enter 'h' for help. cpan[1]>

and moving through the command history and editing is now possible.

If you were experiencing similar problems with a different setup to me — and found this worked as is, worked after some modification, or failed abysmally — please leave a note for the next reader.

— Ken

Replies are listed 'Best First'.
Re: cpan: Terminal does not support AddHistory.
by Don Coyote (Friar) on Jan 05, 2021 at 05:29 UTC

    Hello kcott

    Using perl 5, version 14, subversion 2 (v5.14.2) built for MSWin32-x86-multi-thread, and running debugger from cmd with the -d switch, a warning about SetConsoleMode failed at line 277 is produced.

    I looked into it a little bit and found the issue to be literal backticks being used in Term::ReadKey. That is to say there was no fail message when I (iirc) replaced with perl function system call. As described in Mastering Perl, using the first element of array code sub form.

    I thought I had posted a SoPW about that, though cannot find any related threads; may have been chatterbox. I did not follow up with a bug report, due to only reproducing on an earlier than current version.

    I recently acquired perl 5, version 30, subversion 1 (v5.30.1) built for MSWin32-x86-multi-thread and can confirm there are no warnings produced when running debugger via switch.

    However, Corelist doesn't appear to mention Term::Readkey as being released with core, and as such is explainably not shipped with the vendor version. Term::ReadLine has been included with Core since at most v5.2, and was updated as recently as v5.27.4

      G'day Don Coyote,

      ++ Thanks for posting the report.

      I have cygwin-thread-multi (not MSWin32-x86-multi-thread) Perl versions, so I'm not in a position to comment further on that.

      — Ken

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://11126345]
Approved by Athanasius
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (2)
As of 2021-03-08 03:58 GMT
Find Nodes?
    Voting Booth?
    My favorite kind of desktop background is:

    Results (123 votes). Check out past polls.