Hace tiempo se me presentó la necesidad de correr servidores sql firebird en debian, la distribución de linux que mas utilizo actualmente.
Esto resultó en un total desastre utilizando los paquetes de instalación, pero la historia tiene un final feliz…
Para hacer algo de historia, comento que hace tiempo tengo varios servidores en producción en otras distribuciones, principalmente Mandrake/Mandriva, y todas funcionaron a la perfección desde el primer intento, por lo que, al decidir usarlo en debian no imaginé lo complicado que resultaría.
También comento que me decidí al uso de firebird sobre esta distribución debido a que hace tiempo leí una noticia relacionada con la aceptación del paquete de instalación, por lo que esta puede realizarse de manera simple e instantánea usando apt-get.
Desde el inicio resulta confuso. Actualmente uso la versión estable: etch y al realizar una búsqueda obtuve algo similar a:
alfa-server:/root#apt-cache search firebird
firebird2-classic-server - Firebird Classic Server - an RDBMS based on InterBase 6.0 code
firebird2-common - Common files for firebird clients and servers
firebird2-dev - Development files for Firebird - an RDBMS based on InterBase 6.0 code
firebird2-examples - Examples for Firebird - an RDBMS based on InterBase 6.0 code
firebird2-server-common - Common files for Firebird servers
firebird2-super-server - Firebird Super Server - an RDBMS based on InterBase 6.0 code
firebird2-utils-classic - Utilities for Firebird - an RDBMS based on InterBase 6.0 code
firebird2-utils-super - Utilities for Firebird - an RDBMS based on InterBase 6.0 code
otros paquetes...
Por tanto, supuse que se trataba de la versión 2 del manejador de base de datos, pero estaba equivocado, pues una vez instalado el servidor pude comprobar que el paquete contiene efectivamente la versión 1.5
¡Primera decepción!
Luego, al realizar las mas simples pruebas… el proceso se colgaba o estas simplemente no funcionaban. Solo logré realizar las operaciones mientras estaba conectado como root… pero como otro usuario o remotamente: ¡simplemente imposible!.
Intenté de todo lo que se me ocurrió; quienes me conocen saben que soy estricto y ordenado al realizar pruebas y, simplemente nada. Ni el classic server, ni el superserver.
¡Segunda, tercera y cuarta decepción!
Luego de investigar, descubrí que existen los paquetes de instalación de firebird 2, pero que estos se llaman firebird2.0-xxx y que actualmente solo están disponibles en las versiones experimental e inestable. Me decidí a probar… añadí los fuentes de dichas versiones y realicé la instalación. ¡Los resultados fueron los mismos! Cambiaron los mensajes de error… pero lo importante es que solo obtuve errores.
¡Quinta, sexta y séptima decepción!
Finalmente, y después de muchas horas invertidas en esto, se me ocurrió algo descabellado, basado en la conclusión de que los paquetes de instalación de firebird para debian no sirven: Instalar basado en algo que conocía desde antes: el rpm disponible para descarga en sourceforge.net
Encontré la forma de convertir el paquete rpm en un deb y después del esfuerzo invertido, valió la pena, pues funcionó de maravilla
Para quienes están viviendo, han vivido o quieren evitarse el calvario, aquí la solución completa para firebird 2.0.3. Para otras versiones supongo que bastará con actualizar la dirección de descarga y los nombres de archivo:
Descargar el script que realiza la instalación
#su
#cd /root
#apt-get update
#apt-get install alien
#apt-get install libstdc++5
#wget http://ufpr.dl.sourceforge.net/sourceforge/firebird/FirebirdSS-2.0.3.12981-1.i686.rpm
#alien -d -c FirebirdSS-2.0.3.12981-1.i686.rpm
#dpkg -i firebirdss_2.0.3.12981-2_i386.deb
#cd /opt/firebird
#chmod 644 aliases.conf
#ln -s /opt/firebird/bin/isql /bin/isql-fb
#ln -s /opt/firebird/bin/gbak /bin/gbak
#ln -s /opt/firebird/bin/gfix /bin/gfix
#ln -s /opt/firebird/bin/gsec /bin/gsec
Descargar el script que realiza la instalación
Personalmente estoy molesto y decepcionado del paquete de instalación de firebird para debian. Quizás esto se deba a mi ignorancia… y si es así, por favor que alguien me diga que hay que hacer para que firebird funcione sobre esta plataforma usando esos paquetes.
Creo que firebird solamente está obteniendo desprestigio y perdiendo posibles usuarios, que al darse cuenta del funcionamiento sobre debian, se llevan una mala impresión del producto: todo lo contrario a lo que normalmente produce cuando se evalúa sobre otras plataformas, pues su funcionamiento es excelente y su rendimiento no queda atrás.
En firebird, creo que lo que es susceptible de mejora, necesario y urgente para los administradores, es que se deje un registro (log) cada vez que ocurren errores atípicos, pues hasta ahora, no logré encontrar el archivo al que el servidor no tuvo acceso, lo que hubiera ayudado tremendamente a encontrar y corregir el problema sin llegar a esto.
Este post es muy largo. Quisiera decir mas cosas, pero seguramente ya estas aburrido de leerme. Espero que la solución propuesta te sirva!


Diciembre 8, 2007 a las 3:05 am |
Firebird 2.0 is available only in sid(unstable) and lenny (testing)
http://packages.debian.org/lenny/firebird2.0-super
http://packages.debian.org/sid/firebird2.0-super
You can see why firebird1.5 packages are called firebird2 here
http://www.firebirdfaq.org/faq159/
Diciembre 8, 2007 a las 3:58 am |
Hi Mariuz. Thank’s for the feedback.
I know Firebird 2.0 is available only in unstable and testing, as I say in my post, but it does not work… not for me. Are you using Firebird 2.0 in debian?
Diciembre 8, 2007 a las 4:11 am |
[...] Here is the guide in spanish for installing firebird 2.0 on debian using alien and firebird rpm package [ED:there’s More Than One Way To Do the install .] Permalink | Share (digg, etc): [...]
Diciembre 8, 2007 a las 4:14 am |
I use it in ubuntu , but i will install it on an debian stable machine too
Diciembre 8, 2007 a las 4:21 am |
Please… let us know if it works fine installing from the official debian packages.
Diciembre 10, 2007 a las 7:40 am |
i have upgraded the server to testing , now i will test the 2.0.x packages
Diciembre 10, 2007 a las 9:41 am |
I have removed all firebird2 and firebird1.5 packages and then installed the firebird2.0 ones
apt-get install firebird2.0-super
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
firebird2.0-common libfbclient2 libicu36
Suggested packages:
firebird2.0-doc
Recommended packages:
firebird-utils
The following NEW packages will be installed
firebird2.0-common firebird2.0-super libfbclient2 libicu36
Created default security.fdb
* Not starting Firebird 2.0 server manager
* Use `dpkg-reconfigure firebird2.0-super’ to enable.
:~# sudo apt-get install firebird2.0-examples firebird2.0-dev firebird-utils
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
libfbembed2
The following NEW packages will be installed
firebird-utils firebird2.0-dev firebird2.0-examples libfbembed2
Setting up firebird-utils (2.0.3.12981.ds1-1) …
Setting up libfbembed2 (2.0.3.12981.ds1-1) …
Setting up firebird2.0-dev (2.0.3.12981.ds1-1) …
Setting up firebird2.0-examples (2.0.3.12981.ds1-1) …
:~# dpkg-reconfigure firebird2.0-super
Firebird 2.0 server manager not running.
Firebird 2.0 server manager not running.
Starting Firebird 2.0 server manager…done.
Firebird 2.0 server manager already running.
:~# cd /usr/share/doc/firebird2.0-examples/examples/empbuild/
# sudo gunzip employee.fdb.gz
# sudo chown firebird.firebird employee.fdb
# sudo mv employee.fdb /var/lib/firebird/2.0/data/
# isql-fb
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect “employee.fdb” user “SYSDBA” password “masterkey”;
Database: “employee.fdb”, User: SYSDBA
SQL> show tables;
COUNTRY CUSTOMER
DEPARTMENT EMPLOYEE
EMPLOYEE_PROJECT JOB
PROJECT PROJ_DEPT_BUDGET
SALARY_HISTORY SALES
SQL>
Diciembre 10, 2007 a las 9:49 am |
here is how i upgraded to lenny
i replaced any stable reference with testing in /etc/apt/sources.list
and then all i did was apt-get update ; apt-get dist-upgrade
here is my sources.list
cat /etc/apt/sources.list
deb http://ftp.ro.debian.org/debian/ testing main
deb-src http://ftp.ro.debian.org/debian/ testing main
deb http://security.debian.org/ testing/updates main
Diciembre 10, 2007 a las 10:28 pm |
Big cuestion is… ¿does it work as expected?
Regards.
Diciembre 13, 2007 a las 10:16 am |
i will run some tests to se if all is ok , if you want to …
Diciembre 17, 2007 a las 9:44 am |
Of course I want… please let us know if everighing works fine…
Junio 17, 2008 a las 10:04 am |
Hola, yo estoy en las mismas que tú, he estado probado con los paquetes para debian, puesto que para mi, debian es mi distro preferida, bueno, con tu script haré la prueba, cualquier resultado bueno o fallido locomento en tu blog.
Gracias por el dato.
Atte.,
kotaro-kun.
Noviembre 11, 2008 a las 1:59 pm |
Hola:
Por si sirve a alguien.
Yo le he podido instalar con los rpm del site (firebirdSS-2.0.4.13130.-1.nptl.i686.rpm) y con alien -c –scripts lo he pasado a *.deb
Despues instalar la libreria libstc++5 (esta en los repos) y un dpkg -i paquete.deb .
El problema que estoy teniendo es de acceso a la BD desde un win; me devuelve un mensaje de error en la conexion;
user and password not defined. Ask your system administrator to setup a Firebird login .
Pero es otra historia
Noviembre 11, 2008 a las 5:00 pm |
@demon: Me alegra que el script te haya servido. Quizás el problema de conexión desde Windows se deba a que la instalación linux no usa una contraseña por defecto, sino que genera una y la deja guardada en
/opt/firebird/SYSDBA.password
Podes usar esa o bien utilizar el gsec para poner tu propio password.
Un saludo.
Noviembre 12, 2008 a las 1:11 pm |
Hola jachguate:
Gracias por tu aportacion.
En el gsec cambie el password, pero al principio no me dejaba validarme con el nuevo, asi que me hice un pequeño lio. Tambien lo intente con script que viene en el rpm (changeDBApassword.sh), y tampoco me fuciono, o eso pense. Me basto con reiniciar el servicio y ya va.Ya tengo acceso !!!
He leido por ahi que no es recomendable modificar a mano el SYSDBA.password?? Que opinas de esto?? En este archivo la contraseña que aparece es distinta a la que actualmente utilizo, a pesar de los cambios. Te suena esto??
Gracias otra vez.
Noviembre 12, 2008 a las 3:00 pm |
el archivo SYSDBA.password no tiene por que corresponder con el password actual de la base de datos. Para lo único que sirve es para que el instalador te comunique la contraseña que ha asignado al DBA durante la configuración inicial y podrías (y hasta debieras) borrarlo.
Un saludo.
Febrero 3, 2009 a las 8:28 pm |
El paquete firebird2.0-super está para Debian etch en el repositorio de backports
http://packages.debian.org/etch-backports/firebird2.0-super
En esta liga mencionan como añadir ese repositorio
http://luisperalta.es/debian_etch_anadiendo_el_repositorio_debian_backports
Febrero 3, 2009 a las 8:44 pm |
la pregunta del millón es: ¿funciona?
Febrero 4, 2009 a las 3:45 pm |
Se instaló correctamente el servidor, lo que no se (por que nunca lo habia instalado en GNU/Linux) es que debo configurar para accesar a la base de datos desde un cliente windows.
Intento conectarme pero la aplicación en windows me manda un error que dice “error mientras se trataba de abrir el archivo, permiso denegado” (lo dice en inglés).
Debo editar algo en el archivo /etc/firebird/2.0/firebird.conf?
Agradeceré si alguien me orienta para que pueda probarlo y comentarles si se pudo hacer la conexión remota o no.
Saludos
Febrero 4, 2009 a las 7:51 pm |
Confirmado
Si funciona, ya pude conectarme desde otra máquina con una aplicación hecha en windows.
El problema que me aparecia era porque a pesar de que en el archivo /etc/firebird/2.0/aliases.conf se ponga la ruta a la base de datos, la base de datos debe estar en un directorio en que el usuario firebird sea el propietario.
La solución fue poner la base de datos en la ruta /var/lib/firebird/2.0/data/
y desde luego especificar esa ruta en el archivo /etc/firebird/2.0/aliases.conf
Febrero 5, 2009 a las 2:29 pm |
Por si a alguien le interesa, puse el proceso desde cero en mi blog. http://salomonrt.wordpress.com
Saludos