Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   aplicación lazarus hecho en virtual box no funciona en ubuntu (https://www.clubdelphi.com/foros/showthread.php?t=89944)

kapcomx 07-03-2016 18:29:37

aplicación lazarus hecho en virtual box no funciona en ubuntu
 
ke tal compañeros, acudo a ustedes a ver si me dan alguna idea de lo que sucede, pues asi las cosas, como no tenia una maquina disponible hice una virtual box, instale ubuntu 14.0 lts lazarus, mysql , zeos y desarrolle la aplicacion dentro de este ambiente todo bien todo funciona, empaquete el ejecutable, en la maquina del cliente que tiene ubuntu 12, instalamos mysql restauramos la base de datos y hasta ahi todo va bien.

El problema es que desempaquete el ejecutable y al quererlo abrir simplemente no hace nada, absolutamente nada ni siquiera me manda algun mensaje de error, esta inerte.

soy nuevo en ubunto , lazarus, tal vez este omitiendo algo, tal vez al compilar y hacer el build del programa tengo que indicar algo mas o tengo que copiar unas librerias con el ejecutable, no se

Tal vez alguno de ustedes que tengan mas experiencia en ubuntu, lazarus me eche un tip.

Saludos...

roman 07-03-2016 18:37:20

¿Y si pruebas instalando la misma versión de Ubuntu del cliente en la máquina virtual?

LineComment Saludos

Casimiro Notevi 07-03-2016 18:39:47

¿Esto tiene algo que ver con "Desarrollo en Delphi para iOS/OSX"?

roman 07-03-2016 18:45:47

Lo he movido al foro de Lázarus.

LineComment Saludos

Casimiro Notevi 07-03-2016 19:09:07

¿Le has dado permiso para ejecutarse?
Recuerda que en Linux los permisos son muy importantes.
Además, si la ejecutas desde la línea de comandos podrás ver el mensaje de error.

kapcomx 07-03-2016 19:47:15

compañeros, perdon por la confusión del foro, voy a tratar de checar los permisos y ver lo que comenta, Casimiro si no tendre que hacer lo que me aconseja Mamcx y les comento como me fue

Saludos...

Casimiro Notevi 07-03-2016 19:54:20

Cita:

Empezado por kapcomx (Mensaje 503064)
... si no tendre que hacer lo que me aconseja Mamcx...

¿Y qué te aconseja?

kapcomx 07-03-2016 20:06:10

Compañeros hice lo que me recomendo casimiro, entro a la consola, aplique todos los permisos a la carpeta
intento ejecutar el programa con e sig comando

sh project1

y me da el sig error:

project1: 1: project1: Syntax error: "(" unexpected


intento con sh project1.exe

y me indica

sh: 0: Can´t open project1.exe

el caso es que asi me sale tambien en la virtual y ahi si puedo abrir el programa, me estara faltando algo en la sintaxis del comando para ejecutar el programa desde consola

Casimiro Notevi 07-03-2016 20:24:29

¿Por qué usas sh, es un script?
Si es un ejecutable debes hacer algo así como:
Código:

./project1

kapcomx 07-03-2016 23:09:29

amigo casimiro, hice lo que me comentas pero no funciona
me manda el sig error

bash: ./project1: No existe el archivo o directorio

que sera, tengo que definir algun path en ubuntu o algo asi.

slaudos...

kapcomx 08-03-2016 00:50:51

pues no todo sigue igual, un compañero me comento que desde lazarus no debo generar un exe que mas bien debo generar un un paquete del tipo sh y no un exe.

alguien me puede orientar con esto

Casimiro Notevi 08-03-2016 01:08:18

Cita:

Empezado por kapcomx (Mensaje 503075)
amigo casimiro, hice lo que me comentas pero no funciona
me manda el sig error
bash: ./project1: No existe el archivo o directorio
que sera, tengo que definir algun path en ubuntu o algo asi.
slaudos...

Se supone que estás en el directorio donde está project1, ¿no?

Cita:

Empezado por kapcomx (Mensaje 503080)
pues no todo sigue igual, un compañero me comento que desde lazarus no debo generar un exe que mas bien debo generar un un paquete del tipo sh y no un exe.
alguien me puede orientar con esto

No.
Con lazarus, al igual que con delphi, creas un ejecutable... y lo ejecutas.

Casimiro Notevi 08-03-2016 01:24:42

Ejemplo: cambio al directorio donde tengo los proyectos Lazarus, ejecuto uno de ellos y ves que se muestra el mismo.


kapcomx 08-03-2016 01:35:06

amigo casimiro, pues asi estan las cosas. resumiendo esto es lo que hago a ver si ven alguna falla por ahi

1. en mi maquina donde todo funciona tomo el puro ejecutable, lo empaqueto y lo envio por correo
2. en la maquina del cliente abro mi correo descargo el empaquetado, lo descomprimo en una carpeta que tiene todos los permisos
3. de manera grafica hago doble clic en el programa y nada ni se inmuta
4. abro una terminal jalo la carpeta hacia esta para tener la ruta exacta
5. hago el comando ./project1


y nada la respuesta es la misma aun en una maquina que tiene la misma version de ubuntu 14.04 lts. las dos maquinas son de 64 bits. sinceramente nose que mas hacer.

roman 08-03-2016 01:39:00

Cita:

Empezado por kapcomx (Mensaje 503086)
lo descomprimo en una carpeta que tiene todos los permisos

Pero, más que la carpeta, es el ejecutable en sí el que debe tener los permisos. Desde la línea de comandos, en la carpeta donde esté el ejecutable pon:

Código:

chmod 755 project1
./project

LineComment Saludos

Casimiro Notevi 08-03-2016 01:52:47

Si te fijas en la imagen que he puesto antes, project1 tiene un asterisco: project1* Eso quiere decir que es ejecutable.
Cita:


antonio@LINOX:/mnt/wd1tb/prj-lazarus/limpiarlineastxt$ ls -l
total 22108
drwxrwxr-x 2 antonio antonio 4096 ene 11 14:43 backup
drwxrwxr-x 3 antonio antonio 4096 ene 11 14:35 lib
-rw-rw-r-- 1 antonio antonio 3121 mar 8 00:15 limpiaos.txt
-rw-rw-r-- 1 antonio antonio 7485 ene 11 14:21 losmsj.txt
-rwxrwxr-x 1 antonio antonio 22317895 ene 11 14:44 project1 <---- La x es que es ejecutable, los demás no lo son.
-rw-rw-r-- 1 antonio antonio 137040 ene 11 14:26 project1.ico
-rw-rw-r-- 1 antonio antonio 1946 ene 11 14:40 project1.lpi
-rw-rw-r-- 1 antonio antonio 401 ene 11 14:26 project1.lpr
-rw-rw-r-- 1 antonio antonio 1878 ene 11 14:40 project1.lps
-rw-rw-r-- 1 antonio antonio 138128 ene 11 14:44 project1.res
-rw-rw-r-- 1 antonio antonio 323 ene 11 14:43 unit1.lfm
-rw-rw-r-- 1 antonio antonio 918 ene 11 14:43 unit1.pas

EDITO: Lo que ha dicho Román.

kapcomx 08-03-2016 03:29:27

compañeros, agradezco su ayuda, le meti todos los permisos al archivo ejecutable y ni asi funciona, fue tal mi desesperacion que le pedi al cliente una de sus maquinas le instale ubuntu recompile el proyecto y ya jalo en su maquina.

ahora lo que me temo es que mañana que intente copiar el proyecto en sus demas maquinas me salga con lo mismo y no funcione. pero bueno ya mañana se vera

saludos...

Delphius 08-03-2016 05:21:12

No te sabría indicar por donde puede estar tu problema pero es que con los pocos detalles que das va a ser difícil encontrar una solución. Tu la desarrollaste y conoces los detalles internos de como la encaraste.

Dices que tu aplicación no hace nada de nada en el equipo del cliente. Dices que instalando Lazarus en el equipo de tu cliente y compilando ahí la cosa funciona.

Por estas dos cosas que dices yo ya mismo me animo a decir que el gato encerrado está en tu forma de programar. No has llevado una programación limpia. El error más tonto puede tirarnos el trabajo por la borda. Cosas como por ejemplo no configurar el path real hacia la base de datos y haber dejado el path relativo en nuestro propio de desarrollo. El uso de archivos/bibliotecas/recursos que están en nuestros equipos y no en los del cliente. Etc. O tener viejas mañas que en Windows se hace de una forma y en Linux no sirve como por ejemplo el uso de ParamStr(0) para leer la ruta del ejecutable. ¡En Linux esto no siempre es correcto!
En fin que hay muchos factores por ver y no hay pistas de tu parte.
El tema de permisos es sólo una pata... faltan ver las otras.

Sobre lo de hacer paquetes, yo diría que revises lo que dice la propia documentación sobre como distribuir nuestros "instaladores".

Yo mucho no puedo aportar. Si bien he empleado Lubuntu y Lazarus en él, mis pruebas en ese entonces era para desarrollo propio y no he podido darme el tiempo necesario para avanzar más. Hoy estoy estudiando como encarar la multiplataforma, y la compilación cruzada desde Windows hacia Linux.

EDITO:
Quizá esto te sirva para hacerte una idea de lo que debes distribuir con tu aplicación en Linux cuando utilizas MySQL.

Saludos,

bitbow 08-03-2016 23:35:37

Si esta usando Lazarus puedes revisar este video https://www.youtube.com/watch?v=qT9fm0lQA7I
Indica como compliar en windows hacia linux (en el video se ve muy simple), si tus sistea no es un "Hola Mundo!!" esta claro que se tienen que realizar mas ajustes.

Saludos.

kapcomx 08-03-2016 23:45:52

Amigos, agradezco su atención y respuestas, y como bien dice el compañero Delphius, a veces pasamos por alto las pequeñas cosas, detalles que damos por hecho. El punto aqui es que nunca se me ocurrio revisar que el lazarus que instale en mi maquina era una version de 32 bits.

mientras que las maquinas del cliente usan 64 bits, ese fue lo que causo esta enorme problematica. Ahora se que no hay que pasar por alto todos esos detalles,

de antemano agradezco su atención y paciencia, prometo en lo sucesivo no tomar tan a la ligera un proyecto por pequeño que sea ( y menos si es en linux). les mando un cordial saludo a todos y gracias por su paciencia y respuestas.


La franja horaria es GMT +2. Ahora son las 20:13:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi