Mostrando las entradas con la etiqueta instalación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta instalación. Mostrar todas las entradas

sábado, 28 de junio de 2014

Cómo compilar CEGUI 8.3 con Ogre 1.9 localmente en linux

Compilar Ogre

Después de pelearme con la instalación de apt-get en Debian, he terminado por compilarlo desde la fuente.
  1. Instalar los Prerrequisitos. (Aguas con nvidia-cg-toolkit, si ya estaba instalado, tener cuidado de no arruinar lo que ya estaba, asegurarse de que todos los elementos de nvidia tengan la misma versión el comando nvidia-smi falla si hay inconsistencias, se puede usar para probar).
  2. En esta ocación me tocó descargar el código del repo en Mercurial, por lo que tuve que instalar la herramienta para crear el clon:sudo apt-get install hgsvn
  3. Se crea el clon con:
    hg clone https://bitbucket.org/sinbad/ogre
  4. cd ogre
    mkdir build
    mkdir compile
    cd compile
  5. cmake -D CMAKE_INSTALL_PREFIX=[/home/.../ogre/build/] ..
    make                  # Se puede usar make -j2 si el procesador tiene dos nucleos
    make install
  6. Intentar correr algunos ejemplos.Para ejecutar las aplicaciones, es necesario indicar dónde se encuentran las bibliotecas (dado que instalé en un directorio inusual).
    export LD_LIBRARY_PATH=/home/.../ogre/build/lib:$LD_LIBRARY_PATH
    Para no repetir este paso cada vez que se abre una terminal, se puede agregar esta línea al final del archivo ~/.bashrc. Ejecutar:
    ./SampleBrowser
  7. Si aparece el error
    terminate called after throwing an instance of 'std::runtime_error'
    what(): locale::facet::_S_create_c_locale name not valid
    Instalar:
    sudo apt-get install locales
    sudo dpkg-reconfigure locales   # Seleccionar alguno en inglés, aunque se puede dejar el español como locale por defecto

Compilar CEGUI

CEGUI utiliza cmake para encontrar una instalación a nivel sistema de Ogre, por lo que hay que indicar dónde encontrar los archivos que dicen dónde está y qué necesita Ogre.  Además, FindFreetype.cmake tiene un error.

  1. Primero hay que arreglar FindFreetype.cmake como se indica en https://bbs.archlinux.org/viewtopic.php?id=174300, para evitar el error:
    CEGUI was compiled without freetype support
  2. Luego, al utilizar cmake para compilar CEGUI se indica la ubicación de ogre:
    cd <CEGUI directory>
    mkdir compile
    mkdir build
    cd compile
    cmake -D CMAKE_INSTALL_PREFIX=/home/../cegui-0.8.3/build -D OGRE_HOME=/home/.../ogre/build ..
    make
    make install

CEGUI 0.8.4

En esta versión es necesario agregar específicamente en qué directorios se encuentran las bibliotecas de Ogre.  Afortunadamente lo indica con:

-- Could NOT find OGRE (missing:  OGRE_LIB)

La secuencia de comandos queda entonces:
cd <CEGUI directory>
mkdir compile
mkdir build
cd compile
cmake -D CMAKE_INSTALL_PREFIX=/home/../cegui-0.8.4/build -D OGRE_HOME=/home/.../ogre/build -D OGRE_LIB=/home/.../ogre/build/lib/libOgreMain.so ..
make
make install


jueves, 29 de enero de 2009

Java Sun en Ubuntu

Es trivial, pero hay que conocer los comandos:

sudo apt-get install sun-java6-jdk (para desarrolladores)
sudo apt-get install sun-java6-jre (si sólo se quiere ejecutar la JVM)
sudo apt-get install sun-java6-bin (no es necesario si se usó el primero)

Ahora, para que ésta sea la versión que se ejecuta por defecto [2]:

sudo update-alternatives --config java
sudo update-alternatives --config keytool

Resuelve:

Signing Key Creation: keytool error: java.lang.IllegalArgumentException: java.io.IOException: Invalid char:

[1] Ya no me acuerdo :(
[2] http://groups.google.com/group/android-developers/browse_thread/thread/398b4bedaaa3df3d

miércoles, 4 de abril de 2007

Juegos II y pygtk

Se me ocurrió actualizar python, pasándome a la versión 2.5. Obvio, tuve que reinstalar todo lo que ya tenía :( django, psycopg, etc., etc. y pygame!

Siguiendo el procedimiento de Juegos I, ahora debí bajar Numeric, ojo, debe ser el viejito (el del 2005), Numpy no satisface los requerimientos.

También hubo que reinstalar OpenGL y pygtk. Este último fue el más problemático: hubo que instalar un nuevo pyobject, en Fedora 5, éste quedó en /usr/local/lib/python2.5/site-packages/gtk-2.0/gobject pero al hacerlo aún detectaba la versión anterior (Requested 'pygobject-2.0 >= 2.12.1' but version of PyGObject is 2.8.4). Tal parece que esto es porque no se instaló como biblioteca del sistema, de hecho, al instalar, aparece el siguiente mensaje:

/usr/bin/install -c -m 644 'pygobject.h' '/usr/local/include/pygtk-2.0/pygobject.h'
...
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib/python2.5/site-packages/gtk-2.0/gobject
...
----------------------------------------------------------------------

configure usa libtool, por lo que debe bastar con indicarle este directorio de alguna manera.

Entonces, antes de invocar .configure, intento exportar las variables:

# export PYGOBJECT_CFLAGS="-I/usr/local/include/pygtk-2.0/"
# export PYGOBJECT_LIBS=/usr/local/lib/python2.5/site-packages/gtk-2.0/gobject

Pero aún falta pycairo (intenté compilar sin él, pero sigue habiendo errores).
Con cairo es la misma historia: compilo e instalo cairo 1.4.2 y queda en:

----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
...
----------------------------------------------------------------------
/usr/bin/install -c -m 644 'cairo.h' '/usr/local/include/cairo/cairo.h'
...

Así que, para pycairo asigno:
# export CAIRO_CFLAGS="-I/usr/local/include/cairo"
# export CAIRO_LIBS="-I/usr/local/lib"

Y sigo las instrucciones de instalación... Dice que sí... ¡pero pygtk sigue sin funcionar! Y ya me cansé... me voy a dormir y ya mañana veo.

martes, 6 de marzo de 2007

Django con Fast-Cgi II

Después de varios intentos, logré configurar Django para ser servido a trevés de un vhost de Apache y FastCGI.

Primero, el proyecto de Django existe en algún lugar de mi PC, fuera del camino de Apache y sin preocuparse por su existencia. Se utiliza:

python manage.py runfcgi daemonize=true method=threaded host=$FCGIHOST port=$FCGIPORT pidfile=$FCGIPIDFILE

para ejecutar el servidor FastCGI.

Para versiones anteriores de Apache, basta con bajar mod_fastcgi del sitio de FastCgi, pero para Apache 2.2, hay que parchar el código. Craic ofrece una muy buena guía para arreglar el mod_fastcgi.c:271: error: 'ap_null_cleanup' undeclared (first use in this function) que aparece al intentar compilar.

Después de haber instalado mod_fastcgi, dentro de http.conf coloqué las siguientes indicaciones:

# Al final de los módulos a incluir:

LoadModule fastcgi_module modules/mod_fastcgi.so

# Fastcgi va después de estas líneas

User apache
Group apache
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi

# Servidor externo para usar django con fastcgi.
FastCGIExternalServer /var/www/fastcgi/fastcgi.fcgi -host 127.0.0.1:3033

# En Apache 2.2 es necesario especificar permisos de acceso.
<Directory "/usr/local/apache2/fastcgi">
Order allow,deny
Allow from all
</Directory>
</IfModule>

Como (por motivos particulares de mi proyecto) quiero acceder a FastCGI desde diferentes vhosts hice que FastCGIExternalServer apunta a alguna dirección neutra, en este caso /var/www/fastcgi/fastcgi.fcgi.

Dentro de la configuración de vhost indico:


DocumentRoot "/sudomain_path/dynamic_docs"
Options +FollowSymLinks

RewriteEngine On
#Todas aquellas direcciones, menos '/', que no correspondan a un archivo en disco, serán atendidas por el servidor FastCGI.

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -!f #Si el archivo estático existe en DocumentRoot, se sirve ese.
RewriteCond %{REQUEST_URI} !(/var/www/fastcgi/fastcgi.fcgi) #El 'pseudo archivo' de FastCGI.
RewriteCond %{REQUEST_URI} !(/media) #No quiero que FastCGI sirva imágenes, css, etc.
RewriteCond %{REQUEST_URI} !(/static) #Un lugar para httpdocs :)
RewriteRule ^/(.+)$ /var/www/fastcgi/fastcgi.fcgi/$1 [QSA,L] #Ojo: '/' no es para FastCGI, así preservo index como valor por defecto estático. Si quiero que django sirva '/' también, uso RewriteRule ^(.+)$ /var/www/fastcgi.fcgi$1 [QSA,L]

Alias "/static" "/subdomain_path/httpdocs"
<Directory subdomain_path/httpdocs>
# Aquí insisto en usar scripts de python dentro de httpdocs. Sólo si el archivo acaba en .py :)
<IfModule mod_python.c>
<Files ~ (\.py$)>
SetHandler python-program
PythonHandler mod_python.publisher
</Files>
</IfModule>
</Directory>

martes, 16 de enero de 2007

OpenSceneGraph

Para programar ambientes virtuales en 3D se recomienda OpenScenGraph.

En caso de que, al compilar en linux, se obtengan errores por la falta de un gif_lib.h, instalar giflib y libungif.

sábado, 13 de enero de 2007

Red en casa

La meta es acceder a internet desde dos computadoras, contando tan sólo con una conexión.

Para ello le he agregado una tarjeta ethernet pci extra a mi computadora con linux.

1) La tarjeta nueva fue colocada arriba de la anterior (o a la izquierda). Esto provocó conflictos al momento de activar la nueva tarjeta. Las direcciones físicas de eth0 y eth1 quedaron confundidas, dando origen a errores desagradables como " eth1: error fetching interface information: Device not found" o algo como que no estaba el dispositivo tulip, "retrasando la inicialización". En los foros, estos errores suelen deberse a que eth1 no ha sido dada de alta, en este caso los comandos dmesg e ifconfig -a me proveyeron de la información necesaria para encontrar la causa correcta. La solución al problema fué:

Entrar a la interfaz gráfica (Administración - Redes) borrar las interfaces (eth0 y eth1) y los registros del hardware; reiniciar la computadora y utilizar de nuevo la interfaz gráfica para darlos de alta otra vez.

Con esto las direcciones de los dispositivos se enderezaron (aunque ahora la tarjeta que solía ser eth0 se convirtió en eth1).

2) Seguir la guía en el rincón del programador. La versión resumida es:
  1. Editar /etc/sysctl.conf para asignar net.ipv4.ip_forward = 1
  2. Reiniciar la interfaz de red con $ service network restart
  3. Comprobar que forwarding fue activado con $ cat /proc/sys/net/ipv4/ip_forward (se debe imprimir un 1).
  4. Indicar que haga los cambios de ip necesarios cuando recibe solicitudes para internet:
    $/sbin/iptables -t nat -A POSTROUTING -o [INTERFAZ_INTERNET] -j MASQUERADE
    donde interfaz_internet es el dispositivo con el que nos conectamos a internet (eth0, ppp0 para un modem)
  5. Asegurar con:
    $ /sbin/iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    $ /sbin/iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
    $ /sbin/iptables -A FORWARD -j DROP // ¿Y si quiero usar ssh?
El punto 5 es opcional. Sin embargo, para mí no ha terminado. ping funciona dentro y fuera de mi red... pero sólo con direcciones numéricas. Falta arreglar el DNS.

miércoles, 10 de enero de 2007

Memcached

Memcaché es un supersistema para guardar páginas dinámicas en un caché que sirve sitios con mucho tráfico.

Instalarlo requiere libevent. Sin embargo hay un problema común: config encuentra la librería cuando está ahí, pero al momento de ejecutar:

[]$ memcached -d -m 1024 -l 127.0.0.1 -p 3034 -P mem.pid

Se obtiene el error:

memcached: error while loading shared libraries: libevent-1.2a.so.1: cannot open shared object file: No such file or directory

Utilizando:

[]$ LD_DEBUG=libs memcached -v

Se puede ver en qué directorios está buscando la biblioteca. Éstos corresponden a un "system search path" que no incluye directorios como /usr/local/lib. Si libevent fue instalada aquí, aunque se haya configurado con ./configure --with-libevent=/usr/local/lib éste directorio no aparece. Esperaba encontrar alguna manera de arreglarlo al compilar memcached, pero no he podido, la única solución que se me ocurrió (y otros han usado) es crear una liga suave desde un directorio en el camino de búsqueda hacia la biblioteca:

[]& ln -s /usr/local/lib/libevent-1.2a.so.1 /usr/lib

Me encantaría saber de una solución más elegante.

viernes, 5 de enero de 2007

Django con Fast-Cgi

Aquí wmldocs está fuera de DocumentBase.
En httpd.conf (fuera de cualquier virtual host):

FastCGIExternalServer /.../wmldocs/mysite.fcgi -socket /home/.../mysite/mysite.sock

(Detro del host virtual, si hay uno):

Alias "/cel" "/.../wmldocs"

RewriteEngine On
RewriteBase /.../wmldocs
RewriteCond %{REQUEST_FILENAME} !-f #Si lo que se solicita no es un archivo
RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]


Ejecutar el servidor de fcgi (daemonize=false se usa para depurar):

[]$ python manage.py runfcgi daemonize=false method=prefork socket=/home/.../mysite/mysite.sock pidfile=/home/.../mysite/mysite.pid

Detener el servidor:

[]$ kill `cat $PIDFILE`
[]$ rm -f $PIDFILE

Aún obtengo:

(13)Permission denied: FastCGI: failed to connect to server

Después de no encontrar el motivo del fallo (apache corre con un usuario, el subdominio con otro, fastcgi requiere permisos de lectura/escritura, etc.) opté por cambiar al uso del puerto TCP:

python manage.py runfcgi daemonize=false method=threaded host=127.0.0.1 port=3033 pidfile=/home/.../mysite/mysite.pid

FastCGIExternalServer /.../wmldocs/mysite.fcgi -host 127.0.0.1:3033


La aplicación manejada por django se ve en http://subdominio.servidor.com/cel/mysite.fcgi/polls/

martes, 2 de enero de 2007

[Psycopg] configure.in patch for pg_type.h path on Red Hat

Cambio la idea original de Vsevolod Lobko
para que funcione en RedHat (postgresql por pgsql, se podría agregar otro if).
RedHat Fedora o Enterprise port for PostgreSQL puts server headers in
/usr/local/include/pgsql/server/
So proposed patch adds this directory to list of possible
locations for pg_type.h
-------------- next part --------------
--- configure.in.orig Sat Jul 26 16:16:54 2003
+++ configure.in Sun Jul 27 15:59:19 2003
@@ -72,6 +72,12 @@
PGSQLTYPES="$PGSQLDIR/server/catalog/pg_type.h"
PGSQLDIR="$PGSQLDIR/server"
CPPFLAGS="$CPPFLAGS -I$PGSQLDIR"
+ else
+ if test -d $PGSQLDIR/pgsql/server/catalog ; then
+ PGSQLTYPES="$PGSQLDIR/pgsql/server/catalog/pg_type.h"
+ PGSQLDIR="$PGSQLDIR/pgsql/server"
+ CPPFLAGS="$CPPFLAGS -I$PGSQLDIR"
+ fi
fi
fi
test -z "$PGSQLTYPES" && AC_MSG_ERROR(pg_type.h not found)

jueves, 21 de diciembre de 2006

Compilando Apache httpd con todo compartido

./configure --with-ldap --enable-mods-shared="all ssl ldap cache proxy authn_alias mem_cache file_cache authnz_ldap charset_lite dav_lock disk_cache"
make
make install

Referencias:
Apache2.2
Recipes/ConfigAllMods

NOTA: Obsérvese que cada módulo sólo debe compilarse una vez, ya sea incrustado o compartido, pero no ambos. (En mi caso agregué también la opción --enable-modules="all" y el resultado fue que, al arrancar el servidor, nunca protestó, pero tampoco funcionó.)

miércoles, 20 de diciembre de 2006

Formatear disco nuevo

Después de haber conectado el disco, encender la computadora. Utilizar dmesg para verificar que la computadora haya detectado el disco (este comando permite imprimir los mensajes de arranque).

Aunque no se esté usando debian, http://www.debianhelp.co.uk/newharddisk.htm es una buena referencia (algunos podrán saltar a esa página y no regresar aquí, sólo especifico los puntos donde tuve problemas al seguir esa guía).

Para hacer las particiones utilizo fdisk. Por ejemplo, queriendo particionar un disco scsi de 250G en dos secciones de 100G y 150G, se invoca:

#fdisk /dev/sdb

Es una aplicación interactiva, por lo que, para configuraciones básicas, basta con ir leyendo las indicaciones. Al final mi sistema quedó:

Disk sdb: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
sdb1 1 12158 97659103+ 83 Linux
sdb2 12159 30394 146480670 83 Linux

Para dar formato, en Fedora, mkfs -c -t ext3 /dev/sdb1 devuelve mkfs.ext2: invalid blocks count - /dev/sdb1. La opción es, entonces, el siguiente comando:

#mke2fs -cjv /dev/sdb1

Finalmente resta montar las particiones. Para montarla en el momento:

mount -rwt ext3 /dev/sdb1 /punto_de_montaje/

Agregar la entrada correspondiente en /etc/fstab para que la partición sea montada al arrancar el sistema:

/dev/sdb1 /punto_de_montaje ext3 defaults 0 0

Ojo, si se copian datos, aquí puede ser recomendable utilizar:

#cp -rp origen destino

si se quiere preservar permisos. También puede requerirse -Z si se trabaja con SELinux.

jueves, 14 de diciembre de 2006

Pylons

Este es un nuevo intento por servir archivos wml (formato para páginas web en el celular), generados dinámicamente tras haber obtenido cierta información vía servicios WAP. SOAPpy ya resolvió parte del problema.

Ahora necesito un caché. Fue algo triste encontrarme con que tener un caché usando Tomcat, es tan trivial como declarar una variable estática, pues la aplicación se queda en memoria un rato antes de que se la lleve el recolector de basura. Desafortunadamente, en python no es tan fácil... a menos que se utilize algún marco de trabajo.

Aquí entra pylons.

Afortunadamente, en alguna entrada anterior ya mencioné easy-install. Aquí ¡es una maravilla! (Estando conectado a la red) teclear "easy_install Pylons" tal y como se indica en http://pylonshq.com.

El siguiente paso es configurar Apache. Para tenerlo todo a la mano incluyo la liga al archivo con mod_fastcgi. [Si se trabaja con Apache 2.2.3 hay que aplicar un parche (renombrar Makefile.AP2 a Makefile, descargar dentro del directorio de mod_fastcgi y ejecutar patch -p0 <mod_fastcgi-2.4.2-httpd-2.2.3.patch)] (mod_rewrite ya estaba en apache). Todas las instrucciones restantes se encuentran en el sitio de pylons.

Ahora, como el servidor donde quiero colocar todo esto utiliza Plesk, configurarlo tiene su chiste.
Mod_python ya era cargado por /etc/httpd/conf.d/python.conf

Agregué la directiva:

LoadModule fastcgi_module modules/mod_fastcgi.so

en /etc/httpd/conf/httpd.conf.

LoadModule rewrite_module modules/mod_rewrite.so ya estaba ahí.

Ojo: el código siguiente debe ir en httpd.conf fuera de cualquier otra directiva (Virtual Host, Directory, etc.) y después de que se hayan designado el usuario y el grupo de apache.


FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi

Además, si el usuario y grupo de apache son, por ejemplo, http y http, /tmp/fcgi_ipc/ (o cualquier otro que se use) deben ser asignado a ese usuario y grupo (chown, chgrp, chmod 700).
De lo contrario se pueden obtener el siguiente error:

Starting httpd: Syntax error on line 200 of /etc/httpd/conf/httpd.conf:
FastCgiIpcDir /tmp/fcgi_ipc: access for server (uid -1, gid -1) failed: read not allowed

En mi caso, decidí colocar los archivos dentro de un directorio de un subdominio que, además, no era el direcctorio raíz. Para incluir instrucciones específicas al dominio, las instrucciones detalladas se dan en la documentación de plesk.

En resumen, crear vhost.conf con las especificaciones dentro de subdominio/conf y ejecutar:

/[path to plesk, ej: usr/local/psa]/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=fulanito.com

jueves, 30 de noviembre de 2006

Django

Django es un marco de trabajo para python que leído mencionar en muchas ocasiones. Supuse que podría llegar a serme útil, ya que me he clavado en serio con este lenguaje de programación, y decidí probarlo.

Instalando Django para windows XP:

http://www.djangoproject.com/

Parece que es una buena idea utilizarlo con una base de datos. Decidí utilizarlo con una vieja instalación que tengo de mysql, sólo que me faltó algo:

http://sourceforge.net/projects/mysql-python


Bueno, pero no podría estar utilizando la laptop para todos estos experimentos. ¿Qué tal mejor en Linux (Fedora 5)?

Para compilar cualquier cosa que dependa de otra, como en mi caso, postgres, se necesita un paquete "devel", (compilar django requiere postgres-devel):

ftp://ftp.is.co.za/mirror/fedora.redhat.com/linux/core/5/i386/os/Fedora/RPMS/postgresql-devel-8.1.3-1.i386.rpm

Además psycopg. Psycopg sirve para acceder postgres a través de python, pero resulta que django apenas va en la versión 1, siendo que ya hay una versión 2 estable. Incluyo la liga al sitio de donde se puede obtener la dos:

http://www.initd.org/pub/software/psycopg/

En teoría, también se puede obtener de ahí la versión 1, pero no la pude compilar porque no encontraba las cabeceras de postgres (y yo que las acababa de instalar :( ... solución). Pero me pasaron las siguientes sugerencias:

Bajar el rpm (no tuve que recurrir a ésta):

http://mirror.linux.duke.edu/pub/fedora/linux/extras/5/i386/python-psycopg-1.1.21-4.fc5.i386.rpm

¡O utilizar el poderoso yum!

[]$ yum --enablerepo=extras install python-psycopg

[Julio 2007] Las nuevas versiones de Django ya usan psycopg2, para usar yum hay que especificar eso, además, en fedora 7 ya no existe extras:

[]$ yum install python-psycopg2

Si se quiere instalar psycopg en Windows, se usa un win-psycopg, que a su vez requiere eGenix.

Otro problema que puede aparecer es el error siguiente al tratar de sincronizar con la base de datos:
No module named DateTime
La solución viene en los faqs de psycopg.

Como ya tenía extras activado, no utilcé la bandera, pero la incluyo por completez, pues el paquete se encuentra precisamente en extras.

Para utilizarlo con fast-cgi es necesario instalar flup. Con easy_install flup, python se encarga. Los detalles de la configuración se encuentran en How to use Django with FastCGI.

Juegos

Desde hace algún tiempo he querido programar un videojuego. Me he dado a la tarea, en mi tiempo libre, de buscar las herramientas necesarias. Como desde hace un buen rato me he vuelto fan de python ;), me llamó la atención encontrar todo un marco para programación de videojuegos. Sin embargo, aunque todo caminó suavemente en Windows, no fue nada trivial echarlo a andar en Linux (a mi computadora aún le faltaban varias cosas).

Versión de Python: 2.4

Por supuesto, quize instalar con todo y PyOpenGL, pero su archivo setup.py requiere de una herramienta:
Easy Instal:
http://peak.telecommunity.com/DevCenter/EasyInstall
PyOpenGL:
http://sourceforge.net/project/showfiles.php?group_id=5988
PyGame:
http://www.pygame.org/download.shtml

Para instalar el paquete completo (con soporte para sonido e imágenes jpeg, png y gif), Fedora 5 requiere tener lo siguiente:
SDL y SDL devel:
http://www.libsdl.org/download-1.2.php
Mixer y Mixer devel:
http://www.libsdl.org/projects/SDL_mixer/
Image e Image devel:
http://www.libsdl.org/projects/SDL_image/
Font (ttf) y Font devel:
http://www.libsdl.org/projects/SDL_ttf/
SMPEG (Fedora 5):
ftp://ftp.pbone.net/mirror/rpm.livna.org/fedora/5/i386/smpeg-0.4.4-9.lvn5.i386.rpm
SMPEG-devel (Fedora 5):
http://rpm.pbone.net/index.php3/stat/4/idpl/2683419/com/smpeg-devel-0.4.4-9.lvn5.i386.rpm.html
SMPEG y SMPEG para Fedora 7:
ftp://ftp.pbone.net/mirror/rpm.livna.org/fedora/7/i386/

Y funcionará :)

SOAP

Los servicios web permiten llamar funciones en algún servidor remoto, éste responde con un documento xml en unicode, que el cliente puede interpretar. Una de las características más interesantes de este sistema es que servidor y cliente pueden estar utilizando plataformas distintas, por ejemplo, java y python.

Para acceder servicios web con python es necesario instalar SOAPpy. Las instrucciones detalladas y algunos ejemplos se pueden consultar en

http://diveintopython.org/soap_web_services/install.html
.

Pero una de las ligas está rota. Logré conseguir las dependencias en los siguientes lugares:
PyXML: http://pyxml.sourceforge.net/
Fpconst: http://www.python.org/pypi/fpconst/
SOAPpy: http://sourceforge.net/project/showfiles.php?group_id=26590

miércoles, 29 de noviembre de 2006

gngeo

Hoy encontré un emulador de neo-geo para linux. Me dí a la tarea de bajar el código fuente, compilar e instalar. Afortunadamente, entre todas las cosas que he bajado e instalado últimamente, ya contaba con las dependencias. Una liga importante para ellas (si no se tienen) es: http://www.libsdl.org/index.php

Sitio oficial:
http://gngeo.berlios.de/

Siguiendo las instrucciones simples:
./configure
make
(su root)
make install

Quedó instalado en:

/usr/local/share/gngeo

Lo cual significa que en '$prefix/share/gngeo', $prefix es /usr/local, esta dirección aparece entre los numerosos mensajes impresos al momento de instalar.

La sección de FAQs del sitio oficial explica claramente cómo ejecutar; para ello se requiere de algún rom, por ejemplo kof95.zip (la parte difícil radica en obtenerlos legalmente, hay un lugar donde cobran los más importantes: www.rom-world.com, así que supongo que han de tener licencia, de todos modos dicen que debes tener el cartucho). Al tratar de ejecutar alguno inocentemente, es posible que aparezcan errores como los siguientes:

The following bios files are missing :

/usr/local/share/gngeo/sp-s2.sp1
/usr/local/share/gngeo/sfix.sfx
/usr/local/share/gngeo/000-lo.lo

Noticia: Se requiere de un archivo llamado neogeo.zip, (no NEO-GEO.ROM), que contiene los archivos faltantes, y no forma parte del emulador.

Puedo asegurar al lector, que si consigue estos archivos, el emulador funciona excelente ;).