GNU Coreutils 9.1 llega con mejoras, correcciones y mas
Hace ya varios dias se dio a conocer la disponibilidad de la nueva versión estable del conjunto de utilidades básicas del sistema GNU Coreutils 9.1, que incluye programas como sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls, etc.
Coreutils (o GNU Core Utilities) es un paquete de software desarrollado por el proyecto GNU que contiene varias de las herramientas básicas como cat, ls y rm necesarias para sistemas operativos del tipo Unix. Es una combinación de tres paquetes anteriores: utilidades de ficheros (fileutils), utilidades de intérpretes de comandos (shellutils) y utilidades de proceso de textos (textutils).
Las utilidades GNU core soportan opciones de cadena larga como parámetros a los comandos, así como cierta permisividad en la convención al especificar opciones antes de los argumentos regulares (siempre que la variable de entorno POSIXLY_CORRECT esté definida, hecho que habilita una diferente funcionalidad en BSD). Adicionalmente, como la filosofía GNU emplea información desde páginas de manual (y usa herramientas como info), la información proporcionada es mayor.
Principales novedades de GNU Coreutils 9.1
En esta nueva version que se presenta de GNU Coreutils 9.1 se destaca que se agregó soporte a la utilidad dd para nombres de opciones alternativas iseek=N para skip=N y oseek=N para seek=N, que se usan en la variante BSD de dd.
Ademas de ello, tambien se destaca que la utilidad dd proporciona un recuento de bytes en lugar de bloques si el valor del contador termina con un carácter «B» («dd count=100KiB»). Los indicadores count_bytes, skip_bytes y seek_bytes han quedado obsoletos.
Tambien se destaca que se agregó la opción «–print-ls-colors» a dircolors para mostrar visualmente y por separado los colores definidos en la variable de entorno LS_COLORS, ademas de que en dircolors también se agregó el soporte para la variable de entorno COLORTERM además de TERM.
La utilidad cat implementa el uso de la llamada al sistema copy_file_range, con su soporte por parte del sistema, para copiar datos entre dos archivos solo en el lado del kernel sin transferir datos a la memoria de proceso del espacio de usuario.
chown y chroot proporcionan una advertencia cuando se usa la sintaxis «chown root.root f» en lugar de «chown root:root f» ya que puede haber problemas en los sistemas que permiten puntos en los nombres de usuario).
En ls, el resaltado de archivos está deshabilitado de forma predeterminada, teniendo en cuenta las capacidades, ya que esto conduce a un aumento de la carga de aproximadamente un 30 %.
En ls y stat, los intentos de automontar archivos están deshabilitados. Para el montaje automático, debe especificar explícitamente la opción «stat –cached=never
En las utilidades cp, mv e install ahora es posible poder utilizar las llamadas al sistema openat* al copiar a un directorio para mejorar la eficiencia y evitar posibles condiciones de carrera.
En macOS, la utilidad cp ahora crea un clon de copia en escritura de un archivo si los archivos de origen y de destino están en el mismo APFS y el archivo de destino no existe. Al copiar, también se conservan el modo de acceso y la hora (como cuando se ejecutan ‘cp -p’ y ‘cp -a’).
De los demás cambios que se destacan de esta nueva versión:
- printf proporciona soporte para imprimir valores numéricos en caracteres multibyte.
- «sort –debug» implementó diagnósticos para problemas con caracteres en el parámetro «–field-separator» en conflicto con caracteres que se pueden usar en números.
- La opción ‘–resolución’ se ha agregado a la utilidad ‘fecha’ para mostrar datos sobre la precisión del seguimiento del tiempo.
- chmod -R ya no sale con un estado de error al encontrar enlaces simbólicos. Todos los archivos se procesarían correctamente, pero el estado de salida era incorrecto.
- cksum ya no permite nombres de algoritmos abreviados, de modo que se mejore la compatibilidad con versiones anteriores y la robustez.
- Las compilaciones de AIX ya no fallan porque no se encuentran algunas funciones de biblioteca.
Finalmente, si estás interesado en poder conocer más al respecto de esta nueva versión, puedes consultar los detalles en el siguiente enlace.