¿Cómo instalar Odoo ERP en Debian 8?

¿Qué es Odoo?

Odoo es un conjunto de aplicaciones de código abierto dirigido a empresas cuya única función es la de cubrir con las necesidades de su negocio. Por ejemplo algunos de los módulos que incorpora Odoo son: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos etc.

Instalación de Odoo ERP

 

Comandos usados durante la instalación de Odoo ERP en Debian 8.

wget http://nightly.odoocdn.com/10.0/nightly/deb/odoo_10.0.latest_all.deb
dpkg -i odoo_10.0.latest_all.deb
apt-get install -f
dpkg -i odoo_10.0.latest_all.deb
Nota: Antes de iniciar con la instalación de Odoo tenemos que tener instalado PostgreSQL ya que es el motor de bases de datos que usa por defecto Odoo ERP en caso de no tener instalado PostgreSQL visita el siguiente tutorial en el cual aprenderás a instalar PostgreSQL.

Solución PostgreSQL – Database creation error: new encoding (UTF8) is incompatible with the encoding of the template database

En este video tutorial se muestra cómo solucionar el error de PostgreSQL “Database creation error: new encoding (UTF8)” este error es muy común durante la creación de bases de datos dentro de PostgreSQL, en mi caso el error me sucedió durante la instalación de OdooERP.

Comandos para solucionar el error Database creation error: new encoding (UTF8)

postgres@odoo:~$ psql
psql (9.4.12)
Type "help" for help.
postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
UPDATE 1
postgres=# DROP DATABASE template1;
DROP DATABASE
postgres=# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
CREATE DATABASE
postgres=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
UPDATE 1
postgres=# \c template1
You are now connected to database "template1" as user "postgres".
template1=# VACUUM FREEZE;
VACUUM
template1=# \q
postgres@odoo:~$

¿Cómo instalar PostgreSQL en Linux?

¿Qué es PostgreSQL?  PostgreSQL es un Sistema de Gestión de Bases de Datos Relacional Orientado a Objetos, el cual nos permite crear bases de datos robustas y potentes ya que cuenta con una gran cantidad de opciones avanzadas. Sin mencionar que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, como quien dice es Libre.

Ahora que ya sabemos que es PostgreSQL procederemos con su instalación.

Primero que nada comprobaremos que nuestro sistema operativo cuente con las últimas actualizaciones del SO. De no ser así actualizaremos el sistema operativo.

Una vez que actualicemos nuestro sistema operativo procederemos con la instalación de PostgreSQL para esto abrimos una terminal con privilegios de root  y escribimos el siguiente comando:

install postgresql –y

$aptitude install postgresql -y
Setting up postgresql-common (165+deb8u2) ...
Adding user postgres to group ssl-cert
Creating config file /etc/postgresql-common/createcluster.conf with new version
Creating config file /etc/logrotate.d/postgresql-common with new version
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:
[ ok ] Starting PostgreSQL 9.4 database server: main.
Setting up postgresql (9.4+165+deb8u2) ...
Processing triggers for libc-bin (2.19-18+deb8u9) ...
root@odoo:~#
Una vez que termine la instalación PostgreSQL  lo único que faltaría seria entrar a PostgreSQL. Esto lo podemos hacer a través de una terminal con el siguiente comando.
psql
Una vez que ingresemos el comando anterior automáticamente entraremos a la administración de PostgreSQL lo cual debería de lucir de la siguiente manera
postgres@odoo:~$ psql 
psql (9.4.12) 
Type "help" for help.
postgres=#

Descargar: Manual de usuario PostgreSQL

¿Como instalar PuTTY en Windows?

PuTTY es un cliente SSH y telnet, desarrollado para la plataforma Windows. PuTTY nos permite conectarnos de una manera rápida y eficaz a un servidor Linux por medio de SSH, cabe mencionar que PuTTY es un proyecto Open Source desarrollado y soportado por un grupo de voluntarios.

¿Cómo descargar PuTTY?

Para descargar PuTTY desde la página oficial únicamente hay que abrir nuestro navegador y en el buscador ingresar la dirección: http://www.putty.org/ enseguida nos abrirá una página la cual nos mostrará varios clientes SSH para Windows, en este caso nos enfocamos en el apartado de “You can download PuTTY here” y damos clic para descargar de igual manera si lo deseas puedes descargar el cliente de SSH PuTTY desde este enlace.

Guía de instalación de PuTTY en Windows

Descargar: PuTTY SSH

Comando sudo

El comando sudo le permite a un usuario autorizado ejecutar un comando como el superusuario u otro usuario dependiendo de las directivas de seguridad. Por lo tanto las directivas de seguridad son las que determinan los privilegios con los cuales el usuario debe de ejecutar el comando sudo.

Cabe mencionar que las directivas de seguridad pueden admitir el almacenamiento  de las credenciales en caché  de esta forma pueden permitirle al usuario ejecutar el comando sudo durante un período de tiempo sin necesidad de autenticación. Por defecto las directivas de seguridad predeterminadas se encuentran en el archivo sudoers en el directorio /etc .

Ruta del archivo sudoers.

/etc/sudoers

Editando los privilegios de los usuarios en el archivo sudoers.

# User privilege specification 
root ALL=(ALL:ALL) ALL 
pablo ALL=(ALL:ALL) ALL
Para más información te invito a que descargues el manual completo del comando sudo en el cual podrás encontrar algunas de sus características más usadas.

Descargar: Manual comando sudo

¿Cómo asignar privilegios de root a un usuario en Linux?

Es importante saber que en Linux muchos de los comandos que utilizamos día a día requieren de ciertos privilegios de administrador o en este caso privilegios de root por lo tanto en este tutorial aprenderás a asignar privilegios de root a cualquier cuenta de usuario dentro de nuestro sistema Linux.

El primer paso a seguir es abrir una terminal como root y editar el archivo sudoers el cual se encuentra dentro del directorio /etc.

nano /etc/sudoers
Una vez que estemos dentro del archivo sudoers procederemos a buscar la línea
# User privilege specification 
root ALL=(ALL:ALL) ALL
Y procederemos a agregar nuestro usuario en el archivo sudoers quedando de la siguiente manera:
# User privilege specification
root ALL=(ALL:ALL) ALL 
pablo ALL=(ALL:ALL) ALL
Una vez que hayamos agregado nuestro usuario al archivo sudores procederemos a guardar el archivo y listo ahora nuestra cuenta de usuario contendrá privilegios de root y podrá ejecutar el comando sudo.

Nota: Es importante aclarar que para ejecutar comandos con privilegios de root necesitamos introducir la sentencia sudo antes de cualquier otro comando.

Por ejemplo:

Si queremos abrir un archivo de texto el cual únicamente se puede editar utilizando una cuenta con privilegios de root tendríamos que introducir la sentencia sudo seguido del comando nano.

Ejemplo:

sudo nano contraseñas.txt
Esto por consecuencia abrirá el archivo de texto desde nuestra cuenta de usuario. Si deseas más información sobre el comando sudo te invito a que visites el siguiente post en el cual se explica a mas detalle el comando sudo y sus alcances.

¿Cómo añadir un usuario en Linux?

Para añadir un nuevo usuario en nuestro sistema Linux lo primero que debemos de hacer es abrir una terminal e ingresar con el usuario súper administrador o root, una vez que tengamos abierta la terminal con los privilegios de root procederemos a ejecutar el síguete comando:
adduser mi_usuario
Después de introducir el comando adduser nos  pedirá la información de la cuenta de usuario como el Nombre, Contraseña, etc. Una vez que terminemos de introducir nuestros datos nos pedirá confirmación para poder finalizar la creación del usuario.
$adduser pablo
Adding user `pablo' ...
Adding new group `pablo' (1000) ...
Adding new user `pablo' (1000) with group `pablo' ...
Creating home directory `/home/pablo' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for pablo
Enter the new value, or press ENTER for the default
Full Name []: Juan Pablo
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
root@servidor:~#
Más información

Cabe mencionar que el comando adduser tiene más funcionalidades las cuales no se tocaron en este post si deseas conocer más sobre las funciones del comando adduser te invito a que visites la siguiente publicación, ahí encontraras más detalles sobre cómo funciona el comando adduser  y algunas de sus funcionalidades mas usadas.

Comando adduser

El comando adduser prácticamente nos permite añadir un usuario al sistema Linux. Cabe mencionar que de igual manera se pueden incluir ciertas variaciones dentro de la línea del comando adduser ya que esto nos permitirá crear un usuario de acuerdo a nuestras necesidades.
Por ejemplo:

Agregar el usuario pablo al directorio por defecto (/home)
sudo adduser pablo
Agregar un usuario especificando el directorio por defecto (/home/usuarios/)
sudo adduser –d /home/usuarios pablo
$adduser pablo
Adding user `pablo' ...
Adding new group `pablo' (1000) ...
Adding new user `pablo' (1000) with group `pablo' ...
Creating home directory `/home/pablo' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Is the information correct? [Y/n] y
root@servidor:~#
Cabe mencionar que el comando adduser nos creara automáticamente nuestro directorio personal en mi caso /home/pablo el cual se creara con la configuración predeterminada del sistema.

Si deseas más información sobre el comando adduser y sus variaciones puedes descargar el manual del comando en el siguiente enlace:

Descargar: Manual del comando adduser

Web Penetration Testing with Kali Linux

Con la ayuda de este libro podrás realizar varios métodos de prueba de penetración con los lenguajes de programación basados en web como PHP, JavaScript y MySQL ya que contiene instrucciones claras y paso a paso con gran cantidad de capturas de pantalla.

Información sobre el libro:

Web Penetration Testing with Kali Linux está escrito en un lenguaje fácil de entender que simplificará aún más la comprensión para el usuario. Esto resulta ideal para cualquier persona que esté interesada en aprender cómo convertirse en un probador de penetración. También ayudará a los usuarios que son nuevos en Kali Linux a entender las características y diferencias entre Kali Linux  y  Backtrack.

Descargar: Web Penetration Testing with Kali Linux

Descargar: Kali Linux

¿Cómo instalar las actualizaciones en Ubuntu?

Para instalar las actualizaciones de software más recientes de Ubuntu primero que nada hay que actualizar nuestra lista de repositorios  de Ubuntu ya que de esto depende que nuestro sistema operativo tenga las versiones de software más recientes. Una vez que se hayan actualizado los repositorios de Ubuntu, procederemos a abrir una terminal con privilegios de administrador y escribimos el siguiente comando:
apt-get upgrade
El comando anterior nos desplegara en la terminal una lista con todos los paquetes software que requieren ser instalados o actualizados. Una vez que aprobemos la instalación y actualización de dichos paquetes el sistema procederá a instalar las actualizaciones.

[simterm]
$apt-get upgrade
Reading package lists… Done
Building dependency tree… Done
Calculating upgrade… Done
The following packages will be upgraded:
accountsservice apparmor apt apt-transport-https apt-utils base-files
132 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 62.9 MB of archives.
After this operation, 288 kB of additional disk space will be used.
$Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 base-files amd64 9.4ubuntu4.3 [67.7 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 bash amd64 4.3-14ubuntu1.1 [583 kB]
Fetched 62.9 MB in 10min 0s (105 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages …
(Reading database … 16228 files and directories currently installed.)
Preparing to unpack …/base-files_9.4ubuntu4.3_amd64.deb …
Unpacking base-files (9.4ubuntu4.3) over (9.4ubuntu4) …
Setting up ubuntu-release-upgrader-core (1:16.04.20) …
root@pablo:~#
[/simterm]

¿Cómo funciona?

Prácticamente y en resumidas cuentas el funcionamiento del comando anterior es el siguiente:
1.- Lee la lista de los paquetes
Reading package lists... Done
2.- Construye el árbol de dependencias (en caso de que falte una automáticamente la agrega a la lista de paquetes a instalar)
Building dependency tree... Done
3.- Procede a buscar las actualizaciones o las versiones de software más reciente y las despliega en la terminal.
Calculating upgrade... Done
The following packages will be upgraded:
  accountsservice apparmor apt apt-transport-https apt-utils base-files bash bash-completion bind9-host bsdutils command-not-found command-not-found-data console-setup console-setup-linux cpp-5 dbus dh-python
  distro-info-data dmidecode dnsutils dosfstools dpkg fontconfig-config fuse gcc-5-base gnupg gpgv grep ifupdown init init-system-helpers initramfs-tools initramfs-tools-bin initramfs-tools-core util-linux uuid-runtime vim-common vim-tiny wget xinit
132 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 62.9 MB of archives.
After this operation, 288 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
4.- Descarga el paquete
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 base-files amd64 9.4ubuntu4.3 [67.7 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 bash amd64 4.3-14ubuntu1.1 [583 kB]
Get:132 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 xinit amd64 1.3.4-3ubuntu0.1 [18.3 kB]
Fetched 62.9 MB in 10min 0s (105 kB/s)
5.-  Descomprime y procesa el paquete
Preparing to unpack .../dnsutils_1%3a9.10.3.dfsg.P4-8ubuntu1.3_amd64.deb ...
Unpacking dnsutils (1:9.10.3.dfsg.P4-8ubuntu1.3) over (1:9.10.3.dfsg.P4-8) ...
6.- Instala y configura el paquete
Setting up bind9-host (1:9.10.3.dfsg.P4-8ubuntu1.3) ...
Setting up dnsutils (1:9.10.3.dfsg.P4-8ubuntu1.3) ...