script en Bash para ejecutar ePSXe 1.6.0

Este foro es para todo lo relacionado con la documentación, artículos de ayuda, Wikis, tips & hints y las traducciones de Arch (tanto en progreso como las finalizadas).
Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 03 Jun 2011, 22:40

inukaze escribió:A que te refieres que solo pruebas con "awesome" .
Awesome es un gestor de ventanas.
inukaze escribió:

Código: Seleccionar todo

$ head /etc/*-release
==> /etc/arch-release <==

==> /etc/lsb-release <==
DISTRIB_DESCRIPTION="Arch Linux"
Hize mal el copy/paste. Perdón. De vuelta: muestro arch-release (está vacío) y lsb-release:

Código: Seleccionar todo

$ head /etc/*-release
==> /etc/arch-release <==

==> /etc/lsb-release <==
DISTRIB_DESCRIPTION="Arch Linux"
Obviamente no funciona con awk '/DISTRIB_ID=/' ...
inukaze escribió:Bueno revisa el Script y dime en donde crees que es mejor que vaya el export LD_LIBRARY_PATH=$DISTROLIBS ???
Antes de ejecutarlo. Dónde no es tan importante. Lo importante es que esté exportado antes que se ejecute epsxe.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 04 Jun 2011, 12:01

Entonces en todas las distro existe el archivo ==> /etc/lsb-release <== ?

Y La Primera Linea es : DISTRIB_DESCRIPTION="Arch Linux" ?

==> /etc/lsb-release <==
DISTRIB_DESCRIPTION="Arch Linux"

Obviamente no funciona con awk '/DISTRIB_ID=/' ...


Bueno por eso te dije que tengo 3 Metodos distintos para ver si doy con el nombre , mira te muestro los 3 Metodos juntos :

Usa cualquiera de estos 3 Comandos en la terminal a ver cual te da el resultado correcto , que deberia ser "archlinux" todo en minuscula :

1) $ awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | tr '[:upper:]' '[:lower:]'
2) $ cat /etc/*-release | grep DISTRIB_ID | cut -d= -f2 | tr '[:upper:]' '[:lower:]'
3) $ lsb_release -is | tr '[:upper:]' '[:lower:]'

inukaze escribió: Bueno revisa el Script y dime en donde crees que es mejor que vaya el export LD_LIBRARY_PATH=$DISTROLIBS ???
Antes de ejecutarlo. Dónde no es tan importante. Lo importante es que esté exportado antes que se ejecute epsxe.
Pero si se exporta antes de la ejecucion de ePSXe , de hecho el en parte lo toma bien , porque sin el ePSXe no arranca , pero lo que no entiendo es porque las GUI de configuracion , no toman el "export" ese cuando lo ejecuto directamente desde una terminal.

Lo cual no entiendo , porque si se exporta , por eso ePSXe inicia , pero al ejecutar el script directamente en una terminal , y dentro del ePSXe vas al "Menu > Config > Video" , bueno yo uso siempre "Pete XGL2 Driver 2.9" , y si hago clic en "Configure" en la terminal me muestra "./cfgPeteXGL2: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory" .

Ahora si lo ejecuto directamente desde el Gestor de Archivos directamente , si funciona. Osea que el esta bien exportado , pero entonces , al ejecutarse el Script via terminal , algo falla ? , y si es asi , que es ? , pareceria ser el "export LD_LIBRARY_PATH" , pero si no se exportara , ePSXe jamas iniciara.

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 04 Jun 2011, 15:39

Los que usan DISTRIB_ID obviamente no funcionan en Arch, que usa DISTRIB_DESCRIPTION.

Código: Seleccionar todo

$ lsb_release -is
n/a
Lo de la interfaz de configuraciones es lo mismo: epsxe no le pasa LD_LIBRARY_PATH a cfgPeteXGL2. Podés intentar reemplazar los ejecutables que fallan con un "wrapper" como este pero no es seguro que funcione:

Código: Seleccionar todo

#!/bin/sh
LD_LIBRARY_PATH=... cfgPeteXGL2 "[email protected]"
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 04 Jun 2011, 16:28

alfplayer escribió:Los que usan DISTRIB_ID obviamente no funcionan en Arch, que usa DISTRIB_DESCRIPTION.

Código: Seleccionar todo

$ lsb_release -is
n/a
Lo de la interfaz de configuraciones es lo mismo: epsxe no le pasa LD_LIBRARY_PATH a cfgPeteXGL2. Podés intentar reemplazar los ejecutables que fallan con un "wrapper" como este pero no es seguro que funcione:

Código: Seleccionar todo

#!/bin/sh
LD_LIBRARY_PATH=... cfgPeteXGL2 "[email protected]"
Bueno , ya tengo una idea de que hacer con el cfgPeteXGL2 , aunque sinceramente no se porque eso es asi , deberia tenerlo integrado , como en el plugin de windows xD . pero en fin .

Me puedes decir que te devuelve al ejecutar "lsb_release -a" a mi me sale esto


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.04
Release: 11.04
Codename: natty


Y a ti que te devuelve ???

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 04 Jun 2011, 16:46

Código: Seleccionar todo

$ lsb_release -a
LSB Version:	n/a
Distributor ID:	n/a
Description:	(none)
Release:	n/a
Codename:	n/a]
De nuevo, creo que es mejor preguntarse si realmente es necesario.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 04 Jun 2011, 17:57

Bueno para usar las librerias de 32 Bits , dependiendo de las distro , si .
Ahora tambien lo que puedo hacer , es usar "ldd programa" para determinar que librerias usa.

Asi meter en un paquete , las librerias de 32 Bits , creo que sera mejor , mas facil y practico , hacer un paquete que instale esas librerias para cada distro de 64 Bits , y tener las librerias correspondientes a cada distro , y ubicarlas dentro de su directorio de 32 Bits.

Yo se que en la mayoria de las distros , el directorio suele ser

a ) /lib32
b ) /lib/lib32
c ) /usr/lib32/

En la mayoria de los casos que he visto , y como por lo general al instalar las librerias de 32 Bits , ya la mayoria de las librerias requeridas quedan resueltas.

Ahora bien , mejor cambio el metodo , y hago un "deb" para Ubuntu , ahora , puedes hacer tu un paquete para ArchLinux ???

Bueno vamos a olvidarnos por un rato del Script y del export LD_LIBRARY_PATH , que no me esta dando el resultado esperado , Bien basicamente , necesito saber que librerias de 32 Bits necesita el "ePSXe" y las GUI de Configuracion , solo colocare las "Not Found" de todo. en el siguiente codigo :

Bueno basicamente a mi me faltan las siguientes librerias de 32 Bits , para que funcione :
libgtk-1.2.so.0 => not found
libgdk-1.2.so.0 => not found
libgmodule-1.2.so.0 => not found
libglib-1.2.so.0 => not found


Y para que todo funcione bien , tambien colocare el archivo "libstdc++-libc6.3-2.so.3" , en el parquete que hare que instale esos archivos de 32 Bits en el directorio de las librerias de 32 Bits del sistema para que no le falte ninguno archivo. ( Excepto el de libcanberra , al colocarselo jamas inicia por lo menos en Natty ) pero de todos modos , esto va mas enfocado a que el usaurio solo "instale & use" (puede que tal vez configure , Video & Control ).

Ahora solo necesito saber , como determino cual es el directorio de 32 Bits de la distro de 64 Bits ???

Bien como ya yo tengo , todas esas librerias procedera a crear el archivo deb , nos vemos al rato :d

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 04 Jun 2011, 18:32

Pero para qué quieres hacer un paquete para Arch si ya existe (el que le encontré un arreglo)? Al instalar el paquete de Arch las dependencias de 32 bits se instalan automáticamente como lib32-glib y lib32-gtk.

Para hacer un paquete multidistro, con incluir con LD_LIBRARY_PATH todas las librerías que faltan en todas las distribuciones sería suficiente para que funcione en todas las distribuciones, aunque como expliqué no le veo gran utilidad a un paquete multidistro.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 04 Jun 2011, 19:20

Bueno , no , no voy a hacer un paquete multi-distro , lo unico que quiero es que el Script , detecte , cual es el directorio de 32 Bits , de las distros de 64 Bits , para comprobrar que existen ciertos archivos. en estos momentos estoy agregandole algo asi al script .

Por y si no detecta alguno de los archivos , que le muestre al usuario , que el archivo "tal" no existe , en el directorio y se salga del script.

Eso es basicamente lo que estoy haciendo.

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 04 Jun 2011, 19:52

OK
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 04 Jun 2011, 21:52

Bueno , Puedes probrar ahora el ePSXe , descargalo desde :

http://dl.dropbox.com/u/3164499/Linux/E ... index.html

Bueno pesa como 5 Mb , que el anterior , debido a que ahora no tiene las librerias integradas XD , y alli mismo deje un paquete en DEB , para Ubuntu 11.04 AMD64.

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 05 Jun 2011, 00:28

Mejor quita el reset y clear. Al reset no le veo ningún sentido, y con el clear estás borrando info de la pantalla que puede ser importante para el usuario. Si quieres que el usuario vea todo lo que aparece (la salida de tu script) sin hacer scroll puedes usar un programa como Zenity.

Dejaste el de CPU con números enteros. Eso falla.

Con los dos paquetes que mencioné antes (los lib32-...) sin instalar epsxe no inicia:

Código: Seleccionar todo

$ ./ePSXe: line 19: [: : integer expression expected
You need a 800 MHz Processor to run ePSXe
You have 4059 MB RAM
You have a nVidia Video Card
You have 524 Mb Video Memory
You have 3D Support & Direct Rendering
You have a 64 Bits Operating System
Checking if there are files needed to run the emulator
/lib32/libdl.so.2 dont exist
/usr/lib32/libgtk-1.2.so.0 dont exist
/usr/lib32/libgdk-1.2.so.0 dont exist
/usr/lib32/libgmodule-1.2.so.0 dont exist
/usr/lib32/libglib-1.2.so.0 dont exist
/lib32/libm.so.6 dont exist
/lib32/libc.so.6 dont exist
/lib32/libuuid.so.1 dont exist
Checking completed - All needs files are installed
./.epsxe: error while loading shared libraries: libgtk-1.2.so.0: cannot open shared object file: No such file or directory
$
Con esos dos paquetes instalados (después de salir de epsxe):

Código: Seleccionar todo

$ ./ePSXe: line 19: [: : integer expression expected
You need a 800 MHz Processor to run ePSXe
You have 4059 MB RAM
You have a nVidia Video Card
You have 524 Mb Video Memory
You have 3D Support & Direct Rendering
You have a 64 Bits Operating System
Checking if there are files needed to run the emulator
/lib32/libdl.so.2 dont exist
/lib32/libm.so.6 dont exist
/lib32/libc.so.6 dont exist
/lib32/libuuid.so.1 dont exist
Checking completed - All needs files are installed
 * Running ePSXe emulator version 1.6.0. 
 * Going out from gui. (exit)
$
Otra cosa importante: Si querés que funcione en Arch para tenerlo en $HOME para así copiarle juegos y demás más fácil eso no es necesario porque el script de Bash de AUR crea symlinks y hardlinks en ~/.epsxe . Sinceramente, no creo que tiene ninguna ventaja usar esto en Arch.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 05 Jun 2011, 01:02

Bueno , es Script la idea es que funcione en cualquier distro . bueno , hehehe parece que algo no salio bien en el script , seguro los archivos que te dice que no encontro en esa ruta , si existen , pero seguro las tienes en otra ubicacion.

/lib32/libdl.so.2 dont exist
/lib32/libm.so.6 dont exist
/lib32/libc.so.6 dont exist
/lib32/libuuid.so.1 dont exist


Tienes instalado "slocate" ? , para que lanzes "sudo updatedb" , y busques en donde estan esos archivos ???
desde la terminal con locate , al hacerlo yo , obtengo lo siguiente :

$ locate libdl.so.2
/lib32/libdl.so.2

$ locate libm.so.6
/lib32/libm.so.6

$ locate libc.so.6
/lib32/libc.so.6

$ locate libuuid.so.1
/lib32/libuuid.so.1
/lib32/libuuid.so.1.3.0


Aunque tal vez sea mejor , que quite la comprobacion de esos archivos xD , o si no , tendre que averiguar como defino 2 rutas diferentes dentro de 1 sola variable , para que busque en 2 rutas distintas el mismo nombre de archivo, y si existe en una de esas rutas , no deberia mostrar nada ni haber problema :D

Algo al estilo

$echo $PATH
/usr/local/bin:/usr/bin:/bin

Pero con las rutas , que yo le especifique a la variable :D , espero que funcione igualmente separada por puntos :D

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 05 Jun 2011, 14:24

@AlfPlayer , puedes probrar los siguientes comandos , en tu ArchLinux , decirme que te devulve ??

cat /etc/issue
cat /etc/issue.net
cat /etc/[A-Za-z]*[_-][rv]e[lr]*


Por favor ???

Avatar de Usuario
alfplayer
Archer Confiable
Archer Confiable
Mensajes: 479
Registrado: 19 Nov 2010, 13:39
Ubicación: Buenos Aires, Argentina
Contactar:

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por alfplayer » 05 Jun 2011, 14:34

Código: Seleccionar todo

$ ldd .epsxe
	linux-gate.so.1 =>  (0xf7773000)
	libncurses.so.5 => /usr/lib32/libncurses.so.5 (0xf7701000)
	libdl.so.2 => /usr/lib32/libdl.so.2 (0xf76fc000)
	libXt.so.6 => /usr/lib32/libXt.so.6 (0xf76ab000)
	libz.so.1 => /usr/lib32/libz.so.1 (0xf7696000)
	libgtk-1.2.so.0 => /usr/lib32/libgtk-1.2.so.0 (0xf7548000)
	libgdk-1.2.so.0 => /usr/lib32/libgdk-1.2.so.0 (0xf750f000)
	libgmodule-1.2.so.0 => /usr/lib32/libgmodule-1.2.so.0 (0xf750c000)
	libglib-1.2.so.0 => /usr/lib32/libglib-1.2.so.0 (0xf74e5000)
	libXi.so.6 => /usr/lib32/libXi.so.6 (0xf74d8000)
	libXext.so.6 => /usr/lib32/libXext.so.6 (0xf74c9000)
	libX11.so.6 => /usr/lib32/libX11.so.6 (0xf73ad000)
	libm.so.6 => /usr/lib32/libm.so.6 (0xf7383000)
	libc.so.6 => /usr/lib32/libc.so.6 (0xf721e000)
	/lib/ld-linux.so.2 (0xf7774000)
	libSM.so.6 => /usr/lib32/libSM.so.6 (0xf7217000)
	libICE.so.6 => /usr/lib32/libICE.so.6 (0xf71ff000)
	libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf71e7000)
	libuuid.so.1 => /usr/lib32/libuuid.so.1 (0xf71e3000)
	libXau.so.6 => /usr/lib32/libXau.so.6 (0xf71e0000)
	libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf71db000)
$
Hay algunos que son symlinks. Tu código tiene eso en cuenta?

Ese archivo tiene caracteres especiales.

Necesitas instalar Arch. Hay cosas que no pueden decirse fácil en un foro.
Parabola GNU/Linux-libre - basada en Arch - distribución libre según el Proyecto GNU.

inukaze
Archer Intermedio
Archer Intermedio
Mensajes: 78
Registrado: 11 May 2011, 13:41

Re: script en Bash para ejecutar ePSXe 1.6.0

Mensaje por inukaze » 05 Jun 2011, 15:22

Bueno mi codigo aun no tiene encuenta los symlinks porque aun no tengo idea de como , pero de todos modos , estoy pensando , que hacer con el codigo , para que detecte la ruta correcta de las librerias que usa .

Estaba pensando , si hago no se un archivo con solo los nombre de los archivos o una condision que vaya a esos directorios , o si como pense antes , hago una variable , que detecte el nombre de la distro , entonces basada en eso , vaya a los directorios y compruebe que existen los archivos que esten en la "lista"

Pero realmente aun estoy pensando en como quiero que lo haga el script , y puedes porfavor probrar los comandos que puse anteriormente y decirme que te devuelven , por lo menos si

$ cat /etc/issue

Tambien funciona en tu distro o no , para ver si obtengo algo que funcione en todas las distros , para que segun el nombre , vaya a algun directorio , y comprube que existen dichas librerias de 32 Bits en los sistemas de 64 Bits ???

Responder