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!
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/
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?
I use it in ubuntu , but i will install it on an debian stable machine too
Please… let us know if it works fine installing from the official debian packages.
i have upgraded the server to testing , now i will test the 2.0.x packages
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>
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
Big cuestion is… ¿does it work as expected?
Regards.
i will run some tests to se if all is ok , if you want to …
Of course I want… please let us know if everighing works fine…
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.
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 🙂
@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.
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.
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.
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
la pregunta del millón es: ¿funciona?
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
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
Por si a alguien le interesa, puse el proceso desde cero en mi blog. http://salomonrt.wordpress.com
Saludos
Hola rtmex, necesitaria molestarte con unas consultas, no encontre datos en ese blog que colocastes. gracias
la verdad no tengo idea si @rtmex se enterará de tu comentario, Christian, pero por si las dudas, te dejo el link al artículo referenciado: Instalar firebird 2.0 en debian etch. Un saludo 😉
Hola jachguate, gracias por responder, te cuento que eh podido instalar y hacer correr firebird, pero no logro conectar la bd remotamente, estoy intentando registrarla desde ibexpert corriendo en terminr de windows.
he compartido las carpeta con samba y veo los archivos, pero desde ibexpert tocando la carpeta de busqueda (database file) no encuentra la red. Le cree una conexion de red y de esa forma si logra encontrar la bd, pero no hay caso que conecte.
Te agradeceria cualquir dato, gracias!!
El error que me sale es
Ejecucion fracasada causada por un recurso no disponible.
base de datos no disponible.
@Christian: No es necesario compartir ninguna carpeta. Para conectarte via TCP lo que hace falta es verificar que el puerto que usas esté abierto en el linux y construir una «cadena de conexión» válida en el windows. El puerto por defecto es el 3050 y la cadena sería algo como
nombre-servidor:alias_o_ruta_base_datos
o
ip-servidor:alias_o_ruta_base_datos
por ejemplo:
milinux:/home/christian/prueba.fdb
o
192.168.147.148:pruebas
donde pruebas es una entrada válida en el archivo alias.conf. Si usaste mi script, ese archivo está ubicado en /opt/firebird
saludos.
Hola,
Ya instalé el FIREBIRD CLASSIC SERVER 2.1.3 con facilidad gracias a sus notas.
Ahora bien, como inicio el servicio de Firebird?, ya que si veo los procesos, el de firebird no está.
Si trato de conectarme con isql-fb que es el symlink de isql me da esto:
»
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect DEMO_2009.FDB user sysdba password masterkey;
Statement failed, SQLCODE = -902
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
SQL>
»
Tambien, cuando lo instalé el paquete con:
dpkg -i FirebirdCS-2.1.3.18185-0.i686.deb
Nunca me preguntó por passwords ni configuraciones, solamente lo descomprimió. No se si estoy obviando algo?
Gracias por su ayuda… muy buen foro!
Hola Ed. Dado que no usamos los paquetes de debian, no hay un procedimiento automatizado de configuración y el instalador genera una contraseña aleatoria para el sysdba, que se almacena en el archivo /opt/firebird/SYSDBA.password. En cuanto al servicio, por defecto se instala un script estándar en /etc/init.d/firebird para iniciar, reiniciar y detenerlo.
Saludos. 🙂
Ya lo resolví.
Desinstalé el Clasic Server e instalé el Super Server.
El password lo cambié con changeDBApassword.sh que se menciona en este blog.
El old password es el que da al final de la instalación y el nuevo le puse el que yo quería.
Ahora esta trabajando bien.
Por otra parte, si lo quieren instalar (FirebirdSS 2.1.3) con algun sources.list, un compañero lo hizo con este y le funcionó:
deb http://ppa.launchpad.net/mapopa/ubuntu hardy main
Saludos.
Compadre muchas gracias, me saco de un gran apuro su aporte…
Buenas noches
por mas que trato de ver un servicio firebird(activarlo, desactivarlo) verlo con top, nada
Instalé 2.5-classic en ubuntu server 14.04 sin GUI
Desde luego: reconfiguré ccon dpkg y le ddije que lo activara el reiniciar.
No veo ningún servicio activo
Debo mejor instalar superclassic?
es un servidor (como todos los modernos) SMP