Copyright
Copyright © José Luis Lara Carrascal 2008-2024
Sumario
Introducción
Características
Preliminares
Instalación
Configuración
Iniciamos Urxvt
Enlaces
Introducción
Urxvt es la versión Unicode (UTF-8) del emulador de terminal, Rxvt. Además de esta característica soporta pestañas (un poco feas, la verdad) con lo que sus similitudes con Mrxvt
son bastantes coincidentes excepto el soporte de UTF-8. Hay que decir
también que el desarrollo del emulador de terminal, Aterm, ha sido fusionado con el de Urxvt.
Características
* Almacena el texto en formato Unicode (UCS-2 o UCS-4).
* Uso correcto de la entrada y salida de las locales respetando su anchura.
* Modo en segundo plano: un proceso en segundo plano puede abrir
múltiples ventanas en múltiples sesiones con un uso
optimizado de la memoria.
* Soporte embebido de perl con las siguientes características:
1) Soporte multiterminal con pestañas.
2) Selecciones personalizadas asociadas a comandos de ejecución.
3) Selección-transformación con la opción de menús emergentes.
4) Transforma una vez de forma automática la selección hecha.
5) Caché de búsqueda incremental de desplazamiento hacia atrás.
6) Subrayado automático de enlaces y ejecución de éstos.
* Soporte de Xft y fuentes normales en cualquier combinación.
* Optimizado para conexiones locales y remotas.
Preliminares
1) Comprobar que la ruta de instalación de los binarios del programa la tenemos en nuestro PATH
Abrimos una ventana de terminal y ejecutamos el siguiente comando,
[jose@Fedora-18 ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jose/bin
|
Si no aparece entre las rutas mostradas el directorio /usr/local/bin, abrimos un editor de texto y añadimos lo siguiente,
#!/bin/sh
export PATH=/usr/local/bin:$PATH |
Lo guardamos con el nombre variables.sh, y lo instalamos en /etc/profile.d.
$ su -c "install -m755 variables.sh /etc/profile.d" |
Tenemos que cerrar el emulador de terminal y volverlo a abrir para que
la variable de entorno aplicada sea efectiva. Es conveniente guardar
una copia de este script para posteriores instalaciones de nuestro
sistema, teniendo en cuenta que es el que se va a utilizar a partir de
ahora en todos los manuales de esta web, para establecer variables de
entorno globales, excepto en aquellas que sólo afectan al
usuario, en las que se utilizará el archivo de
configuración personal, ~/.bashrc.
La ventaja de utilizar el directorio /etc/profile.d es que es común a todas las distribuciones y nos evita tener que editar otros archivos del sistema como por ejemplo, /etc/profile.
2) Comprobar que la variable de entorno XDG_DATA_DIRS incluye el directorio /usr/local/share
Esta variable se aplica para que los archivos desktop ubicados en un
directorio específico del sistema puedan ser leídos por
los menús de entornos gráficos como XFce 4, o paneles como LXPanel o Fbpanel.
Este aspecto es bastante delicado porque cada distribución es un
mundo y lo mejor que podemos hacer es establecer una variable de
entorno global que incluya todos los directorios predefinidos del
sistema que incluyen archivos desktop, siempre y cuando el directorio /usr/local/share
no esté incluido por defecto en la distribución de turno.
Para saberlo basta abrir el menú de aplicaciones en cualquiera
de los programas antes comentados y comprobar que aparece la entrada
correspondiente a la aplicación tratada en este manual. Si no es
así, en el mismo archivo /etc/profile.d/variables.sh, añadimos lo que está en rojo:
#!/bin/sh
export PATH=/usr/local/bin:$PATH
export XDG_DATA_DIRS=/usr/share:/usr/local/share:$HOME/.local/share:$XDG_DATA_DIRS |
3) Desinstalar versiones anteriores del programa ubicadas en el directorio /usr
Aún en el caso de que la versión a compilar la vayamos a
instalar en el mismo directorio que la que proporciona la
distribución, siempre se debe desinstalar previamente la versión antigua, para evitar conflictos innecesarios.
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la versión con la que se ha compilado Urxvt para la elaboración de este documento.
* GCC - (14.1.0) o Clang - (18.1.7)
* CMake - (3.29.5)
* M4 - (1.4.19)
* Make - (4.4.1)
* Automake - (1.16.5)
* Autoconf - (2.72)
* Pkg-config - (0.29.2)
Librerías de Desarrollo
* Xorg - (7.7 / xorg-server 21.1.13)
LibICE - (1.1.1)
LibX11 - (1.8.9)
LibXrender - (0.9.11)
* Gdk-Pixbuf - (2.42.12)
* Libptytty - (2.0)
* Perl - (5.40.0)
* Startup-Notification - (0.12)
Aplicaciones
* Wget - (1.24.5) [1]
[1] Requerido para poder descargarnos los iconos del archivo desktop desde internet.
Descarga
rxvt-unicode-9.31.tar.bz2 | libptytty-2.0.tar.gz | urxvt_tab.patch
Optimizaciones
$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'
|
Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla: |
Nota informativa sobre las optimizaciones para GCC
|
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado.
* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.
* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
|
Nota informativa sobre las optimizaciones para Clang
|
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.
* Los valores de color azul no son compatibles con Clang.
* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
|
Valores |
CPU |
Genéricos |
generic |
Produce un código
binario optimizado para la mayor parte de procesadores existentes.
Utilizar este valor si no sabemos el nombre del procesador que tenemos
en nuestro equipo. Este valor sólo es aplicable en la
opción '-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2. |
native |
Produce un código
binario optimizado para el procesador que tengamos en nuestro sistema,
siendo éste detectado utilizando la instrucción cpuid.
Procesadores antiguos pueden no ser detectados utilizando este valor.
Esta opción está disponible a partir de GCC 4.2. |
x86-64 |
Procesador genérico con extensiones 64-bit. Esta opción está disponible a partir de GCC 8 y Clang 1.9. |
x86-64-v2 |
Procesador
genérico con con soporte de instrucciones X86-64 (MMX, SSE,
SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3) y extensiones
64-bit. Esta opción está disponible a partir de GCC 11 y Clang 12. |
x86-64-v3 |
Procesador
genérico con con soporte de instrucciones X86-64 (MMX, SSE,
SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C,
FMA, LZCNT, MOVBE, XSAVE, XSAVEC, FMA4) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 12. |
x86-64-v4 |
Procesador
genérico con con soporte de instrucciones X86-64 (MMX, SSE,
SSE2, LAHFSAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C,
FMA, LZCNT, MOVBE, XSAVE, XSAVEC, AVX512*, FMA4) y extensiones 64-bit.
Esta opción está disponible a partir de GCC 11 y Clang 12. |
Intel |
alderlake |
Intel Alderlake con
soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD,
CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16,
AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
arrowlake |
Intel Arrow Lake con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 14. |
arrowlake-s |
Intel Arrow Lake S con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD,
AVXVNNIINT16, SHA512, SM3, SM4 y extensiones 64-bit. Esta opción
está disponible a partir de GCC 14. |
atom |
Intel Atom con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones
64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición bonnell. |
bonnell |
Intel Bonnell con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9. |
broadwell |
Intel Broadwell con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta
opción está disponible a partir de GCC 4.9 y Clang 3.6. |
cannonlake |
Intel Cannonlake Server
con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, UMIP y extensiones 64-bit. Esta opción
está disponible a partir de GCC 8 y Clang 3.9. |
cascadelake |
Intel Cascadelake con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 9 y Clang 8. |
clearwaterforest |
Intel
Clearwater Forest con soporte de instrucciones MOVBE, MMX, SSE, SSE2,
SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX,
GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2,
BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE,
HRESET, KL, WIDEKL, AVX-VNNI, ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8,
AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, USER_MSR,
PREFETCHI y extensiones 64-bit. Esta opción está
disponible a partir de GCC 14 y Clang 18. |
cooperlake |
Intel
Cooper Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16 y extensiones 64-bit. Esta opción
está disponible a partir de GCC 10 y Clang 9. |
core2 |
Intel Core2
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 4.3. |
core-avx2 |
Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición haswell. |
core-avx-i |
Intel Core (ivyBridge)
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones
64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición ivybridge. |
corei7 |
Intel Core i7
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y
SSE4.2 y extensiones 64-bit. Soporta también los procesadores
Intel Core i3 e i5. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición nehalem. |
corei7-avx |
Intel Core i7 con
soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
AVX, AES y PCLMUL y extensiones 64-bit. Soporta también los
procesadores Intel Core i3 e i5. Esta opción está
disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge. |
emeraldrapids |
Intel Emerald Rapids. Esta opción está disponible a partir de GCC 13 y Clang 16. |
goldmont |
Intel Goldmont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE y extensiones
64-bit. Esta opción está disponible a partir de GCC 9 y Clang 5. |
goldmont-plus |
Intel Goldmont Plus con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE,
RDPID, SGX, UMIP y extensiones 64-bit. Esta opción está
disponible a partir de GCC 9 y Clang 7. |
grandridge |
Intel Grand Ridge con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, RAOINT y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 13 y Clang 16. |
graniterapids |
Intel Grand Ridge con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW,
AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI,
VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ,
PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT,
ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR,
AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16, AVX512BF16,
AMX-FP16, PREFETCHI y extensiones 64-bit. Esta opción
está disponible a partir de GCC 13 y Clang 16. |
graniterapids-d |
Intel Granite Rapids D con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND,
F16C, AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW,
AES, CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW,
AVX512DQ, AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI,
VAES, AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ,
PCONFIG, WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, ENQCMD, CLDEMOTE, PTWRITE,
WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8,
AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16, PREFETCHI, AMX-COMPLEX y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 14 y Clang 17. |
haswell |
Intel Haswell con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 4.9. |
i386 |
Intel i386.
|
i486 |
Intel i486. |
i586, pentium |
Intel Pentium sin soporte de instrucciones MMX. |
i686 |
Produce un código
binario optimizado para la mayor parte de procesadores compatibles con
la serie 80686 de Intel. Todos los actuales lo son. |
icelake-client |
Intel Icelake Client con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES y extensiones
64-bit. Esta opción está disponible a partir de GCC 8 y Clang 7. |
icelake-server |
Intel Icelake Server con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG, WBNOINVD y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 8 y Clang 7. |
intel |
Intel Haswell y
Silvermont. Este valor sólo es aplicable en la
opción '-mtune='. Esta opción está disponible
a partir de GCC 4.9. |
ivybridge |
Intel Ivy Bridge con
soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9. |
knl |
Intel Knights Landing con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 5 y Clang 3.4. |
knm |
Intel Knights Mill con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER,
AVX512CD, AVX5124VNNIW, AVX5124FMAPS, AVX512VPOPCNTDQ y extensiones
64-bit. Esta opción está disponible a partir de GCC 8 y Clang 6. |
lakemont |
Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6 y Clang 3.9. |
lunarlake |
Intel Lunar Lake. Esta opción está disponible a partir de GCC 14 y es equivalente a la opción arrowlake-s. |
meteorlake |
Intel Meteor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
nehalem |
Intel Nehalem con soporte
de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 4.9. |
nocona |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit. |
pantherlake |
Intel
Panther Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE,
XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE,
CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI,
BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE,
HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA, AVXVNNIINT8,
AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, PREFETCHI y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 14 y Clang 18. |
penryn |
Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1. |
pentiumpro |
Intel PentiumPro. |
pentium2 |
Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX. |
pentium3, pentium3m |
Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE. |
pentium4, pentium4m |
Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
pentium-m |
Versión de bajo
consumo de Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2.
Utilizado por los portátiles Centrino. |
pentium-mmx |
Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
prescott |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
raptorlake |
Intel Raptor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
rocketlake |
Intel Rocket Lake con
soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 13. |
sandybridge |
Intel Sandy Bridge con
soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AES, PCLMUL y extensiones 64-bit. Esta opción
está disponible a partir de GCC 4.9 y Clang 3.6. |
sapphirerapids |
Intel Sapphire Rapids
con soporte de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD,
CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16,
AMX-TILE, AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
silvermont |
Intel Silvermont con
soporte de instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9 y Clang 3.6. |
sierraforest |
Intel Sierra Forest con
soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES,
XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones
64-bit. Esta opción está disponible a partir de GCC 13 y Clang 16. |
skylake |
Intel Skylake
con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA,
BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 6 y Clang 3.6. |
skylake-avx512 |
Intel Skylake Server
con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA,
BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD y extensiones 64-bit.
Esta opción está disponible a partir de GCC 6 y Clang 3.9. |
tigerlake |
Intel
Tiger Lake con soporte de instrucciones OVBE, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE,
RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT,
XSAVEC, XSAVES, AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VBMI, AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2,
AVX512VPOPCNTDQ, AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG,
WBNOINVD, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT y extensiones 64-bit.
Esta opción está disponible a partir de GCC 10 y Clang 10. |
tremont |
Intel Tremont con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP, GFNI-SSE, CLWB, ENCLV y extensiones 64-bit. Esta
opción está disponible a partir de GCC 9 y Clang 7. |
westmere |
Intel Westmere con soporte
de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT,
AES, PCLMUL y extensiones 64-bit. Esta opción está
disponible a partir de GCC 4.9. |
yonah |
Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
AMD |
amdfam10, barcelona |
Procesadores basados en
AMD Family 10h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.3. La definición barcelona está disponible a partir de Clang 3.6. |
athlon, athlon-tbird |
AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch. |
athlon4, athlon-xp, athlon-mp |
Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE. |
bdver1 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX,
XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.7. |
bdver2 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (BMI, TBM,
F16C, FMA, LWP, AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2,
SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.7. |
bdver3 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (FMA4, AVX,
XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.8 y Clang 3.4. |
bdver4 |
Procesadores basados en
AMD Family 15h core con soporte de instrucciones x86-64 (BMI, BMI2,
TBM, F16C, FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL,
CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y
extensiones 64-bit). Esta opción está disponible a partir
de GCC 4.9 y Clang 3.5. |
btver1 |
Procesadores basados en
AMD Family 14h core con soporte de instrucciones x86-64 (MMX, SSE,
SSE2, SSE3, SSE4A, CX16, ABM y extensiones 64-bit). Esta
opción está disponible a partir de GCC 4.6. |
btver2 |
Procesadores basados en
AMD Family 16h core con soporte de instrucciones x86-64 (MOVBE, F16C,
BMI, AVX, PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3,
SSE2, SSE, MMX y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.8. |
geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3. |
k6 |
AMD K6 con soporte de instrucciones MMX. |
k6-2, k6-3 |
Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
k8, opteron, athlon64, athlon-fx |
Procesadores basados en
AMD K8 core con soporte de instrucciones x86-64 (MMX, SSE, SSE2,
3DNow!, enhanced 3DNow! y extensiones 64-bit). |
k8-sse3, opteron-sse3, athlon64-sse3 |
Versiones mejoradas de AMD
K8 core con soporte de instrucciones SSE3. Esta opción
está disponible a partir de GCC 4.3. |
znver1 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones
64-bit). Esta opción está disponible a partir de GCC 6 y Clang 4. |
znver2 |
Procesadores basados en
AMD Family 17h core con soporte de instrucciones x86-64 (BMI, BMI2,
,CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y
extensiones 64-bit). Esta opción está disponible a
partir de GCC 9 y Clang 9. |
znver3 |
Procesadores basados en
AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2,
CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID,
WBNOINVD, PKU, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 12. |
znver4 |
Procesadores basados en
AMD Family 19h core con soporte de instrucciones x86-64 (BMI, BMI2,
CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID,
WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA,
AVX512CD, AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2,
AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, GFNI) y extensiones 64-bit.
Esta opción está disponible a partir de GCC 12.3 y Clang 16. |
znver5 |
Procesadores basados en
AMD Family 1ah core con soporte de instrucciones x86-64 (BMI, BMI2,
CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA,
CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID,
WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA,
AVX512CD, AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2,
AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, GFNI, AVXVNNI, MOVDIRI,
MOVDIR64B, AVX512VP2INTERSECT, PREFETCHI) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 14. |
Optimizaciones adicionales
Optimizaciones adicionales |
GCC |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block' |
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
LTO |
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
|
En versiones inferiores a GCC 10, sustituir auto
por el número de núcleos que tenga nuestro procesador. Si
sólo tiene uno, utilizar el parámetro -flto |
Clang |
Polly |
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
|
LTO |
$ export {C,CXX,LD}FLAGS+=' -flto' |
ThinLTO |
$ export {C,CXX,LD}FLAGS+=' -flto=thin' |
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma. |
Unified LTO |
LTO >> ThinLTO |
$ export {C,CXX}FLAGS+=' -flto -funified-lto'
$ export LDFLAGS+=' -Wl,--lto=thin' |
ThinLTO >> LTO |
$ export {C,CXX}FLAGS+=' -flto=thin -funified-lto'
$ export LDFLAGS+=' -Wl,--lto=full' |
La aplicación de esta optimización es aplicable, a partir de Clang 17, y sólo es combinable con LLD. |
Parámetros adicionales
Parámetros adicionales de eliminación de avisos en el proceso de compilación |
$ export {C,CXX}FLAGS+=' -w' |
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export LDFLAGS+=' -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc14/lib64' |
Cada usuario tendrá que
establecer la ruta de búsqueda de directorios, en función
de la distribución que utilice. |
Establecer el uso de enlazador dinámico para Mold |
$ export LDFLAGS+=' -fuse-ld=mold' |
Establecer el uso de enlazador dinámico para LLD |
Clang |
$ export LDFLAGS+=' -fuse-ld=lld' |
Optimizaciones complementarias LTO/ThinLTO de LLD |
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt' |
Optimizaciones complementarias LTO de LLD |
$ export LDFLAGS+=" -Wl,--lto-partitions=$(expr $(nproc) / 2)" |
Optimizaciones complementarias ThinLTO de LLD |
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(expr $(nproc) / 2)" |
Eliminar los símbolos innecesarios para la ejecución del programa |
$ export LDFLAGS+=" -Wl,-s" |
Sólo es necesario con el paquete de Urxvt. |
Establecer la variable de entorno de uso de compilador para Clang |
$ export CC=clang CXX=clang++
|
Extracción y Configuración de Libptytty
$ tar zxvf libptytty-2.0.tar.gz
$ cd libptytty-2.0
$ cmake -S . -B build |
Explicación de los comandos
-S . -B build : Establece el directorio del código fuente y crea de forma automática el directorio de compilación.
Compilación
Parámetros de compilación opcionales
VERBOSE=1 : Muestra más información en el proceso de compilación.
-j$(nproc)
: Establece el número de procesos de compilación en
paralelo, en función del número de núcleos e hilos
que tenga nuestro procesador, tomando como referencia la
información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación como root
$ su
# make -C build install/strip
# ldconfig -v
|
Estadísticas de Compilación e Instalación de Libptytty
Estadísticas de Compilación e Instalación de Libptytty |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Sistema de archivos |
XFS |
Versión del Kernel |
6.9.4-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.39 |
Enlazador dinámico |
LLD 18.1.7 |
Compilador |
Clang 18.1.7 |
Parámetros de optimización |
-03 -march=znver3 -mtune=znver3
-mllvm -polly -mllvm -polly-vectorizer=stripmine -flto -funified-lto
-Wl,--lto=thin -Wl,--thinlto-jobs=6 -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt |
Parámetros de compilación |
VERBOSE=1 -j12 |
Tiempo de compilación |
> 1" |
Archivos instalados |
4 |
|
Enlaces simbólicos creados |
1 |
/usr/local/lib64/libptytty.so
|
Ocupación de espacio en disco |
44 KB |
Desinstalación como root
1) MODO TRADICIONAL
En el directorio de compilación ejecutamos el siguiente comando:
2) MODO MANUALINUX
El principal inconveniente del comando anterior es que tenemos que
tener el directorio de compilación en nuestro sistema para poder
desinstalar el programa. En algunos casos esto supone muchos megas de
espacio en disco. Con el paquete de scripts que pongo a
continuación logramos evitar el único inconveniente que
tiene la compilación de programas, y es el tema de la
desinstalación de los mismos sin la necesidad de tener
obligatoriamente una copia de las fuentes compiladas.
libptytty-2.0-scripts.tar.gz
$ su
# tar zxvf libptytty-2.0-scripts.tar.gz
# cd libptytty-2.0-scripts
# ./Desinstalar_libptytty-2.0 |
Copia de Seguridad como root
Con este otro script creamos una copia de seguridad de los binarios
compilados, recreando la estructura de directorios de los mismos en un
directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home
y borrar el que ha creado el script de respaldo, teniendo en cuenta que
si queremos volver a restaurar la copia, tendremos que volver a
copiarlo al lugar donde se ha creado.
$ su
# tar zxvf libptytty-2.0-scripts.tar.gz
# cd libptytty-2.0-scripts
# ./Respaldar_libptytty-2.0 |
Restaurar la Copia de Seguridad como root
Y con este otro script (que se copia de forma automática cuando
creamos la copia de respaldo del programa) restauramos la copia de
seguridad como root cuando resulte necesario.
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_libptytty-2.0
|
Extracción y Configuración de Urxvt
$ tar jxvf rxvt-unicode-9.31.tar.bz2
$ cd rxvt-unicode-9.31
$ sed -i '402s:"":"C":' src/rxvtperl.xs
$ patch -Np1 -i ../urxvt_tab.patch
$ ./configure --disable-xft --libdir=/usr/local/lib64 |
Explicación de los comandos
sed -i '402s:"":"C":' src/rxvtperl.xs
: Modifica el archivo correspondiente para que las locales se muestren
de forma correcta con las versiones de Perl, 5.38 y 5.40.
patch -Np1 -i ../urxvt_tab.patch : Aplica este parche personal, derivado del ubicado en esta web, que nos permitirá abrir las pestañas de terminal en el mismo directorio en el que estemos trabajando.
--disable-xft
: Desactiva el soporte de fuentes truetype y el suavizado en las
fuentes, que ralentiza la ejecución del programa y aumenta
su consumo de memoria. Si se tiene equipo de sobra, no añadir
esta opción. Necesitaremos las devel de LibXft para compilar este soporte.
--libdir=/usr/local/lib64 : Instala el directorio de plugins /usr/local/lib64,
en sistemas de 64 bits multiarquitectura. La ubicación y el
nombre de este directorio, puede variar en función de la
distribución que cada usuario use.
Compilación
Parámetros de compilación opcionales
-j$(nproc)
: Establece el número de procesos de compilación en
paralelo, en función del número de núcleos e hilos
que tenga nuestro procesador, tomando como referencia la
información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación como root
$ su
# make install
# for i in /usr/local/share/icons/hicolor ; do \
install -dm755 $i/{16x16,24x24,32x32,48x48,64x64,128x128}/apps ; \
wget -c --no-check-certificate https://findicons.com/files/icons/66/ethereal/128/terminal.png \
-O $i/128x128/apps/urxvt.png ; \
wget -c --no-check-certificate https://findicons.com/files/icons/66/ethereal/64/terminal.png \
-O $i/64x64/apps/urxvt.png ; \
wget -c --no-check-certificate https://findicons.com/files/icons/66/ethereal/48/terminal.png \
-O $i/48x48/apps/urxvt.png ; \
wget -c --no-check-certificate https://findicons.com/files/icons/66/ethereal/32/terminal.png \
-O $i/32x32/apps/urxvt.png ; \
wget -c --no-check-certificate https://findicons.com/files/icons/66/ethereal/24/terminal.png \
-O $i/24x24/apps/urxvt.png ; \
wget -c --no-check-certificate https://findicons.com/files/icons/66/ethereal/16/terminal.png \
-O $i/16x16/apps/urxvt.png ; \
gtk-update-icon-cache -tf $i &> /dev/null ; \
done
|
Explicación de los comandos
for i in /usr/local/share/icons/hicolor ... : Descarga, crea e instala los iconos del archivo desktop del programa.
Creación del archivo urxvt.desktop
Para que Urxvt sea detectado por los menús de entornos gráficos como XFce 4 o paneles como LXPanel o Fbpanel, creamos el correspondiente archivo desktop con cat:
# cat > urxvt.desktop << "EOF"
[Desktop Entry]
Name=Urxvt
GenericName=Emulador de terminal
Comment=Un emulador de terminal con soporte de UTF-8
Exec=urxvt
Icon=urxvt
Categories=Application;System;TerminalEmulator;Utility
Type=Application
EOF |
Luego lo instalamos en /usr/local/share/applications.
La desinstalación y respaldo de este archivo viene incluida en
los scripts correspondientes proporcionados en este manual.
# install -dm755 /usr/local/share/applications
# install -m644 urxvt.desktop /usr/local/share/applications
|
Estadísticas de Compilación e Instalación de Urxvt
Estadísticas de Compilación e Instalación de Urxvt |
CPU |
AMD Ryzen 5 5500 |
MHz |
3593.250 (BoostMax=4457.000) |
RAM |
32 GB |
Sistema de archivos |
XFS |
Versión del Kernel |
6.9.4-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.39 |
Enlazador dinámico |
LLD 18.1.7 |
Compilador |
Clang 18.1.7 |
Parámetros de optimización |
-03 -march=znver3 -mtune=znver3
-mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin
-Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
3" |
Archivos instalados |
68 |
|
Ocupación de espacio en disco |
3,6 MB |
Consumo inicial de CPU y RAM de Urxvt
Consumo inicial de CPU y RAM de Urxvt |
Programa
|
CPU |
RAM |
urxvt |
0 % |
10,0 MB |
Para medir el
consumo de CPU se utiliza el programa top, y para medir el consumo de
RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace. |
Desinstalación como root
1) MODO TRADICIONAL
Este programa no tiene soporte para desinstalación con el comando 'make uninstall'
2) MODO MANUALINUX
rxvt-unicode-9.31-scripts.tar.gz
$ su
# tar zxvf rxvt-unicode-9.31-scripts.tar.gz
# cd rxvt-unicode-9.31-scripts
# ./Desinstalar_rxvt-unicode-9.31 |
Copia de Seguridad como root
$ su
# tar zxvf rxvt-unicode-9.31-scripts.tar.gz
# cd rxvt-unicode-9.31-scripts
# ./Respaldar_rxvt-unicode-9.31 |
Restaurar la Copia de Seguridad como root
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_rxvt-unicode-9.31
|
Configuración de Urxvt
Las opciones de línea de comandos de Urxvt son las siguientes:
-display texto Servidor X a conectar. (urxvt*display: )
-tn texto
valor de la variable de entorno TERM.
(urxvt*termName: )
-geometry geometría tamaño (en caracteres) y posición.(urxvt*geometry: )
-C
intercepta los mensajes de la
consola.
-iconic
inicia minimizado.
-cd texto
inicia el prompt en este directorio.(urxvt*chdir: )
-dockapp
inicia como una dockapp.
-/+rv
conmuta on/off el vídeo
inverso.(urxvt*reverseVideo: )
-/+ls
conmuta on/off el acceso de usuario
mediante login.(urxvt*loginShell: )
-mc número
tiempo máximo en milisegundos entre
selecciones de varios clics. (urxvt*multiClickTime: )
-/+j
conmuta on/off el salto en el
desplazamiento.(urxvt*jumpScroll: )
-/+ss
conmuta on/off la omisión del
desplazamiento.(urxvt*skipScroll: )
-/+ptab
conmuta on/off los caracteres de la
pestaña son pegables.(urxvt*pastableTabs: )
-/+sb
conmuta on/off la barra de
desplazamiento.(urxvt*scrollBar: )
-/+sr
conmuta on/off la barra de
desplazamiento en la derecha.(urxvt*scrollBar_right: )
-/+st
conmuta on/off la barra de
desplazamiento sin el borde.(urxvt*scrollBar_floating: )
-sbt número
espesor y anchura en píxeles de la barra de
desplazamiento.
-/+si
conmuta on/off la inhibición
del desplazamiento en la salida de la tty.(urxvt*scrollTtyOutput: )
-/+sk
conmuta on/off el desplazamiento al
presionar una tecla.(urxvt*scrollTtyKeypress: )
-/+sw
conmuta on/off el desplazamiento con
buffer.(urxvt*scrollWithBuffer: )
-/+ip
conmuta on/off la
pseudotransparencia.(urxvt*transparent: )
-/+tr
conmuta on/off la
pseudotransparencia.(urxvt*transparent: )
-tint color color de mezcla.(urxvt*tintColor: )
-sh número
porcentaje en número del sombreado
del fondo.(urxvt*shading: )
-blr
HxV
Radio de desenfoque gaussiano a
aplicar al fondo raíz.(urxvt*blurRadius: )
-fade número
porcentaje en número de desvanecimiento de los
colores cuando pierden el enfoque.(urxvt*fading: )
-fadecolor color color a usar para el desvanecimiento.(urxvt*fadeColor: )
-/+ut
conmuta on/off la inhibición
utmp.(urxvt*utmpInhibit: )
-/+vb
conmuta on/off la campanilla visual.(urxvt*visualBell: )
-/+dpb
conmuta on/off la secuencia de pegado
de corchetes.(urxvt*disablePasteBrackets: )
-/+tcw
conmuta on/off el triple clic en la
selección de palabras.(urxvt*tripleclickwords: )
-/+insecure
conmuta on/off la activación
posible insegura de secuencias de escape.(urxvt*insecure: )
-/+uc
conmuta on/off el subrayado del
cursor.(urxvt*cursorUnderline: )
-/+bc
conmuta on/off el parpadeo
del cursor.(urxvt*cursorBlink: )
-/+pb
conmuta on/off la
desactivación del puntero después de un retardo.(urxvt*pointerBlank: )
-bg
color
color de fondo.(urxvt*background: )
-fg color
color de frente.(urxvt*foreground: )
-hc
color
color del resaltado.(urxvt*higlightColor: )
-cr
color
color del cursor.(urxvt*cursorColor: )
-pr
color
color de frente del puntero.(urxvt*pointerColor: )
-pr2
color
color de fondo del puntero.(urxvt*pointerColor2: )
-bd
color
color del borde.(urxvt*borderColor: )
-pixmap archivo[;geom] archivo de imagen del fondo.(urxvt*backgroundPixmap: )
-fn fuente fuente del texto normal.(urxvt*font: )
-fb fuente fuente en negrita.(urxvt*boldFont: )
-fi fuente fuente cursiva.(urxvt*italicFont: )
-fbi fuente fuente cursiva en negrita.(urxvt*boldItalicFont: )
-/+is
conmuta on/off los estilos
de fuente, implica intensidad de cambios.(urxvt*intensityStyles: )
-im nombre
nombre del método de entrada.(urxvt*inputMethod: )
-pt estilo
estilo de entrada: estilo =
OverTheSpot|OffTheSpot|Root.(urxvt*preeditType: )
-imlocale texto locales a usar para el método de entrada.(urxvt*imLocale: )
-imfont fuente
grupo de fuentes para los estilos OverTheSpot y OffTheSpot.(urxvt*imFont: )
-name texto
instancia de cliente, icono y textos del
título.
-title texto
nombre del título para la ventana.(urxvt*title: )
-n texto
nombre del icono para la
ventana.(urxvt*iconName: )
-sl número
número de líneas desplazadas
a guardar.(urxvt*saveLines: )
-embed windowid id de ventana para empotrar la terminal dentro.(urxvt*transient-for: )
-depth
número
profundidad de visual para solicitar.(urxvt*depth: )
-visual número id visual para solicitar.(urxvt*visual: )
-/+override-redirect conmuta on/off ajusta sustituye-redirecciona en la ventana de terminal.(urxvt*override-redirect: )
-pty-fd nº/archivo archivo descriptor de la pty a usar
-/+hold
conmuta on/off la retención
de la ventana después de la salida del shell.(urxvt*hold: )
-w número
borde externo en píxeles.(urxvt*externalBorder: )
-b número
borde interno en píxeles.(urxvt*internalBorder: )
-/+bl
conmuta on/off la ventana sin bordes.(urxvt*borderLess: )
-lsp número
número extra de píxeles entre
las líneas.(urxvt*lineSpace: )
-letsp número
ajusta el tamaño del espacio entre las letras.(urxvt*letterSpace: )
-/+sbg
conmuta on/off no usar glyphs
internos.(urxvt*skipBuiltinGliphs: )
-mod modificador meta modificador = alt|meta|hyper|super|mod1|...|mod5.(urxvt*modifier: )
-/+ssc
conmuta on/off la activación
de la pantalla secundaria.(urxvt*secondaryScreen: )
-/+ssr
conmuta on/off la activación
del desplazamiento en la pantalla secundaria.(urxvt*secondaryScroll: )
-pe texto
lista separada por comas de
extensiones de perl a activar para esta instancia.(urxvt*perl-ext: )
-blt texto
tipo de fusión de la imagen de fondo
- alpha, tint, etc...(urxvt*blendType: )
-icon archivo
Ruta a un archivo de icono de aplicación.(urxvt*iconFile: )
-e comando arg ... comando a ejecutar.
-/+background-border respeta el borde de la terminal. (urxvt*background.border: )
-background-expr texto expresión de fondo . (urxvt*background.expr: )
-background-interval segundos tiempo mínimo entre actualizaciones . (urxvt*background.interval: )
-bell-command texto el fragmento de shell a ejecutar . (urxvt*bell-command: )
-kuake-hotkey texto activación de teclas rápidas keysym.
-matcher-button
texto el
botón del ratón utilizado para activar un patrón . (urxvt*matcher.button: )
-matcher-launcher texto comando lanzador predefinido para un patrón . (urxvt*matcher.launcher: )
-matcher-launcher-... texto lanzador personalizado para un patrón . (urxvt*matcher.launcher.*: )
-matcher-pattern-... texto patrón extra añadido al predefinido . (urxvt*matcher.pattern.*: )
-matcher-rend-... texto interpretación personalizada para un patrón . (urxvt*matcher.rend*: )
-remote-clipboard-fetch texto el comando usado para obtener la selección . (urxvt*remote-clipboard.fetch: )
-remote-clipboard-store texto el comando usado para guardar la selección . (urxvt*remote-clipboard.store: )
-searchable-scrollback texto tecla de acceso rápido para activar . (urxvt*searchable-scrollback: )
-selection-autotransform-... cadena de expresión de autotransformación . (urxvt*selection.autotransform.*: )
-selection-pastebin-cmd texto el comando para crear un nuevo pastebin . (urxvt*selection-pastebin.cmd: )
-selection-pastebin-url texto la plantilla de url para nuevos pastebins . (urxvt*selection-pastebin.url: )
-selection-pattern-0 texto primera selección de un patrón . (urxvt*selection-pattern-0: )
-tab-bg color
color de fondo de la pestaña . (urxvt*tab-bg: )
-tab-fg color
color de frente de la pestaña . (urxvt*tab-fg: )
-tabbar-bg color
color de fondo de la barra de pestañas . (urxvt*tabbar-bg: )
-tabbar-fg color
color de frente de la barra de pestañas . (urxvt*tabbar-fg: )
-url-launcher texto comando de shell para utilizar . (urxvt*url-launcher: )
|
Entre paréntesis y de color azul he añadido los
parámetros a utilizar en el caso de que queramos establecer por
defecto las opciones de ejecución de Urxvt
sin necesidad de añadirlas en el comando de ejecución del
programa. Para ello nos servimos del archivo de configuración, ~/.Xdefaults al que añadiremos todos los parámetros indicados.
En mi caso particular lo he tenido bastante fácil, simplemente he copiado y pegado la configuración de Aterm,
que ya tenía en ese archivo renombrando el prefijo
correspondiente y además, para poder utilizar el soporte de
multiterminal con pestañas, he añadido el
parámetro urxvt*perl-ext-common: default,tabbed, dejándolo como se muestra a continuación.
Tener en cuenta que mi configuración personal es para una
resolución de pantalla de 1920x1080, tamaño que obliga a
modificar los parámetros geometry y font.
aterm*font: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
aterm*transparent: true
aterm*transpscrollbar: true
aterm*shading: 70
aterm*background: black
aterm*foreground: white
aterm*scrollBar: false
aterm*saveLines: 5555
aterm*geometry: 100x30
urxvt*font: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
urxvt*transparent: true
urxvt*transpscrollbar: true
urxvt*shading: 70
urxvt*background: black
urxvt*foreground: white
urxvt*scrollBar: false
urxvt*saveLines: 5555
urxvt*perl-ext-common: default,tabbed
urxvt*geometry: 100x30 |
Para saber qué valores son booleanos (true/false) basta ejecutar
el comando urxvt --help en cualquier ventana de terminal. No creo que
existan muchos problemas a la hora de configurar mediante este archivo
las opciones de ejecución de Uxrvt.
También es muy recomendable leerse las páginas de manual
del programa, sobre todo por los ejemplos que trae en relación
al uso de fuentes, el de preguntas y respuestas, lo ejecutamos con el
comando siguiente: man 7 urxvt.
Otro ejemplo más extenso, extraído del archivo de configuración personal de usuario, ~/.Xdefaults, de la fenecida distribución Vector Linux.
#Urxvt settings
#Geometry
#URxvt.geometry: 105x30
#Scrollbar
URxvt.scrollBar: true
URxvt.scrollstyle: plain
URxvt.scrollBar_right: true
URxvt.scrollTtyKeypress: true
#Transparency
URxvt.transparent: true
URxvt.shading: 20
URxvt.fading: 40
#URxvt.fadeColor: colour
#URxvt.tintColor: colour
URxvt.blendType: alphablend
#URxvt.blurRadius: number
#URxvt.background: colour
#URxvt.foreground: colour
#URxvt.backgroundPixmap: image path
#Pointer & cursor
URxvt.pointerBlank: true
#URxvt.cursorBlink: true
#URxvt.pointerColor:
#URxvt.pointerColor2:
URxvt.pointerBlankDelay: 3
#Borders
URxvt.internalBorder: 2
#URxvt.externalBorder: 2
URxvt.borderLess: false
#Fonts
Xft*dpi: 96
Xft*antialias: true
Xft*hinting: full
#URxvt*font: 10x20
#URxvt*boldFont: 10x20
urxvt.font: xft:Liberation Mono:pixelsize=14
urxvt.boldFont: xft:Liberation Mono:bold:pixelsize=14
#Misc
URxvt*reverseVideo: true
URxvt*color12: #6661ee
#Perl
##Tabs
URxvt.perl-ext-common: default,tabbed
URxvt.tabbed.tabbar-fg: 8
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg: 3
URxvt.tabbed.tab-bg: 0
##Open URL
URxvt.perl-ext: default,matcher
URxvt.urlLauncher: opera
URxvt.keysym.C-Delete: perl:matcher
URxvt.matcher.button: 1
URxvt.matcher.pattern.1: \\bwww\\.[\\w-]+\\.[\\w./?&@#-]*[\\w/-]
|
Iniciamos Urxvt
Sólo nos queda teclear en una terminal ó en un lanzador el comando urxvt, y el programa aparecerá en la pantalla.
Enlaces
http://software.schmorp.de/pkg/rxvt-unicode.html >> La web de Urxvt.
|