Copyright
Copyright © José
Luis Lara Carrascal 2015-2024
Sumario
Introducción
Preliminares
Instalación
Descarga y orden de Compilación
Optimizaciones
Optimizaciones adicionales
Parámetros adicionales
Estadísticas de Compilación e Instalación de MATE
Directorios de configuración personal
Configurar el inicio de MATE
Iniciamos MATE
Notas de actualización del manual
Enlaces
Introducción
En este manual
trataremos la
instalación desde código fuente del entorno de
escritorio MATE, proyecto derivado y continuador del extinto GNOME 2, inicialmente creado en Argentina por un programador informático que utiliza el seudónimo Perberos en internet, de ahí, que los nombres alternativos utilizados para diferenciar las aplicaciones de MATE
de las del entorno original, estén algunos en español
(Nautilus > Caja, Gedit > Pluma, etc). El desarrollo actual del
entorno recae ahora sobre las espaldas de un grupo internacional de
programadores informáticos y mantenedores capitaneados por el
italiano Stefano Karapetsas que, garantiza de momento, un desarrollo continuado de lo que para todos será siempre, el GNOME clásico de toda la vida.
Preliminares
1)
Editamos el archivo /etc/ld.so.conf
y añadimos /opt/mate/lib64
include ld.so.conf.d/*.conf
/opt/gcc-4.4.3/lib
/usr/X11R7/lib
/opt/e17/lib
/usr/lib
/opt/mate/lib64 |
Si por lo que sea, no queremos tocar este archivo, ejecutamos el siguiente comando:
$ su -c "echo /opt/mate/lib64 > /etc/ld.so.conf.d/mate.conf"
|
2)
En nuestro home,
editamos el archivo .bashrc (si no existe lo creamos)
y añadimos /opt/mate/bin
y /opt/mate/sbin a nuestro PATH
export
PATH=/opt/mate/bin:/opt/mate/sbin:$PATH |
Para que el programa pkg-config,
encuentre los archivos de información (*.pc) de las cabeceras
instaladas en el proceso de compilación, añadimos las
rutas de ubicación de los directorios que contienen estos
archivos, con la correspondiente variable de entorno.
export
PKG_CONFIG_PATH=/opt/mate/lib64/pkgconfig:/opt/mate/share/pkgconfig:$PKG_CONFIG_PATH |
Añadimos la variable XDG_CONFIG_DIRS para que MATE
encuentre el menú de aplicaciones, y los archivos desktop de
inicio automático de aplicaciones. En el mismo archivo ~/.bashrc añadimos lo siguiente:
export XDG_CONFIG_DIRS=/etc/xdg:/opt/mate/etc/xdg:$XDG_CONFIG_DIRS |
Y finalmente, configuramos la variable de entorno XDG_DATA_DIRS,
para incluir el directorio /opt/mate/share, y poder hacer uso de los
archivos desktop, iconos, ayuda del programa y tipos MIME incluidos en la
instalación de este entorno de escritorio.
export XDG_DATA_DIRS=/usr/share:/usr/local/share:/opt/mate/share:$XDG_DATA_DIRS |
Esto no es estrictamente necesario, pero si queremos leer las
páginas de manual desde un emulador de terminal, tendremos que
hacerlo.
export MANPATH=/opt/mate/share/man:$MANPATH |
Si queremos establecer una variable de entorno global del sistema,
abrimos un editor de texto y añadimos todo lo descrito
anteriormente,
#!/bin/sh
export PATH=/opt/mate/bin:/opt/mate/sbin:$PATH
export PKG_CONFIG_PATH=/opt/mate/lib64/pkgconfig:/opt/mate/share/pkgconfig:$PKG_CONFIG_PATH
export XDG_CONFIG_DIRS=/etc/xdg:/opt/mate/etc/xdg:$XDG_CONFIG_DIRS
export XDG_DATA_DIRS=/usr/share:/usr/local/share:/opt/mate/share:$XDG_DATA_DIRS
export MANPATH=/opt/mate/share/man:$MANPATH |
Lo guardamos con el nombre mate.sh, y lo instalamos en /etc/profile.d.
$ su -c "install -m755 mate.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.
3)
Abrimos un editor de texto y añadimos lo siguiente, para crear el archivo de configuración de la ruta a los archivos de configuración de los servicios de MATE, específicos para D-Bus. Lo que está en color rojo es la ruta.
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<servicedir>/opt/mate/share/dbus-1/services</servicedir>
</busconfig>
|
Lo guardamos con el nombre mate.conf, y lo instalamos en /etc/dbus-1/session.d y /etc/dbus-1/system.d.
$ su
# install -m644 mate.conf /etc/dbus-1/session.d
# install -m644 mate.conf /etc/dbus-1/system.d
|
4) Creamos un archivo de ubicación de ruta de módulos (mate.pth) para que Python encuentre los módulos instalados en la ruta de instalación personalizada de MATE con el siguiente comando:
4a) Slackware, Fedora, openSUSE, OpenMandriva, Mageia, PCLinuxOS, etc.
$ su -c "echo /opt/mate/lib64/python3.12/site-packages > /usr/lib64/python3.12/site-packages/mate.pth"
|
4b) Debian y derivados
$ su -c "echo /opt/mate/lib64/python3.12/dist-packages > /usr/lib64/python3.12/dist-packages/mate.pth"
|
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado MATE
para la elaboración de este documento.
* GCC - (14.1.0) o Clang - (18.1.6)
* Gawk - (5.3.0)
* M4 - (1.4.19)
* Libtool - (2.4.7)
* Make - (4.4.1)
* Intltool - (0.51.0)
* Automake - (1.16.5)
* Gettext - (0.22.5)
* Autoconf - (2.72)
* Pkg-config - (0.29.2)
* Meson - (1.3.2)
* Ninja - (1.12.0)
* Vala - (0.56.17)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.13)
LibICE - (1.1.1)
LibSM - (1.2.4)
LibX11 - (1.8.9)
LibXau - (1.0.11)
LibXcursor - (1.2.2)
LibXext - (1.3.6)
LibXi - (1.8.1)
LibXinerama - (1.1.5)
LibXrandr - (1.5.4)
LibXrender - (0.9.11)
LibXScrnSaver - (1.2.4)
LibXtst - (1.2.4)
LibXxf86misc - (1.0.4)
LibXxf86vm - (1.1.5)
Pixman - (0.43.4)
* ALSA - (1.2.11)
* At-spi2-core - (2.52.0)
* Cairo - (1.18.0)
* Colord - (1.4.7)
* D-Bus - (1.14.10)
* DBus-Glib - (0.112)
* DBus-Python - (1.3.2)
* DjVULibre - (3.5.28)
* Enchant - (2.7.3)
* Exempi - (2.6.5)
* Fontconfig - (2.15.0)
* Freetype2 - (2.13.2)
* Gdk-Pixbuf - (2.42.12)
* GLib - (2.74.7)
* Gobject Introspection - (1.74.0)
* GTK+ - (2.24.33 | 3.24.42)
* GTKMM - (3.24.9)
* GtkSourceView - (3.24.11)
* Gucharmap - (3.18.2)
* GUPnP-IGD - (0.2.5)
* Iso-codes - (4.16.0)
* JSON-GLib - (1.8.0)
* Libarchive - (3.7.4)
* Libatasmart - (0.19)
* Libcanberra - (0.30)
* Libexif - (0.6.24)
* Libfakekey - (0.1)
* Libglvnd - (1.7.0)
* Libgnome-keyring - (3.12.0)
* Libgtop - (2.41.3)
* Libgxps - (0.3.2)
* Libhandy - (1.8.2)
* Libjpeg-turbo - (3.0.3)
* Liblcms - (2.16)
* Libnotify - (0.8.3)
* Libpeas - (1.36.0)
* Librsvg - (2.58.0)
* Libsecret - (0.21.4)
* Libsoup - (3.4.4)
* Libspectre - (0.2.12)
* LibTIFF - (4.6.0)
* Libsynctex - (20190410)
* Libwnck - (43.0)
* LibXklavier- (5.4)
* Libxml2 - (2.11.8)
* Linux-cpupower - (6.9.1)
* Linux-PAM - (1.6.0)
* NSS - (3.97)
* OpenSSL - (3.3.0)
* Pango - (1.52.2)
* Polkit - (124)
* Poppler - (24.05.0)
* PulseAudio - (17.0)
* PyGobject - (3.42.2)
* Python - (3.12.3)
* Startup-Notification - (0.12)
* Udisks - (2.10.1)
* UPower - (1.90.2)
* Vte - (0.74.0)
* WebKitGTK+ - (2.44.0)
* Zlib - (1.3.1)
Módulos de Perl
* XML::Parser - (2.46)
Aplicaciones
* Bash-completion - (2.14.0)
* Dockbook2X - (0.8.8)
* Docutils - (0.19)
* Icon-naming-utils - (0.8.90)
* ITS Tool - (2.0.7)
* Xmlto - (0.0.28)
* Yelp - (42.2)
* Zenity - (4.0.1)
Descarga y orden de Compilación
01) mate-common-1.28.0.tar.xz
02) dconf-0.40.0.tar.xz
03) mate-desktop-1.28.2.tar.xz
04) libmatekbd-1.28.0.tar.xz
05) libmatemixer-1.28.0.tar.xz
06) libmateweather-1.28.0.tar.xz
07) mate-menus-1.28.0.tar.xz
08) marco-1.28.1.tar.xz
09) mate-settings-daemon-1.28.0.tar.xz
10) mate-control-center-1.26.1.tar.xz
11) mate-panel-1.28.1.tar.xz
12) mate-polkit-1.28.1.tar.xz
13) mate-notification-daemon-1.28.0.tar.xz
14) mate-icon-theme-1.28.0.tar.xz
15) mate-applets-1.28.0.tar.xz
16) mate-power-manager-1.28.1.tar.xz
17) mate-screensaver-1.28.0.tar.xz
18) mate-sensors-applet-1.28.0.tar.xz
19) mate-system-monitor-1.28.1.tar.xz
20) mate-terminal-1.28.1.tar.xz
21) mate-themes-3.22.26.tar.xz
22) mate-backgrounds-1.28.0.tar.xz
23) mate-session-manager-1.28.0.tar.xz
24) mate-utils-1.28.0.tar.xz
25) mate-netbook-1.27.0.tar.xz
26) mate-media-1.28.1.tar.xz
27) caja-1.28.0.tar.xz
28) caja-extensions-1.28.0.tar.xz
29) caja-dropbox-1.28.0.tar.xz
30) atril-1.28.0.tar.xz
31) engrampa-1.28.1.tar.xz
32) eom-1.28.0.tar.xz
33) mozo-1.28.0.tar.xz
34) pluma-1.28.0.tar.xz
35) python-caja-1.28.0.tar.xz
36) murrine-0.98.2.tar.xz
37) dconf-editor-45.0.1.tar.xz
38) mate-user-guide-1.28.0.tar.xz
39) mate-icon-theme-faenza-1.20.0.tar.xz
40) mate-calc-1.28.0.tar.xz
41) caja-actions-1.28.0.tar.xz
42) pluma-plugins-1.28.0.tar.xz
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 AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX,LD}FLAGS+=' -flto'
|
ThinLTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ 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 AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto funified-lto'
$ export LDFLAGS+=' -Wl,--lto=thin' |
ThinLTO >> LTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ 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' |
Parámetros adicionales de eliminación de errores específicos en el proceso de compilación |
Clang 16 y superiores |
$ export {C,CXX}FLAGS+=' -Wno-incompatible-function-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion' |
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 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" |
Modificar el script de Libtool
incluido en el paquete para poder hacerlo compatible con LLD |
$
lld-libtool |
Hacemos uso
de la función de bash explicada en la sección del
manual de Clang,
para poder parchear el script de Libtool incluido en el paquete, y
poder llevar a cabo el proceso de compilación con LLD como
enlazador dinámico. Esto es aplicable en el siguiente
paquete: murrine. |
Establecer la variable de entorno de uso de compilador para Clang |
$ export CC=clang CXX=clang++ |
01) mate-common-1.28.0
$ tar Jxvf mate-common-1.28.0.tar.xz
$ cd mate-common-1.28.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como root
$ su -c "make install"
$ cd ..
|
02) dconf-0.40.0
$ tar Jxvf dconf-0.40.0.tar.xz
$ cd dconf-0.40.0
$ meson build --prefix=/usr --libexecdir=/usr/lib64/dconf --strip --buildtype=release
$ ninja -C build
|
Parámetros de compilación opcionales
V=1 : Muestra más información en el proceso de compilación.
-v
: Muestra más información en el proceso de
compilación cuando utilizamos el comando ninja para compilar en aquellos paquetes cuyo sistema de compilación es Meson.
-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
# ninja -C build install
# ldconfig -v
# exit
$ cd .. |
03) mate-desktop-1.28.2
$ tar Jxvf mate-desktop-1.28.2.tar.xz
$ cd mate-desktop-1.28.2
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
04) libmatekbd-1.28.0
$ tar Jxvf libmatekbd-1.28.0.tar.xz
$ cd libmatekbd-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
05) libmatemixer-1.28.0
$ tar Jxvf
libmatemixer-1.28.0.tar.xz
$ cd libmatemixer-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación de Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
06) libmateweather-1.28.0
$ tar Jxvf libmateweather-1.28.0.tar.xz
$ cd libmateweather-1.28.0
$ ./configure --prefix=/opt/mate --disable-static \
--enable-locations-compression --libdir=/opt/mate/lib64
$ make
|
Instalación de Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
07) mate-menus-1.28.0
$ tar Jxvf mate-menus-1.28.0.tar.xz
$ cd mate-menus-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
08) marco-1.28.1
$ tar Jxvf marco-1.28.1.tar.xz
$ cd marco-1.28.1
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
09) mate-settings-daemon-1.28.0
$ tar Jxvf mate-settings-daemon-1.28.0.tar.xz
$ cd mate-settings-daemon-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su
# make install-strip
# mv /opt/mate/lib/udev/rules.d/61-mate-settings-daemon-rfkill.rules /lib/udev/rules.d
# rmdir -p /opt/mate/lib/udev/rules.d &> /dev/null |
10) mate-control-center-1.26.1
$ tar Jxvf mate-control-center-1.26.1.tar.xz
$ cd mate-control-center-1.26.1
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
11) mate-panel-1.28.1
$ tar Jxvf mate-panel-1.28.1.tar.xz
$ cd mate-panel-1.28.1
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
12) mate-polkit-1.28.1
$ tar Jxvf mate-polkit-1.28.1.tar.xz
$ cd mate-polkit-1.28.1
$ ./configure --prefix=/opt/mate
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd .. |
13) mate-notification-daemon-1.28.0
$ tar Jxvf mate-notification-daemon-1.28.0.tar.xz
$ cd mate-notification-daemon-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd .. |
14) mate-icon-theme-1.28.0
$ tar Jxvf mate-icon-theme-1.28.0.tar.xz
$ cd mate-icon-theme-1.28.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install"
$ cd .. |
15) mate-applets-1.28.0
$ tar Jxvf mate-applets-1.28.0.tar.xz
$ cd mate-applets-1.28.0
$ ./configure --prefix=/opt/mate
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
16) mate-power-manager-1.28.1
$ tar Jxvf
mate-power-manager-1.28.1.tar.xz
$ cd mate-power-manager-1.28.1
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd .. |
17) mate-screensaver-1.28.0
$ tar Jxvf mate-screensaver-1.28.0.tar.xz
$ cd mate-screensaver-1.28.0
$ ./configure --prefix=/opt/mate --disable-static \
--with-pam-prefix=/etc --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
# su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
18) mate-sensors-applet-1.28.0
$ tar Jxvf mate-sensors-applet-1.28.0.tar.xz
$ cd mate-sensors-applet-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
# su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
19) mate-system-monitor-1.28.1
$ tar Jxvf mate-system-monitor-1.28.1.tar.xz
$ cd mate-system-monitor-1.28.1
$ ./configure --prefix=/opt/mate --disable-systemd
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
20) mate-terminal-1.28.1
$ tar Jxvf mate-terminal-1.28.1.tar.xz
$ cd mate-terminal-1.28.1
$ ./configure --prefix=/opt/mate
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd .. |
21) mate-themes-3.22.26
$ tar Jxvf mate-themes-3.22.26.tar.xz
$ cd mate-themes-3.22.26
$ ./configure --prefix=/usr
$ make
|
Instalación como Root
$ su -c "make install"
$ cd .. |
22) mate-backgrounds-1.28.0
$ tar Jxvf mate-backgrounds-1.28.0.tar.xz
$ cd mate-backgrounds-1.28.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install"
$ cd ..
|
23) mate-session-manager-1.28.0
$ tar Jxvf mate-session-manager-1.28.0.tar.xz
$ cd mate-session-manager-1.28.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
24) mate-utils-1.28.0
$ tar Jxvf mate-utils-1.28.0.tar.xz
$ cd mate-utils-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd .. |
25) mate-netbook-1.27.0
$ tar Jxvf mate-netbook-1.27.0.tar.xz
$ cd mate-netbook-1.27.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
26) mate-media-1.28.1
$ tar Jxvf mate-media-1.28.1.tar.xz
$ cd mate-media-1.28.1
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
27) caja-1.28.0
$ tar Jxvf caja-1.28.0.tar.xz
$ cd caja-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd ..
|
28) caja-extensions-1.28.0
$ tar Jxvf caja-extensions-1.28.0.tar.xz
$ cd caja-extensions-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
29) caja-dropbox-1.28.0
$ tar Jxvf caja-dropbox-1.28.0.tar.xz
$ cd caja-dropbox-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
30) atril-1.28.0
$ tar Jxvf atril-1.28.0.tar.xz
$ cd atril-1.28.0
$ ./configure --prefix=/opt/mate --disable-static --libdir=/opt/mate/lib64
$ make
|
Instalación como Root
$ su
# make install-strip
# ldconfig -v
# exit
$ cd ..
|
31) engrampa-1.28.1
$ tar Jxvf engrampa-1.28.1.tar.xz
$ cd engrampa-1.28.1
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
32) eom-1.28.0
$ tar Jxvf eom-1.28.0.tar.xz
$ cd eom-1.28.0
$ ./configure --prefix=/opt/mate --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
33) mozo-1.28.0
$ tar Jxvf mozo-1.28.0.tar.xz
$ cd mozo-1.28.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install"
$ cd ..
|
34) pluma-1.28.0
$ tar Jxvf pluma-1.28.0.tar.xz
$ cd pluma-1.28.0
$ ./configure --prefix=/opt/mate --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
35) python-caja-1.28.0
$ tar Jxvf python-caja-1.28.0.tar.xz
$ cd python-caja-1.28.0
$ ./configure --prefix=/opt/mate --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
36) murrine-0.98.2
$ tar Jxvf murrine-0.98.2.tar.xz
$ cd murrine-0.98.2
$ ./configure --prefix=/usr --enable-animation \
--enable-animationrtl --libdir=/usr/lib64
$ make
|
Instalación como Root
$ su -c "make install-strip"
$ cd ..
|
37) dconf-editor-45.0.1
$ tar Jxvf dconf-editor-45.0.1.tar.xz
$ cd dconf-editor-45.0.1
$ meson build --prefix=/opt/mate --strip --buildtype=release
$ ninja -C build |
Instalación como Root
$ su -c "ninja -C build install"
$ cd ..
|
38) mate-user-guide-1.28.0
$ tar Jxvf mate-user-guide-1.28.0.tar.xz
$ cd mate-user-guide-1.28.0
$ ./configure --prefix=/opt/mate
$ make
|
Instalación como Root
$ su -c "make install"
$ cd ..
|
39) mate-icon-theme-faenza-1.20.0
$ tar Jxvf mate-icon-theme-faenza-1.20.0.tar.xz
$ cd mate-icon-theme-faenza-1.20.0
$ sh autogen.sh --prefix=/opt/mate
$ make |
Instalación como Root
$ su
# make install
# for i in HighContrast HighContrastInverse LowContrast hicolor ; do \
gtk-update-icon-cache -tf /opt/mate/share/icons/$i &> /dev/null ; \
done
# cd ..
|
40) mate-calc-1.28.0
$ tar Jxvf mate-calc-1.28.0.tar.xz
$ cd mate-calc-1.28.0
$ ./configure --prefix=/opt/mate
$ make |
Instalación como Root
$ su -c " make install-strip" |
41) caja-actions-1.28.0
$ tar Jxvf caja-actions-1.28.0.tar.xz
$ cd caja-actions-1.28.0
$ ./configure --prefix=/opt/mate --libdir=/opt/mate/lib64
$ make |
Instalación como Root
$ su -c " make install-strip" |
42) pluma-plugins-1.28.0
$ tar Jxvf pluma-plugins-1.28.0.tar.xz
$ cd pluma-plugins-1.28.0
$ ./configure --prefix=/opt/mate --libdir=/opt/mate/lib64
$ find . -name 'Makefile' -type f | xargs sed -i 's:/include/pluma:/include:g'
$ make |
Instalación como Root
$ su -c " make install-strip" |
Borrar las locales adicionales instaladas y ayuda localizada de MATE con la utilidad BleachBit
Antes modificamos previamente el archivo localizations.xml para incluir la ruta personalizada de instalación de MATE,
y posteriormente ejecutamos el comando habitual de borrado. Incluyo
también otro comando adicional que borra las locales no
soportadas por BleachBit.
$ su
# sed -e '4a\\t<path location="/opt/mate/share">' \
-e '4a\\t<path location="locale" filter="*"/>' \
-e '4a\\t<path location="man" filter="*"/>' \
-e '4a\\t<path location="help" filter="*"/>' -e '4a\\t</path>' \
-i /usr/share/bleachbit/cleaners/localizations.xml
# bleachbit -c system.localizations
# rm -rf /opt/mate/share/{help,locale}/{bem,cmn,ca@valencia,fil,\
frp,ie,kab,nah,nan,nqo,pms,sco,en*,sr@latin,zh-Hans}
|
Tener en cuenta, que BleachBit no
borra las variantes de un determinado idioma, por ejemplo
es_AR, esto lo tendremos que hacer de forma manual, en
función de nuestras locales. El comando adicional a
introducir por los usuarios de España para borrar las locales de
países que comparten el mismo idioma, sería el siguiente:
# for i in AR CL CO CR DO EC MX NI PA PE PR SV US UY VE ; do \
rm -rf /opt/mate/share/{help,locale}/es_$i &> /dev/null ; \
done
|
Crear enlaces
simbólicos de los archivos de configuración de MATE para
Polkit a la ubicación predefinida en el sistema
Esto es necesario para un correcto funcionamiento de las características de Polkit con MATE.
# find /opt/mate/share/polkit-1/actions -name '*.policy' -exec ln -s "{}" /usr/share/polkit-1/actions ';'
|
Ocultar las aplicaciones de configuración o específicas de otros entornos de escritorio (LXDE, XFce 4, etc) en los menús y en el inicio automático de aplicaciones de MATE
Para evitar que las aplicaciones de configuración e inicio
automático de otros entornos gráficos, se muestren o se
inicien con MATE, realizaremos
una búsqueda de archivos desktop en nuestro sistema, en
directorios específicos, que contengan la clave NotShowIn.
Una vez los encontremos, pasaremos a aplicar el correspondiente comando
de modificación recursiva, para que estas aplicaciones no aparezcan
en el menú de MATE, ni se inicien con MATE. Pongo como ejemplo mi sistema, incluyendo la instalación personalizada de XFce 4.
1) Búsqueda de archivos desktop del sistema en directorios específicos conteniendo la clave NotShowIn
$ su
# find /etc/xdg/autostart /usr/share/applications /opt/xfce4/etc/xdg/autostart \
/opt/xfce4/share/applications -name '*.desktop' -type f | xargs grep NotShowIn
|
Mostrando los siguientes resultados en mi sistema:
/etc/xdg/autostart/lxpolkit.desktop:NotShowIn=GNOME;KDE;XFCE;
/usr/share/applications/lxappearance.desktop:NotShowIn=GNOME;KDE;XFCE;
/usr/share/applications/lxrandr.desktop:NotShowIn=GNOME;KDE;XFCE;
/usr/share/applications/lxinput.desktop:NotShowIn=GNOME;KDE;XFCE;
/usr/share/applications/lxsession-edit.desktop:NotShowIn=GNOME;KDE;XFCE;
/usr/share/applications/libfm-pref-apps.desktop:NotShowIn=GNOME;XFCE;KDE;
/usr/share/applications/pcmanfm-desktop-pref.desktop:NotShowIn=GNOME;XFCE;KDE;
/usr/share/applications/flash-player-properties.desktop:NotShowIn=KDE;
/usr/share/applications/lxsession-default-apps.desktop:NotShowIn=GNOME;KDE;XFCE;
/opt/xfce4/etc/xdg/autostart/xfce4-power-manager.desktop:NotShowIn=GNOME;KDE;Unity;
/opt/xfce4/share/applications/xfce4-power-manager-settings.desktop:NotShowIn=GNOME;KDE;Unity;
|
En el comando de modificación apuraremos el filtro para no incluir flash-player-properties,
que al ser una aplicación independiente, puede mostrarse sin
ningún problema en el menú de aplicaciones de MATE.
# find /etc/xdg/autostart /usr/share/applications /opt/xfce4/etc/xdg/autostart \
/opt/xfce4/share/applications -name '*.desktop' -type f | \
xargs grep -l "NotShowIn=GNOME;" | xargs sed -i 's:NotShowIn=:&MATE;:'
|
Volvemos a ejecutar el comando de búsqueda inicial y comprobamos que MATE aparece junto a los otros entornos configurados en la correspondiente clave, excepto la de flash-player-properties.
# find /etc/xdg/autostart /usr/share/applications /opt/xfce4/etc/xdg/autostart \
/opt/xfce4/share/applications -name '*.desktop' -type f | xargs grep NotShowIn
|
/etc/xdg/autostart/lxpolkit.desktop:NotShowIn=MATE;GNOME;KDE;XFCE;
/usr/share/applications/lxappearance.desktop:NotShowIn=MATE;GNOME;KDE;XFCE;
/usr/share/applications/lxrandr.desktop:NotShowIn=MATE;GNOME;KDE;XFCE;
/usr/share/applications/lxinput.desktop:NotShowIn=MATE;GNOME;KDE;XFCE;
/usr/share/applications/lxsession-edit.desktop:NotShowIn=MATE;GNOME;KDE;XFCE;
/usr/share/applications/libfm-pref-apps.desktop:NotShowIn=MATE;GNOME;XFCE;KDE;
/usr/share/applications/pcmanfm-desktop-pref.desktop:NotShowIn=MATE;GNOME;XFCE;KDE;
/usr/share/applications/flash-player-properties.desktop:NotShowIn=KDE;
/usr/share/applications/lxsession-default-apps.desktop:NotShowIn=MATE;GNOME;KDE;XFCE;
/opt/xfce4/etc/xdg/autostart/xfce4-power-manager.desktop:NotShowIn=MATE;GNOME;KDE;Unity;
/opt/xfce4/share/applications/xfce4-power-manager-settings.desktop:NotShowIn=MATE;GNOME;KDE;Unity;
|
En lo que concierne a nuestro directorio personal de usuario, las entradas ubicadas en ~/.config/autostart se pueden editar desde el propio MATE. Las ubicadas en el directorio Desktop o Escritorio, lo podemos hacer de forma manual, con un editor de texto, para seleccionar las que deseamos que se muestren y las que no.
Estadísticas de Compilación e Instalación de MATE
Estadísticas de Compilación e Instalación de MATE |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Tarjeta gráfica |
AMD Radeon RX 580 2048SP |
Controlador de gráficos |
AMDGPU 23.0.0 |
Sistema de archivos |
XFS |
Versión del Kernel |
6.9.1-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.6 |
Compilador |
Clang 18.1.6 + Ccache 4.9.1 |
Parámetros de optimización |
-03 -march=znver3
-mtune=znver3 -mllvm -polly -mllvm
-polly-vectorizer=stripmine -mllvm
-polly-position=before-vectorizer -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 |
(V=1 o -v) -j12 |
Tiempo de compilación |
5' 05" |
Tiempo de instalación |
3' 57" |
Tiempo total consumido |
9' 02" |
Archivos instalados |
21.806 |
|
|
Enlaces simbólicos creados |
15.628 |
|
|
Ocupación de espacio en disco |
361,5 MB |
Parámetros de configuración aplicados en la compilación de los paquetes de código fuente de MATE |
Parámetro |
Descripción |
--prefix=/opt/mate |
Instala el entorno de escritorio y sus aplicaciones en /opt/mate.
|
--prefix=/usr
|
Instala los temas GTK+ en el directorio principal. /usr, ya que GTK+ no permite otro directorio alternativo que no sea el de instalación predefinido de éste.
|
--libexecdir=/usr/lib64/dconf |
Instala la librería de ejecución de Dconf en /usr/lib64/dconf, en sistemas de 64 bits multiarquitectura. |
--disable-static |
No compila las librerías estáticas para reducir espacio en disco. |
--disable-systemd |
Desactiva el soporte de Systemd en la compilación del paquete mate-system-monitor. |
--enable-locations-compresion |
Activa la compresión con gzip de los archivos de configuración meteorológica localizada en formato XML, del paquete libmateweather. La ganancia de espacio libre en disco es de más de 70 MB. |
--with-pam-prefix=/etc |
Instala el archivo de de configuración para PAM del paquete mate-screensaver en /etc/pam.d |
--enable-animation --enable-animationrtl |
Activa el soporte de animaciones, incluida la animación de la barra de progreso, en el engine para GTK+, Murrine, dependencia requerida para poder utilizar los temas GTK+ predefinidos de MATE en aplicaciones escritas en GTK2. |
--libdir=/opt/mate/lib64 |
Instala las librerías en /opt/mate/lib64, en sistemas de 64 bits multiarquitectura. |
--libdir=/usr/lib64 |
Instala las librerías en /usr/lib64, en sistemas de 64 bits multiarquitectura, de aquellos paquetes que no se pueden instalar en /opt/mate. |
--strip |
Elimina los símbolos no
necesarios para su ejecución de los binarios ejecutables
correspondientes, cuando compilamos un paquete con Meson. |
--buildtype=release |
Compila la versión optimizada del paquete, cuando compilamos un paquete con Meson, ya que este compila por defecto los paquetes con los parámetros -O2 -g. |
Comandos introducidos como usuario normal en la compilación de los paquetes de código fuente de MATE |
Comando |
Descripción |
make |
Ejecuta el proceso de compilación del paquete. |
ninja -C build |
Ejecuta el proceso de compilación del paquete utilizando el comando ninja en aquellos
procesos cuyo sistema de compilación es Meson. |
sed -e 's:keyword Name:keyword=Name:' -e 's:keyword Description:keyword=Description:' \
-i libmate-panel-applet/Makefile.in |
Requerido para poder compilar el paquete mate-panel con la última versión de Gettext. |
find . -name 'Makefile' -type f | xargs sed -i 's:/include/pluma:/include:g' |
Soluciona un error de
compilación en el paquete pluma-plugins, al incluir éste,
la ruta a las cabeceras de pluma, de forma errónea en los
archivos de código fuente del paquete. |
Comandos introducidos como usuario root en la compilación de los paquetes de código fuente de MATE |
Comando |
Descripción |
make install |
Ejecuta el proceso de instalación del paquete. |
make install-strip |
Ejecuta
el proceso de instalación del paquete, eliminando los símbolos no
necesarios para su ejecución de los binarios ejecutables
correspondientes. |
ninja -C build install |
Ejecuta el proceso de
instalación del paquete utilizando el comando ninja en aquellos
procesos cuyo sistema de compilación es Meson. |
ldconfig -v |
Actualiza la caché
de las librerías compartidas del sistema, mostrando más
información en la ventana de terminal. |
exit |
Salimos de la sesión de consola como usuario root para volver a nuestro sesión de usuario. |
for i in HighContrast HighContrastInverse LowContrast hicolor ; do \
gtk-update-icon-cache -tf /opt/mate/share/icons/$i &> /dev/null ; \
done |
Actualiza la caché de iconos de GTK+
para que incluya los que no han sido incluidos de forma automática en
el proceso de instalación de los paquetes que contienen iconos. |
mv /opt/mate/lib/udev/rules.d/61-mate-settings-daemon-rfkill.rules /lib/udev/rules.d
rmdir -p /opt/mate/lib/udev/rules.d &> /dev/null |
Mueve el archivo de
configuración del programa rfkill para Udev al directorio
predefinido del sistema para, posteriormente, borrar el directorio
creado en la raíz de instalación de MATE. |
Consumo inicial de CPU y RAM de MATE
Consumo inicial de CPU y RAM de MATE |
Programa
|
CPU |
RAM |
caja |
0 % |
57,0 MB |
mate-session |
0 % |
42,1 MB |
mate-panel |
0 % |
33,2 MB |
clock-applet |
0 % |
32,2 MB |
mate-settings-daemon |
0 % |
27,5 MB |
mate-volume-control-status-icon |
0 % |
24,9 MB |
marco |
0 % |
21,0 MB |
notification-area-applet |
0 % |
19,1 MB |
wnck-applet |
0 % |
18,7 MB |
mate-screensaver |
0 % |
15,7 MB |
mate-power-manager |
0 % |
15,3 MB |
dconf-service |
0 % |
2,2 MB |
TOTAL |
0 % |
308,9 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. |
Directorios de
configuración personal
~/.config/mate-session |
Es el directorio
donde se guarda la configuración de las sesiones
guardadas del usuario. |
~/.config/caja |
Es
el directorio de configuración personal del administrador de archivos Caja,
en nuestro home. |
~/.config/pluma |
Es
el directorio de configuración personal del editor de texto Pluma,
en nuestro home. |
~/.config/dconf |
Es
el directorio de configuración personal de dconf
en nuestro home. Almacena todas las claves de configuración de MATE y sus aplicaciones, que podemos editar con Dconf-editor. |
~/.config/autostart |
Es el directorio donde se guardan los archivos desktop que se crean y editan desde Configuración >> Aplicaciones al inicio del menú de MATE. |
~/.cache/mate |
Es el directorio que contiene la caché de MATE
y de algunos de sus componentes. |
~/.themes |
MATE utiliza el mismo directorio que GTK+ para los temas en nuestro home, incluyendo los del administrador de ventanas, Marco. |
Desinstalación
como root
1)
MODO TRADICIONAL
En los directorios de compilación de
todos los
paquetes 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.
mate-1.28.0-scripts.tar.gz
$ su
# tar zxvf mate-1.28.0-scripts.tar.gz
# cd mate-1.28.0-scripts
# ./Desinstalar_mate-1.28.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 mate-1.28.0-scripts.tar.gz
# cd mate-1.28.0-scripts
# ./Respaldar_mate-1.28.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_mate-1.28.0
|
Configurar el inicio de
MATE
1) Para los que inician X desde
terminal con el comando startx
Editamos el archivo ~/.xinitrc que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
exec /opt/mate/bin/mate-session |
2) XDM
Editamos el archivo ~/.xsession que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
exec /opt/mate/bin/mate-session |
3) GDM/LightDM/SDDM
Creamos un enlace simbólico de /opt/mate/share/xsessions/mate.desktop a /usr/share/xsessions:
$ su -c "ln -s /opt/mate/share/xsessions/mate.desktop /usr/share/xsessions"
|
4) Qingy
Abrimos un editor de texto y añadimos lo siguiente:
/opt/mate/bin/mate-session |
Lo guardamos con el nombre MATE, y lo instalamos en /etc/qingy/Xsessions.
$ su -c "install -m755 MATE /etc/qingy/Xsessions"
|
5) SLiM
Primero editamos el archivo /etc/slim.conf
y añadimos el nombre del entorno a la lista de los que tengamos
en el sistema instalados, si queremos que sea el entorno que se inicie
por defecto hay que colocarlo en el primer lugar de la lista.
#
Sesiones disponibles (la primera es la predefinida).
# El actual nombre de sesión es reemplazado en el login_cmd
# anterior, para que su comando de acceso pueda manejar diferentes
sesiones.
# vea el archivo xinitrc.ejemplo proporcionado con el código
fuente de slim.
sessions Fluxbox,WindowMaker,Blackbox,MATE,E17,E16,IceWM,Openbox,ROX,Pekwm,AfterStep |
Para finalizar editamos el archivo ~/.xinitrc
de nuestro home y
añadimos la configuración del mismo, la variable DEFAULT_SESSION
sobreescribe el entorno gráfico de inicio predefinido que
pueda existir en el archivo /etc/slim.conf,
permitiendo añadir el ejecutable de otro entorno que no
esté configurado en el apartado anterior para ser iniciado
por
defecto, si queremos que sea MATE,
añadimos su script de ejecución, aunque si lo
tenemos configurado el primero de la lista, esto no es necesario.
# La siguiente variable define
la sesión que será iniciada si el usuario
# no elige de forma explícita una sesión
DEFAULT_SESSION=mate-session
case $1 in
MATE)
exec mate-session
;;
IceWM)
exec icewm-session
;;
WindowMaker)
exec wmaker
;;
Blackbox)
exec startblackbox
;;
Fluxbox)
exec startfluxbox
;;
E17)
exec enlightenment_start
;;
E16)
exec starte16
;;
Openbox)
exec openbox-session
;;
Pekwm)
exec pekwm
;;
ROX)
exec rox-session
;;
AfterStep)
exec afterstep
;;
exec $DEFAULT_SESSION
;;
esac
|
Con pulsar F1 ya
podremos seleccionarlo de la lista e iniciarlo, si es el predefinido no
es necesario seleccionarlo de la lista, se iniciará por
defecto.
Iniciamos MATE
Notas de actualización del manual
A partir de la versión 1.18.0 de MATE, se ha retirado el soporte
para GTK2, siendo esta dependencia sólo requerida en la
compilación del paquete murrine, para que las aplicaciones GTK2
puedan utilizar el mismo tema de MATE cuando las ejecutemos en su
correspondiente sesión.
* Paquetes actualizados:
Todos excepto dconf, mate-control-center (la versión 1.28.0 no
es compatible con X11), murrine, dconf-editor y mate-icon-theme-faenza.
* Paquetes retirados:
* Paquetes nuevos:
* En lo que respecta al resto de paquetes, no es necesaria su
instalación (excepto si estamos actualizando a una
versión superior del entorno), en aquellos usuarios que han
instalado MATE, siguiendo este manual.
Enlaces
http://mate-desktop.org >> La web de MATE.
http://wiki.mate-desktop.org >> Documentación.
http://gnome-look.org >> Temas,
iconos, fondos
de escritorio, etc.
http://forums.mate-dekstop.org >> Los foros
de MATE.
|