Installer ncurses pour ruby ​​sous Windows

J’essaie d’installer ncurses pour ruby ​​sur windows. Je n’ai pas encore installé ncurses sur ma machine. Je pensais qu’avoir le “ruby devkit” , ça lui aurait suffi, mais maintenant on me demande de spécifier des options … Je ne sais pas quelles options choisir, ou si je dois faire / installer d’autres choses pour que la gemme soit installée:

C:\Ruby193\Devkit>gem install ncurses -- --ruby=C:/Ruby193/bin/ruby --without-make-prog --without-opt-dir Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing ncurses: ERROR: Failed to build gem native extension. C:/Ruby193/bin/ruby.exe extconf.rb --ruby=C:/Ruby193/bin/ruby --without-make-prog --without-opt-dir C:/Ruby193/lib/ruby/1.9.1/shellwords.rb:35:in `shellsplit': undefined method `scan' for false:FalseClass (NoMethodError) from C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:2216:in `' from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from extconf.rb:22:in `' Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1 for inspection. Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/ncurses-0.9.1/./gem_make.out 

QU’EST-CE QU’UNE DOULEUR, je veux juste installer ce bijou pour que je puisse l’exécuter:

 require 'curses' cols = Curses.stdscr.maxx msg = "random_ssortingng" str = msg.center(msg.length + cols - msg.length - 5 - 3) puts "" 

    Version mise à jour:

    1. Obtenir ncurses (Port MinGW): http://invisible-island.net/ncurses/
    2. Mettez-le dans C: \ ncurses
    3. gem install curses --platform=ruby -- --with-ncurses-dir="C:\ncurses"
    4. Copiez le contenu de C: \ ncurses \ bin vers quelque part dans votre chemin

    C: \ ncurses peut être n’importe quel répertoire

    J’ai réussi à le faire pour Ruby 2.2, qui ne comporte pas de malédictions par défaut, mais cela m’a pris du temps:

    • Téléchargez PDCurses depuis SourceForge ;
    • Décompressez le
    • Copiez le contenu dans un dossier où Ruby peut le voir. Je ne suis pas sûr de celui que j’ai utilisé, je pense que je l’ai copié à plusieurs jusqu’à ce que cela fonctionne. ruby -e 'puts $:' pourrait aider;
    • Installez les malédictions, les gem instal curses . Si l’étape précédente était incorrecte, cela échouera;
    • Fait: D

    Cette méthode ne fonctionnait pas pour d’autres gemmes, comme les ffi-ncurses. Astuce: la plupart des fonctionnalités de curses proviennent de la classe Window , qui est fournie avec les curses par défaut.

    Mise à jour: Il semble que SourceForge n’héberge plus de binarys NCurses pour Windows. Cette réponse est effectivement obsolète maintenant. Pardon! (En août 2015, la page GNU NCurses répertorie une “nouvelle” version v6.0, qui est plus récente que la version 0.9.1 dans ma réponse.)

    J’ai finalement obtenu cela (des années après en avoir eu besoin …) sans Cygwin, PDCurses ou la création manuelle de la source NCurses. Les instructions sont disponibles sur mon blog . Pour référence:

    • Téléchargez les derniers binarys NCurses (0.9.1) depuis SourceForge .
    • Décompressez les fichiers quelque part sur votre machine.
    • Découvrez où Ruby recherche les bibliothèques en exécutant ruby -e 'puts $:'
    • Copiez et collez ncurses.so et lib \ ncurses.rb du répertoire NCurses dans le répertoire que vous avez sélectionné. Placez-les tous les deux dans le répertoire racine.
    • Exécutez votre application compatible NCurses.

    Ça marche. Sans PDCurses!

    J’ai réussi à télécharger les binarys ncurses 0.9.1 de sourceforge, donc la bibliothèque est toujours disponible.

    J’ai ensuite essayé avec Ruby natif et IronRuby 1.1.3

    1. placer les deux fichiers (ncurses.so ncurses.rb) dans

      C: \ Ruby \ Ruby193 \ lib \ ruby ​​\ 1.9.1

      donne une erreur avec Ruby natif

      Le module spécifié est introuvable. – C: /Ruby/Ruby193/lib/ruby/1.9.1/ncurses.so (LoadError)

    2. Les placer ici (pour IronRuby) C: \ Program Files (x86) \ IronRuby 1.1 \ Lib \ ruby ​​\ 1.9.1

      donne

      Le module devait contenir un manifeste d’assembly. (Exception de HRESULT: 0x80131018)

    Quand gem installé a besoin de curses lib; vous devez donc d’abord installer NCurses avec votre msys2

    https://sourceforge.net/p/mingw-w64/wiki2/NCurses/

    Téléchargez NCurses (v5.9 au moment de la rédaction): http://ftp.gnu.org/pub/gnu/ncurses/ dans le répertoire source

    Ensuite, décompressez et dans le shell MSYS:

    ./configure –host = x86_64-w64-mingw32 –enable-term-driver –enable-sp-funcs –prefix = / some / prefix

    faire

    faire vérifier

    faire installer

    puis comme mentionné dans le lien: https://github.com/ruby/curses/issues/13

    utiliser –platform = ruby, – with-curses-include, – avec les indicateurs-curses-lib avec gem install

    La gem rbuy ncurses nécessite que ncurses soit installé sur la machine. Pour autant que je sache, ncurses n’a pas été porté sur Windows. Donc, je ne pense pas que vous allez faire fonctionner cela.

    Il y a peut-être d’autres façons de déterminer la largeur de l’écran sous Windows, mais je ne peux pas vous aider.