• Publicidad

"pp" no se reconoce como un comando interno

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

"pp" no se reconoce como un comando interno

Notapor rafaperl » 2010-02-20 11:52 @536

Hola.

Bueno, básicamente mi problema es que Windows no reconoce "pp" como un comando interno o externo, programa o archivo por lotes ejecutable.

Por supuesto el módulo PAR-Packer está instalado, descomprimiendo el archivo tar.gz en mi ordenador y ejecutando con perl makefile.pl.

También he realizado búsquedas en este y otros foros acerca de mi problema, sin llegar a encontrar solución. Por ejemplo he seguido los pasos citados en este post, agregué el repositorio de trouchelle.com y luego instalé PAR-Packer desde la línea de comandos con "ppm install PAR", sin éxito.

También he leído algo acerca de las variables de entorno, y tengo añadida la variable PERL5LIB con su directorio correspondiente, pero tampoco parece arreglar el problema.

Así que he desinstalado completamente Perl de mi ordenador, borrando todos los módulos previamente instalados y pasando el limpiador de registro, a la espera ayuda para empezar desde cero, y así quizás solucionar el problema.

Yo lo que quiero hacer es pasar un archivo ".pl" a ."exe", y ya lo he intentado con perl2exe, pero "este pequeño programilla" no me genera bien el ejecutable, y pregunté por IRC y me comentaron que lo hiciera con PAR-Packer. ¿Debería de obtener el mismo resultado con PAR y con Perl2exe?

Mi sistema es Windows XP(SP3) y ActivePerl5.10.1
rafaperl
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-02-20 11:04 @503

Publicidad

Re: "pp" no se reconoce como un comando interno

Notapor explorer » 2010-02-20 12:28 @561

Bienvenido a los foros de Perl en Español, rafaperl.

Que el Windows no encuentre el comando "pp" no quiere decir que no esté instalado.

Si lo has instalado con el comando ppm o con su interfaz gráfico, entonces debería estar grabado en el sistema.

Pero otra cosa distinta es que el sistema sepa que hay un nuevo comando.

Para eso se usa la variable del sistema %PATH%.

Lo primero que tienes que hacer es averiguar dónde ha quedado guardado el comando "pp".

Supongamos que está en la carpeta C:/Perl/local/bin. A continuación, abrimos una ventana de línea de comandos (cmd.exe) y sacamos el valor de %PATH%: echo %PATH%. Miramos a ver si encontramos la ruta C:/Perl/local/bin entre todas las rutas que salen.

Si no sale, es que hay que agregar esa ruta a %PATH% para que podamos usar los comandos que están en esa ruta.

De la misma manera que has actualizado la variable del sistema %PERL5LIB%, puedes actualizar la variable %PATH%.

Una vez hecha la actualización, abres una nueva ventana de línea de comandos y vuelves a sacar el valor de %PATH%, para ver si ya tiene la ruta al comando "pp".

Si es correcto, a partir de ese momento podrás ejecutar el comando de forma directa desde la ventana de línea de comandos.

Como ves, no se trata de un problema de Perl, sino de configurar bien el sistema operativo. Te habrías ahorrado el borrado y vuelta a instalar de todo el Perl.

Si ocurrió algún problema con la instalación del módulo, puedes reintentarlo con

ppm install --force PAR

desde una ventana de línea de comandos. Y si salen errores, nos capturas el texto que haya salido y nos lo pones aquí, para verlo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: "pp" no se reconoce como un comando interno

Notapor rafaperl » 2010-02-20 15:01 @667

Gracias por tu rápida respuesta.

Bueno, he vuelto a instalar Perl5.10.1, y lo primero que he hecho es "ppm install PAR" desde la línea de comandos. Decía que primero debía instalar MinGW, así que lo segundo que he hecho es "ppm install MinGW" también desde la línea de comandos. Después he vuelto a instalar PAR sin problemas. Ha quedado una cosa así:

Imagen

Después desde la línea de comandos y situándome en "C:\Perl\Site\lib\PAR" o en "C:\Perl\Site\lib\auto\PAR" tampoco funcionaba el comando "pp".

Así que me he ido aqui. Tras descargarme el módulo PAR-Packer, lo descomprimo para entrar a la carpeta desde la línea de comandos y así ejecutar con Perl el fichero "Makefile.pl", pero obtengo el error de que no encuentra algunos módulos.

Imagen

Tengo añadidos los repositorios de bribes y trouchelle...
También he visitado la web de CPAN, buscando cada uno de los módulos que pide, instalando (o al menos eso creo) los módulos de la siguiente manera: descomprimir la carpeta en el escritorio para ejecutar el fichero Makefile con Perl. La cuestión es que tras instalar esos módulos y ejecutar el Makefile de "PAR:Packer" sigue buscando los módulos..

Si, ya sé que ando un poco perdido... :)
rafaperl
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-02-20 11:04 @503

Re: "pp" no se reconoce como un comando interno

Notapor explorer » 2010-02-20 17:03 @752

Primero decirte lo más importante: si una determinada distribución está en alguno de los repositorios conocidos (trouchelle, bribes), NO es necesario ejecutar los makefiles. De hecho, ESA es la labor de ppm.

Por favor, revisa la guía de uso de PPM gráfico que te enlacé antes.

La distribución que debes instalar es PAR-Packer. Observa en esa página que sí está el comando "pp".

Atención a un detalle: en el listado de bribes hay varias versiones de PAR-Packer según la versión de Perl v5.10 de ActiveState que tengas instalada (busca en el listado por PAR-Packer).

Recuerda: NO uses el modo de instalación de Makefile si ya estás usando PPM. Desde dentro de PPM, él mismo se encargará de instalar los paquetes de los que depende:

* Archive::Zip
* Compress::Zlib
* File::Temp
* Getopt::ArgvFile
* Module::ScanDeps
* PAR
* PAR::Dist

Si además estás en Windows, instalará
* Parse::Binary
* Win32::Exe
* Win32::Process

Una vez instalado, busca el comando "pp" usando el sistema de búsqueda de ficheros de Windows (aunque también aparecerá en la pantalla de instalación de PPM, pestaña Details). Según veo, deberá estar dentro de una carpeta llamada script/ o bin/.

Otro tema distinto es el porqué necesitas empaquetar programas Perl de esta manera.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: "pp" no se reconoce como un comando interno

Notapor rafaperl » 2010-02-20 17:47 @782

Ok, muchísimas gracias.

En este último enlace que me diste, el del listado de bribes, busqué la versión de Perl de la que dispongo, y ya funciona todo correctamente, sin añadir nada al "PATH".

Se ve que había una incompatibilidad de versión.

Muchas gracias por tu atención. :D

Imagen

Respecto a lo de por qué se ha de compilar de esta manera, la verdad, no tengo ni idea.

Pero el programa es una especie de bot que se conecta con una consola que hace de servidor (es un juego en red tipo CounterStrike) y recoge los datos. Este bot se conecta a IRC y así transmite los datos y se pueden ejecutar comandos desde IRC para manejar esa consola del servidor. El bot está hecho en código Perl, con todos sus módulos, y yo lo descomprimí con 7zip, para así modificar los archivos pm y traducir el bot al español. Pero claro para que funcione en otros ordenadores necesito compilarlo.

El chico que lo ha hecho me dijo que tenía que empaquetarlo de esta manera, pero no sé el motivo. :P

Bueno, muchas gracias explorer :D
rafaperl
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-02-20 11:04 @503

Re: "pp" no se reconoce como un comando interno

Notapor explorer » 2010-02-20 18:05 @795

El empaquetador PAR se utiliza para meter en un mismo fichero el intérprete perl, un programa, y los módulos que necesita este programa.

Pero solo eso.

Así que lo más seguro es que no hubieses necesitado nada de lo que has hecho, salvo ejecutar el bot de forma directa, desde la línea de comandos.

Bueno, si la excusa es instalarlo en más de una máquina, entonces sí. Pero la ganancia no es mucha, comparado con lo que se tarda en instalar el ActivePerl más el programa.

Yo hubiera hecho otra cosa: instalar ActivePerl en cada ordenador y luego, en el descanso entre partida y partida de Counter Strike, hubiera dado clases de Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: "pp" no se reconoce como un comando interno

Notapor rafaperl » 2010-02-20 19:14 @843

Si, tienes razón. Yo lo que hacía después de descomprimir el ".exe" y modificar los archivos ".pm" era ejecutar el archivo principal (un ".pl") con perl, para saber que seguía funcionando y yo no había cometido fallos.

Pero ese bot necesito compilarlo para distribuirlo y que la gente lo utilice en sus servidores, y es mejor distribuir un ejecutable que un montón de ficheros (aunque ocupe más o menos lo mismo) y decir que necesita también Perl para ejecutarlo.

Cuestión de estética :D

En cuanto a lo de las clases de Perl... Si, ahí también tienes razón.
Creo que Perl es un lenguaje que cuanto más aprendes, más te gusta. :P
rafaperl
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-02-20 11:04 @503

Re: "pp" no se reconoce como un comando interno

Notapor Ricsato » 2014-06-02 00:45 @073

Hola, Administrador.

He hecho todos los pasos que recomiendas arriba (instalé todo desde PPM); vi que después de instarlo se añadió esta carpeta: C:\Perl\site\lib\PAR, pero no veo en ninguna carpeta de perl algún archivo llamado pp.

Mi ruta lo tengo así: PATH=C:\Perl\site\bin;C:\Perl\bin. Tengo ActivePerl Versión 5.16, quiero convertir algunos archivos de Perl con algo de ambiente gráfico de GTK2 a ejecutables, y en la terminal DOS de W7, me sigue marcando: "pp" no se reconoce como un comando interno o externo.

¿Qué estaré haciendo mal? ¿O qué me faltará añadir? Agradeceré mucho su ayuda. ¡Gracias!
Ricsato
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2010-10-01 20:08 @880

Re: "pp" no se reconoce como un comando interno

Notapor explorer » 2014-06-02 04:35 @232

¿Has instalado el paquete PAR-Packer?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: "pp" no se reconoce como un comando interno

Notapor Ricsato » 2014-06-02 10:37 @484

Hola, solo he instalado desde el PPM los paquetes PAR, PAR-Dist y los que mencionan arriba que se relacionan con estos.

Me fui a buscar a CPAN y mediante la instrucción install App::Packer::PAR en la consola del modo MSDOS, me realizó una serie de instalaciones.

Después de ejecutar la sentencia pp -o hello.exe hello.pl, genera un archivo EXE. Para ejecutarlo me manda el siguiente mensaje: "El programa no puede iniciarse porque falta libglib-2.0-0.dll en el equipo. Intente reinstalar el programa para corregir este problema".

¿Qué debo hacer para corregir este problema? Gracias.
Ricsato
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2010-10-01 20:08 @880

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados