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.
viernes, 14 de agosto de 2020
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
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
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.
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.
Para terminar, solo es necesario reiniciar el servidor Nginx, ejecutando:
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.
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.
martes, 9 de junio de 2020
Acceso a un servidor por SSH mediante clave SSH
Configuración del equipo local
En caso de no tener una clave, hay que generarla con el comando:
ssh-keygen -t rsa -b 2048 -C "Descripción de la clave email@dominio.com"
Pedirá el nombre de salida, por defecto id_rsa, en mi caso puse mis nombre y apellidos, los archivos se guardarán en la carpeta ~/.ssh
Creamos un archivo de configuración para la conexión llamado config, dentro de la carpeta de claves, es decir:
~/.ssh/config
Y dentro del mismo agregamos algo similar a:
Configuración en el servidor
En el servidor remoto es necesario agregar la clave publica en el archivo:
~/.ssh/authorized_keys
Hay dos formas de hacerlo, la primera mediante el comando:
La segunda forma mediante el comando:
Para impedir el acceso al servidor mediante contraseñas y con root, editamos el archivo /etc/ssh/sshd_config, cambiando lo siguiente:
Con esto deberíamos poder ingresar al servidor utilizando una llave ssh.
Tips:
Para eliminar un footprint generado de algún servidor usar:
ssh-keygen -f "~/.ssh/known_hosts" -R "DIR.IP.DEL.HOST"
Referencias:
https://www.stackscale.com/es/blog/configurar-llaves-ssh-servidor-linux/
https://www.ssh.com/ssh/config/
https://www.ssh.com/ssh/copy-id
https://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config
https://askubuntu.com/questions/311558/ssh-permission-denied-publickey
En caso de no tener una clave, hay que generarla con el comando:
ssh-keygen -t rsa -b 2048 -C "Descripción de la clave email@dominio.com"
Pedirá el nombre de salida, por defecto id_rsa, en mi caso puse mis nombre y apellidos, los archivos se guardarán en la carpeta ~/.ssh
Creamos un archivo de configuración para la conexión llamado config, dentro de la carpeta de claves, es decir:
~/.ssh/config
Y dentro del mismo agregamos algo similar a:
PubKeyAuthentication yes
IdentityFile ./path/to/key
Configuración en el servidor
En el servidor remoto es necesario agregar la clave publica en el archivo:
~/.ssh/authorized_keys
Hay dos formas de hacerlo, la primera mediante el comando:
$ ssh-copy-id -i ~/.ssh/id_rsa
user@host -p port
La segunda forma mediante el comando:
$ cat ~/.ssh/id_rsa.pub | ssh user@host -p port "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Debemos asegurarnos que los permisos de la carpeta .ssh sean 755 y del archivo authorized_keys sean 644.
Para impedir el acceso al servidor mediante contraseñas y con root, editamos el archivo /etc/ssh/sshd_config, cambiando lo siguiente:
PermitRootLogin no PasswordAuthentication noReiniciamos el servicio:
$ systemctl restart sshd
Con esto deberíamos poder ingresar al servidor utilizando una llave ssh.
Para eliminar un footprint generado de algún servidor usar:
ssh-keygen -f "~/.ssh/known_hosts" -R "DIR.IP.DEL.HOST"
Referencias:
https://www.stackscale.com/es/blog/configurar-llaves-ssh-servidor-linux/
https://www.ssh.com/ssh/config/
https://www.ssh.com/ssh/copy-id
https://serverfault.com/questions/253313/ssh-returns-bad-owner-or-permissions-on-ssh-config
https://askubuntu.com/questions/311558/ssh-permission-denied-publickey
Suscribirse a:
Entradas (Atom)