Hace algunos años, un amigo se aventuró en el negocio de los puntos de venta, pero con puro Software Libre. Hubieron muchas lecciones aprendidas y nunca mas nos volvimos a meter en el asunto del software para Punto de Venta.
Casi 10 años después, vuelvo a husmear en el asunto y encuentro que hay muchos proyectos maduros. Después de analizar varios, me decidí por probar LemonPOS, que está escrito en C++ y QT.
Ahí les va una bitácora de instalación de LemonPOS en Fedora 17 (Mi distro favorita de moda).
1 - Instalación de Fedora 17
La instalación de Fedora está fácil. Bajé el ISO de 64 bits y lo puse en una máquina virtual en el VirtualBox. De memoria RAM tiene 1GB y de disco duro tiene 8 GB.
Toda la instación fue en inglés, así que después de terminar de instalar, el primer paso que hice fue configurar el idioma a español. Además de las actualizaciones, no he instalado nada más.
2.- Instalación de dependencias
Primero instala todas las actualizaciones
# yum update
Para mi sorpresa LemonPOS ya viene compilado y empaquetado en Fedora 17, así que solo necesitaremos instalar el paquete lemonpos y el paquete qt-mysql
yum install lemonpos qt-mysql
3 - Instalación y configuración de MySQL
Aquí viene la talacha de instalar mysql. Primero el paquete:
yum install mysql-server
Y arranca mysql:
systemctl start mysqld.service
Ahora es momento de mysql_secure_installation. Primero te pide el password de la cuenta root de MySQL (No confundir con la cuenta root del sistema), pero como la instalación es nueva entonces el password de root esta vacío, así que solo es necesario presionar <<enter>>
/usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we'll need the current password for the root user. If you've just installed MySQL, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none):
Después nos ofrece revocar los privilegios del usuario anónimo. No es mala idea, así que contestamos que si:
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Después pregunta que si queremos restringir el acceso de root solo desde localhost. Yo creo que esa es buena idea, así que contesto que si:
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
También eliminé la base de datos test:
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Por último, hay que recargar la la tabla de privilegios:
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
Ahora vamos a probar que podemos acceder a la base de datos como root:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.23 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
* Nota mental: la próxima investigar cómo usar MariaDB en lugar de MySQL. Ese Copyright de Oracle me da picazón.
Es momento de crear la base de datos junto con el esquema de tablas de LemonPOS. El esquema de MySQL ya viene incluido en la documentación:
cat /usr/share/docs/lemonpos-0.9.4/database_resources/lemon_mysql.sql | mysql -u root -p
Con lo anterior se va a crear la base de datos lemondb con todo y las tablas y un usuario administrador con nombre "admin" y contraseña "linux".
Después, hice un usuario de mysql con el nombre "limonada" y el password "SuperSecreto123" que tenga todo el poder sobre la base de datos lemondb, pero que solo puede entrar desde «localhost».
mysql> CREATE USER 'limonada'@'localhost' IDENTIFIED BY 'SuperSecreto123'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL on lemondb.* to 'limonada'@'localhost'; Query OK, 0 rows affected (0.00 sec)
Finalmente, recargar la tabla de privilegios:
mysql> FLUSH privileges; Query OK, 0 rows affected (0.00 sec)
Ahora probamos el usuario limonada:
$ mysql -u limonada -p Enter password: mysql> use lemondb; Database changed mysql>
4 - Configuración de LemonPOS
Al arrancar, ya sea lemon o squeze, se nos pedirá la información de conexión a la base de datos. Aquí esta resumida esa información:
- Servidor: localhost
- Nombre de Usuario: limonada
- Contraseña: SuperSecreto123
- Nombre de la base de datos: lemondb
Y listo.
La página web de LemonPOS es http://lemonpos.org/