viernes, 14 de agosto de 2020

Compilar la libreria QSerialBus para Qt 5.12.0 en Ubuntu 18.04

Primero hay que clonar el código fuente con git:

git clone git://code.qt.io/qt/qtserialbus.git

Luego ingresamos a la carpeta qtserialbus y ejecutamos

RUTA_QT/Qt/5.12.0/gcc_64/bin/qmake

para configurar el código, posteriormente ejecutamos make.

Luego de que finalice la compilación, ejecutamos make install, las librerías deberían instalarse en RUTA_QT/Qt/5.12.0 quedando lista para su uso.

Hacer librerias para Qt

En el proyecto donde se encuentra el código fuente de la librería, hay que configurar el archivo .pro de la siguiente forma:

QT += core

CONFIG += c++11

TARGET = milibreria

The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# Build as a library
TEMPLATE = lib
win32:CONFIG += dll

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
libreria.cpp

HEADERS += \
libreria.h

Luego  en el header libreria.h se coloca una macro a la clase Q_DECL_EXPORT que sirve para exportar la definición de la librería.

 class Q_DECL_EXPORT MiLibreria : public QClaseBase

    Q_OBJECT
public:
    MiLibreria();


signals:

public slots:

private:
};

Una vez compilada se la incluye en el proyecto donde va a ser usada en el archivo .pro agregando la ruta de la librería y de los headers de la siguiente forma:

INCLUDEPATH += rutaDeLosHeaders
LIBS += -L"rutaDeLaLibreria" -lmilibreria

Compilar la librería QMqtt para Qt 5.12.0 en Ubuntu 18.04

Primero hay que clonar el código fuente con git:

git clone git://code.qt.io/qt/qtmqtt.git

Luego ingresamos a la carpeta qtmqtt y ejecutamos

RUTA_QT/Qt/5.12.0/gcc_64/bin/qmake

para configurar el código, posteriormente ejecutamos make.

Luego de que finalice la compilación, ejecutamos make install, las librerías deberían instalarse en RUTA_QT/Qt/5.12.0 quedando lista para su uso.

Activar SSL en Ionos

En esta guía explicaré como instalar un certificado SSL en un servidor de Ionos, para esto deberías haber adquirido un dominio en Ionos, con esto podrás pedir el certificado SSL gratis.

Al activar el certificado, Ionos te descargará un archivo llamado _.TU-DOMINIO.com_private_key.key la cual es tu llave privada, deberás guardar este archivo.

Adicional a este archivo, deberás descargar el SSL Certificate (TU-DOMINIO.com_ssl_certificate.cer) y el Intermediate Certificate (_.TU-DOMINIO.com_ssl_certificate_INTERMEDIATE.cer), estos archivos deben ser concatenados en un solo archivo el cual se puede llamar (_.TU-DOMINIO.com_pem.pem).

La concatenación de estar realizada de tal forma que obtengas el siguientes resultado:
-----BEGIN CERTIFICATE----- (SSL Certificate: TU-DOMINIO.com_ssl_certificate.cer) -----END CERTIFICATE---- -----BEGIN CERTIFICATE----- (Intermediate Certificate: _.TU-DOMINIO.com_ssl_certificate_INTERMEDIATE.cer) -----END CERTIFICATE----

Procura que no queden espacios al comienzo, entre los contenidos, y al final de los mismos para que no se produzcan errores.

Estos archivos deben ser copiados a tu servidor en la carpeta /etc/ssl/nginx (en caso de que utilices nginx) y luego es necesario editar el archivo de configuración del sitio, en mi caso /etc/nginx/sites-available/odoo-443

Dependiendo del caso, hay que editar o agregar estas líneas:
ssl_certificate /etc/ssl/nginx/_.TU-DOMINIO.com_pem.pem; ssl_certificate_key /etc/ssl/nginx/_.TU-DOMINIO.com_private_key.key;

Para terminar, solo es necesario reiniciar el servidor Nginx, ejecutando:
$ sudo systemctl restart nginx

Agrandar una partición en un servidor Linux

Vamos a redimensionar el tamaño de la partición /dev/sda1, la cual tiene un tamaño de 100GiB y tiene instalado el sistema operativo Ubuntu Server, y contiene una partición /dev/sda2 que corresponde al swap del sistema, con un tamaño de 8,7 GiB. Queremos aumentar la partición /dev/sda1 a 190GiB y el Swap con el espacio restante. La unidad actualmente tiene capacidad para 200GiB.

Para redimensionar el tamaño de la unidad, primero hay que desactivar la partición del Swap, comentado la línea que corresponde en el archivo /etc/fstab.

# swap was on /dev/sda2 during installation
# /dev/sda2 none swap sw 0 0

Luego reiniciamos el sistema para que los cambios surtan efecto.

Ejecutamos

# fdisk /dev/sda

Imprimimos las particiones actuales tecleando p en fdisk y dando Enter, lo que debería dar algo similar a lo siguiente:


Disco /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00065433

Dispositivo Inicio  Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sda1   *           2048 191406250 191404203  91,3G 83 Linux
/dev/sda2          191410176 209715199  18305024   8,7G 82 Linux swap / Solaris

Entonces eliminamos la partición /dev/sda5 tecleando d y dando Enter, y luego escogemos la opción 2 cuando se nos pregunte.

Número de partición (1,2, valor predeterminado 2): 2

Guardamos los cambios tecleando w y dando Enter.

Volvemos a abrir ejecutar

# fdisk /dev/sda

Borramos la partición 1 y creamos una nueva con la opción n

Tipo de partición
   p   primaria (0 primaria(s), 0 extendida(s), 4 libre(s))
   e   extendida (contenedor para particiones lógicas)
Seleccionar (valor predeterminado p): p
Número de partición (1-4, valor predeterminado 1): 1
Primer sector (2048-419430399, valor predeterminado 2048): 2048
Último sector, +sectores o +tamaño{K,M,G,T,P} (2048-419430399, valor predeterminado 419430399): +190G

Crea una nueva partición 1 de tipo 'Linux' y de tamaño 190 GiB.
Partición #1: contiene un ext4 en la firma.

¿Desea eliminar la firma? [S]í/[N]o: N

Guardamos los cambios con w.

Ahora es posible reiniciar el sistema para que los nuevos cambios surtan efecto.

Tras el reinicio ejecutamos

# fdisk -l

Y nos dará como resultado lo siguiente:

Disco /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00065433

Dispositivo Inicio Comienzo     Final  Sectores Tamaño Id Tipo
/dev/sda1              2048 398460927 398458880   190G 83 Linux

Con esto hemos redimensionado la partición, ahora es necesario redimensionar el sistema de archivos, para lo cual ejecutamos lo siguiente:

# resize2fs -p /dev/sda1

El sistema de ficheros de /dev/sda1 está montado en /; hace falta cambiar el tamaño en línea
old_desc_blocks = 6, new_desc_blocks = 12
El sistema de ficheros en /dev/sda1 tiene ahora 49807360 bloques (de 4k).

Con esto la unidad ya está redimensionada, ahora es necesario retornar el Swap, para lo cual crearemos una partición nueva para el Swap

Ejecutamos
# fdisk /dev/sda

Y luego creamos una nueva partición con n, y seleccionamos las siguientes opciones

Tipo de partición
   p   primaria (1 primaria(s), 0 extendida(s), 3 libre(s))
   e   extendida (contenedor para particiones lógicas)
Seleccionar (valor predeterminado p): p
Número de partición (2-4, valor predeterminado 2): 2
Primer sector (398460928-419430399, valor predeterminado 398460928): 398460928
Último sector, +sectores o +tamaño{K,M,G,T,P} (398460928-419430399, valor predeterminado 419430399): 419430399

Crea una nueva partición 2 de tipo 'Linux' y de tamaño 10 GiB.

Luego cambiamos el tipo de partición con la opción t, y seleccionamos la partición 2 e ingresamos 82 que corresponde al tipo de particón Linux Swap:

Orden (m para obtener ayuda): t
Número de partición (1,2, valor predeterminado 2): 2
Código hexadecimal (escriba L para ver todos los códigos): 82

Editamos nuevamente el archivo /etc/fstab descomentando la línea del swap anteriormente comentada.