web-dev-qa-db-fra.com

Comment installer des bibliothèques Perl dans Cygwin?

Je suis un geek C/C++/Java/Unix par métier, mais je dois maintenant écrire un programme Perl sous Windows. J'ai donc installé Cygwin, Eclipse avec EPIC et de simples programmes de test. Je ne dispose pas d'une machine Unix sur laquelle je peux utiliser Eclipse.

Mais je dois utiliser Net::TCP::Server et je ne sais pas comment l'installer. Cela ne semble pas faire partie de l’installation de Cygwin Perl et je ne veux pas passer 5 jours à apprendre le monde de Perl, ainsi que la configuration CPAN et Perl. Je veux juste écrire mon programme.

Des moyens simples d'installer un module Perl dans Cygwin? Je pense que quelque chose comme apt-get install serait gentil, mais je m'attends à trop espérer.

Merci

34
stu
$ Perl -MCPAN -e Shell
cpan Shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan[1]> install Net::TCP::Server

Et il est instructif de lister la configuration avec la commande o conf.

29
Jens

Je suis un geek C/C++/Java unix par métier, mais je dois maintenant écrire un programme Perl dans Windows. Donc, j'ai installé cygwin, Eclipse avec EPIC et de simples programmes de test. Je ne dispose pas d'une machine unix sur laquelle je peux utiliser Eclipse.

Vous devriez pouvoir exécuter Eclipse avec EPIC directement sous Windows sans Cygwin. J'aime Cygwin pour beaucoup de choses, mais ce n'est pas vraiment une plate-forme très stable. Eclipse s'exécute en tant que programme Java. Il vous suffit donc de vous assurer que Java est installé sur votre PC. Il existe même un package Eclipse pré-construit.

Vous pouvez également obtenir un Perl correct fonctionnant sous Windows. Soit ActivePerl ou Strawberry Perl . L’un ou l’autre fonctionnera bien que de nombreuses têtes Unix préfèrent Strawberry Perl car il est livré avec le même environnement MIGW que Cygwin et beaucoup le jugent plus compatible avec les frères Unix Perl. Cependant, ActiveState Perl peut utiliser le gestionnaire de packages Perl (PPM) contenant des modules prédéfinis. Malheureusement, le module que vous souhaitez n'est pas disponible via PPM.

Mais je dois utiliser Net :: TCP :: Server et je n'arrive pas à comprendre comment l'installer. Il ne semble pas faire partie de l’installation de cygwin Perl, et je ne veux pas passer 5 jours à apprendre le monde de Perl, ainsi que sa configuration cpan et Perl. Je veux juste écrire mon programme.

L'installation à partir de CPAN est vraiment très simple. La première fois que vous exécutez CPAN, il devrait se configurer. Ensuite, pour faire une installation, vous exécutez cpan install Net::TCP::Server et ce devrait être le cas. Cependant, j'ai essayé sur plusieurs ordinateurs Mac, Unix et Linux et je ne parviens pas à le faire fonctionner. Donc, ce n'est pas un problème de Windows autant qu'un problème avec ce module. Il est assez ancien et pourrait ne pas fonctionner correctement dans les nouvelles versions de Perl. Vous devrez peut-être forcer l'installation au-dessus des objections du test.

Peut-être pouvez-vous utiliser l’un des modules IO déjà installés avec Perl. Cela vous évitera beaucoup de problèmes, car les modules requis font partie du package existant de Perl.

4
David W.

Malgré les "problèmes" de Cygwin, je l'utilise régulièrement chaque fois que je dois utiliser Windows. Je recommanderais d'abord d'installer une installation distincte de Perl à l'aide de perlbrew afin d'éviter d'interférer avec la copie de Perl de Cygwin au cas où quelque chose de grave se produirait, car Cygwin n'applique pas la stratégie d'utilisateur racine. Dans le shell cygwin, tapez

\curl -L http://install.perlbrew.pl | bash

Cela devrait parcourir l’installation de perlbrew et l’installer dans l’un de vos chemins d’exécutables. Type suivant

perlbrew init
perlbrew install --force stable
perlbrew switch stable

Attendez un peu pendant que la menthe Perl est compilée. Pour une raison inconnue, Perl ne peut réussir que 99,23% des tests du module principal sur Cygwin (au moins sur ma machine), d’où le drapeau --force). D'après mon expérience, cela concerne principalement la gestion des fichiers de périphériques, tels que les ports et les tuyaux. Je ne suis pas au courant que des personnes tentent de résoudre le problème, car cela ressemble à un problème de Cygwin. Bien que cela ne me pose pas beaucoup de problèmes avec les tâches générales de programmation système et Web. Les routines de test de module échoueront si un problème existe, je ne me fais donc pas de souci.

La prochaine étape consiste à installer cpanm (cpanminus), tapez

perlbrew install-cpanm

A partir de maintenant, pour installer n’importe quelle bibliothèque à partir de CPAN, tapez simplement

cpanm [library::name1] [library::name2]

cpanm rend simple l’installation de modules Perl. Vous pouvez même installer depuis votre répertoire local au lieu de CPAN.

0
salty-cat-fish