miércoles, 31 de enero de 2018

Instalar PostgreSQL 10 y pgAdmin 4 en Fedora 27


PostgreSQL 10

PostgreSQL es un poderoso sistema de base de datos de objetos-relacional de código abierto. Cuenta con más de 15 años de desarrollo activo y una arquitectura comprobada que le ha ganado una sólida reputación por su fiabilidad, integridad de datos y corrección. Funciona en todos los sistemas operativos principales, incluyendo Linux, UNIX (AIX, BSD, HP-UX, MacOS, Solaris) y Windows. Es totalmente compatible con ACID, tiene soporte completo para llaves extranjeras, uniones, vistas, disparadores y procedimientos almacenados (en múltiples idiomas). Incluye la mayoría de los tipos de datos SQL: 2008, incluyendo INTEGER, NUMÉRICO, BOOLEAN, CHAR, VARCHAR, DATE, INTERVALO y TIMESTAMP. También soporta el almacenamiento de objetos binarios grandes, incluyendo imágenes, sonidos o video. Cuenta con interfaces de programación nativa para C/C++, Java,. Net, Perl, Python, Ruby, Tcl, ODBC, entre otros, y documentación excepcional.


**Realizar copias de seguridad
Antes de continuar, es necesario realizar copias de seguridad de las bases de datos que se tengan.

Desinstalar cualquier versión previa que se tenga de postgresql.

sudo dnf remove postgresql-server pgadmin3

Añadir el repositorio de PostgreSQL 10

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/10/fedora/fedora-27-x86_64/pgdg-fedora10-10-3.noarch.rpm

Instalar PostgreSQL 10


sudo dnf install postgresql10-server postgresql10 pgadmin4-v2

Este comando instalará todos los siguientes paquetes:




Iniciar en modo root:


su -
Iniciar PGDATA


# /usr/pgsql-10/bin/postgresql-10-setup initdb
Este comando mostrará una ventana similar a la siguiente:




Iniciar el servicio de PostgreSQL 10:

# systemctl start postgresql-10.service

Verificar la instalación y cambiar la contraseña:


su - postgres -c "psql"
Este comando mostrará la siguiente salida:

Ahí se cambia la contraseña, para poder utilizar el gestor.

Modificar el archivo postgresql.conf para editar el puerto la ip en la que se ejecutará el proceso.

# gedit /var/lib/pgsql/10/data/postgresql.conf 

Y agregar lo siguiente:

#Descomentar las siguiente líneas, tienen que quedar así.
listen_addresses = '*'  # what IP address(es) to listen on;
port = 5432    # (change requires restart)

Configuración del archivo pg_hba.conf

# gedit  /var/lib/pgsql/10/data/pg_hba.conf

Y modificar lo siguiente esto:


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/24            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Reiniciar el servicio de PostgreSQL 10:


# systemctl restart postgresql-10.service

Ahora, acceder a la gestor de base de datos desde una interfaz gráfica. Anteriormente se utilizaba pgAdmin III, sin embargo en la nueva versión no abre correctamente la sesión. De tal manera que ahora utilizo dbeaver para acceder a las base de datos.


Ahora iniciar pgAdmin 4


Interfaz de pgAdmin 4



La interfaz de pgAdmin 4 es realmente simple de utiliza y muy fácil. En esta ocasión simplemente mostraré cómo crear una nueva conexión y ya ustedes realizarán el resto. Recordar que siempre existen herramientas externas como dbeaver, para conectarse en modo gráfico al gestor de la base de datos.



Rellenar los campos de datos requeridos:




Una vez agregada la conexión, se podrá editar y configurar de la siguiente manera:




Fuentes:
https://www.postgresql.org/download/
https://tecadmin.net/install-postgresql-server-centos/
https://linuxgx.blogspot.mx/2016/11/instalar-postgresql-96-y-pgadmin-iii-en.html
https://linuxgx.blogspot.mx/2017/08/instalar-postgresql-96-y-pgadmin-iii-en.html

martes, 30 de enero de 2018

Laptop Lemur System76



Comprar en el extranjero

Primero que nada, cuando se realiza una compra en línea, y sobre todo si la empresa no es muy conocida, es necesario investigarla a fondo, si tienes sucursales, físicas, que exista un número real, etc.

La empresa se llama Systema76, sitio oficial https://system76.com/. Su página es relativamente simple, pero muy fácil de utilizar, nada del otro mundo. Así que mi investigación inicio en youtube, buscando a los compradores que ya tenían un equipo de dicha empresa. Una vez que hallé toda la información necesaria para tomar la decisión de comprarla, pues lo hice, la compra se hace directamente desde su página oficial.

El tiempo de llegada fue de 4días, el proceso de compra con el banco fueron de 4 días también, recordemos que fue una compra internacional.

El equipo debe pagarse aduana, y lo paga el cliente, además, el precio de la página oficial, incluye costo de envío adicional, mediante UPS.

Por qué compré dicho equipo?

Primero, la relación de costo y características, sin incluir costos de envíos y aduana, son completamente proporcionales desde mi punto de vista, y sobre todo considerando que en México, no es posible hallar por ejemplo un i7 de séptima generación,  8 de RAM, y 1TB en HDD, por menos de 18mil pesos MXN y mucho menos si lo consideramos en octava generación.

Otras de las característica que tiene este equipo, es que es 100% compatible con Linux, es decir, que todo el hardware, es compatible con todos los SO Linux y los drivers que vienen por defecto en dichos SO. Eso me consta, lo he probado en estos últimos días.



Es decir, que todos los componentes internos son desmontables, y lo pueden corroborar en la imagen de arriba.

Las características con las que cuenta el equipo son  las siguientes https://system76.com/laptops/lemur:

Operating System: Pop!_OS 17.10 (64-bit) or Ubuntu 16.04.3 LTS (64-bit)
Processor: 7th Gen Intel® Core i3-7100U or 8th Gen Intel® Core i7-8550U
                  i3-7100U: 2.4 GHz – 3 MB cache – 2 cores – 4 threads
                  i7-8550U: 1.8 up to 4.0 GHz – 8 MB cache – 4 cores – 8 threads
Display 14.1″ 1920×1080 IPS, Matte Finish
Graphics Intel® HD Graphics 620
Memory Up to 32 GB Dual Channel DDR4 @ 2133 MHz
Storage M.2 SSD, 2.5″ 7mm height drive. Up to 6 TB total
Expansion USB 3.1 Type-C, USB 3.0 Type-A, USB 2.0 Type-A, SD Card Reader
Input Multitouch Touchpad, Chiclet Keyboard
Networking Gigabit Ethernet, Intel® Wireless-AC, Bluetooth
Video Ports HDMI, VGA
Audio Stereo Speakers, Stereo Mic, Headphone Jack, Mic Jack, 5.1 channel (HDMI)
Camera 720p (1280×960) HD Webcam
Security Disabled ME, Kensington® Lock
Battery Removable 4 Cell Smart Li-Ion – 44 Wh
Charger 40 W, AC-in 100–240 V, 50–60 Hz
Dimensions 13.4″ × 9.5″ × 0.9″ (34.01 × 24.21 × 2.21 cm)
Weight 3.6 lbs. (1.6 kg.)

Actualmente en  mi equipo tiene 24GB de ram, 2TB HDD sata 2.5 y 120GB en SSD.


Redimiento actual

No hay otra manera más fácil de probar el rendimiento que iniciar todas aplicaciones posibles:
Y ver el funcionamiento del procesamiento:

Inicié todas 2 máquinas virtuales de Windows 10 de 64bits y 1 con kali y una más con Fedora 27, con VirtualBox. Navegador, VLC, Aquí la imagen:




En monitor del sistema, se visualiza de la siguiente manera:



En modo terminal, se visualiza así de bonito



Una vez finalizado y cerrado todos los programas abiertos, los procesos ya bajan un poco, he aquí el resultado:




En cuando al uso, a pesar de todas aplicaciones abiertas, la navegación entre ventanas, búsqueda archivos, cambio de pestañas en el navegador, e incluso la reproducción de vídeos, es estable, liviana, no se congela el sistema, no se pasma, nada de nada. Definitivamente es un equipo que vale la pena.


Conclusión

Este equipo efectivamente, cumple sus características en relación al costo. En pesos Mexicanos tiene un costo aproximadamente de 18mil, considerando el precio del dólar. Además, hay que pagar el costo de envío y aduana. Sin embargo sí lo vale. Y ahora puedo decir que la empresa sí existe.

El equipo cumple sus características, en las mini-pruebas, si es que le podemos llamar así, el ventilador, proceso del disco, etc, no hay alteración que sea significativa.

Actualmente tengo un disco SSD de 120GB donde está el SO, el cual tarda aproximadamente unos 18 segundos en iniciar. Además, tengo un HDD de 2TB normal, el cual almacena los datos e información independiente al SO, y hasta ahora va perfecto.

viernes, 26 de enero de 2018

Instalar MySQL 8.0.X en Fedora 27



Ya está la versión 8.0 de MySQL, y aquí los pasos para la instalación. en Fedora 27.

Éstos pasos los he probado y verificado en mi propia máquina. Así que cualquier duda que tengan, espero poder ayudarlos.

Instalación del repositorio de MySQL

Previo a la instalación de este repositorio, es necesario eliminar los repos anteriores de mysql, por ejemplo de la version 5.6 ó 5.7, estos repositorios solo se eliminan los archivos mysql-*.repo que haya en la ruta /etc/yum.repos.d

Instalación del nuevo repositorio:

sudo dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-10.noarch.rpm


Instalación de MySQL 8.0.X


sudo dnf --enablerepo=mysql80-community install mysql-community-server


Instalar MySQL


sudo dnf --enablerepo=mysql80-community install mysql-community-server


Iniciar MySQL

systemctl start mysqld.service

## use restart after update

systemctl enable mysqld.service

Obtener la contraseña aleatoria generada automáticamente

Si solo van a actualizar MySQL, la contraseña a utilizar es la anterior que se usaba para root, si es una instalación nueva, entonces se obtiene de esta manera.

grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1

Y la salida será parecida a esta:

2018-01-20T21:11:44.229891Z 1 [Note] A temporary password is generated for root@localhost: -et)QoL4MLid

Si por alguna razón no les da ninguna salida el comando, pueden buscar manualmente la contraseña, el archivo se encuentra en la ruta  sudo gedit /var/log/mysqld.log

Instalación segura de MySQL

Ahora, es necesario realizar las siguientes configuraciones de MySQL:
  • Cambiar la contraseña
  • Eliminar usuarios anónimos
  • Deshabilitar accesos remotos
  • Eliminar bases de datos de prueba y sus accesos
  • Recargar permisos de usuarios
Este proceso inicia con el siguiente comando:

su -
/usr/bin/mysql_secure_installation

Seguir los pasos del instructivo, así como se muestra en la salida de ejemplo siguiente:

Securing the MySQL server deployment.

Enter password for user root: 

The existing password for the user account root has expired. Please set a new password.

New password: 

Re-enter new password: 

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Using existing password for root.

Estimated strength of the password: 100 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password: 

Re-enter new password: 

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
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? (Press y|Y for Yes, any other key for No) : y
Success.


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? (Press y|Y for Yes, any other key for No) : y
Success.

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? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done! 

Conectarse a localhost

En mi caso, iniciaremos con root, utilizando la contraseña que se haya establecido en los pasos de arriba, y cambiar el tipo de autenticación de MySQL.

A partir de la versión 5.7.x se agregó un nuevo método de autenticación que se llama caching_sha2_password, sin embargo, la configuración es un poco tediosa en linux para poderla utilizar con MySQL Workbench.

mysql -h localhost -u root -p
Esto iniciará el prompt de mysql:

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.4-rc-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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>

Cambiar contraseña del usuario root y convertirlo a tipo por defecto de autenticación de mysql:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'nueva-o-la-misma-contraseña';


Agregar el servicio de MySQL el firewall

firewall-cmd --permanent --zone=public --add-service=mysql

## ó ##

firewall-cmd --permanent --zone=public --add-port=3306/tcp


Reinicia el servicio de MySQL

systemctl restart firewalld.service


Instalación de MySQL Workbench

sudo dnf --disablerepo=\* --enablerepo='mysql*-community*' list available
sudo dnf install mysql-workbench-community



Fuentes:

miércoles, 10 de enero de 2018

Bakspace para regresar a la carpeta anterior en Nautilus Fedora 27



Todos creamos hábitos en el uso de la computadora, aún más cuando se es programador, los atajos de teclado, accesos directos, o comandos son nuestro día a día en el trabajo. Cuando algunas de las cosas tan simples como "Usar la tecla retroceso BackSpace" cambia y ya no funciona para regresar  a la carpeta anterior, en nuestro Explorador de archivos favoritos como lo es Nautilus en mi caso, es todo un caos. Primero, porque mecánicamente nuestro cerebro ha programado esa función, que cuando uno quiera ir a la carpeta anterior, simplemente el cerebro ejecuta la orden y nuestra mano automáticamente reacciona y presiona la tecla. Pero qué pasa cuando dicha función ya no está ahí?

En mi caso, me pareció una transición frustrante, utilizar dos teclas  para retroceder a la carpeta anterior en Nautilus. Afortunadamente, esto se podía revertir con agregar ciertas líneas a accels, una archivo de configuración de nautilus.

Y aquí entra lo interesante de utilizar Linux, que siempre habrá alguien capaz de encontrar una forma de revertir, modificar o agregar funcionalidades que los desarrolladores de las distros GNU/Linux hayan cambiado.

Bueno, la solución a este problema fue creado por un usuario de GitHub que se puede encontrar aquí https://github.com/riclc/nautilus_backspace

Los pasos son los siguientes,  y también se pueden encontrar en la página siguiente:

Paso 1: Instalar nautilus-python

$ sudo dnf install nautilus-python python-gobject python-xpyb python3 python2


Paso 2: Crear el siguiente directorio

$ mkdir -p .local/share/nautilus-python/extensions

Paso 3: Crear un archivo con el nombre de: BackspaceBack.py 



$ gedit .local/share/nautilus-python/extensions/BackspaceBack.py

e ir a al link y copiar el contenido que tiene y pegarlo en el archivo, o copiar el siguiente y guardarlo.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# by Ricardo Lenz, 2016-jun
# riclc@hotmail.com
#

import os, gi
gi.require_version('Nautilus', '3.0')
from gi.repository import GObject, Nautilus, Gtk, Gio, GLib

def ok():
    app = Gtk.Application.get_default()
    app.set_accels_for_action( "win.up", ["BackSpace"] )
    #print app.get_actions_for_accel("BackSpace")
    #print app.get_actions_for_accel("<alt>Up")


class BackspaceBack(GObject.GObject, Nautilus.LocationWidgetProvider):
    def __init__(self):
        pass
    
    def get_widget(self, uri, window):
        ok()
        return None

Paso 4: Reiniciar Nautilus.

$ killall nautilus

Y  con eso ya tenemos de vuelta la función de la tecla de retroceso para volver al directorio anterior en Nautilus 3.26 en Fedora 27.