¿Mis páginas man de macOS están desactualizadas?

Ejecuto macOS 10.14.6, "Mojave". He estado estudiando man screenpara hacer algunos cambios en su comportamiento predeterminado. Los párrafos 2 y 4 a continuación CUSTOMIZATIONdicen:

2do párrafo:

Cuando se invoca screen, ejecuta comandos de inicialización desde los archivos "/usr/local/etc/screenrc" y ".screenrc" en el directorio de inicio del usuario. Estos son los "valores predeterminados del programador" que se pueden anular de las siguientes maneras: para el archivo screenrc global, la pantalla busca la variable de entorno $SYS-SCREENRC (esta función de anulación puede desactivarse en tiempo de compilación). El archivo screenrc específico del usuario se busca en $SCREENRC, luego en $HOME/.screenrc. La opción de línea de comando -c tiene prioridad sobre la búsqueda anterior en $SCREENRC, luego en $HOME/.screenrc. La opción de línea de comando -c tiene prioridad sobre los archivos screenrc de usuario anteriores.

4to párrafo:

Se envían dos archivos de configuración como ejemplos con su distribución de pantalla: "etc/screenrc" y "etc/etcscreenrc". Contienen una serie de ejemplos útiles para varios comandos.

Pero parece que hay algunas discrepancias:

  • /usr/local/etcno existe
  • $SYSSCREENRCno está definido ( echo $SYSSCREENRC=> nulo)
  • $SCREENRCno está definido
  • etc/screenrcno existe (ni private/etc/screenrc)
  • etc/etcscreenrcno existe (ni private/etc/etcscreenrc)

###Pregunta... ¿Se requiere un proceso de actualización separado en macOS para obtener actualizaciones para las herramientas y los manuales del sistema de Unix? Por ejemplo, según man screenlos paquetes de Apple screenversión 4.0.2 (cosecha de enero de 2004) con macOS 10.14.6; ese lanzamiento fue hace 16 años este mes.

¿Existe algún proceso fuera de macOS para actualizar esta parte del sistema que está "autorizado" por Apple? ( Por "sancionado" solo me refiero a un procedimiento designado por Apple para mantener la integridad del sistema ) .

Si no, ¿ha reconocido Apple esta situación? Por eso solo estoy tratando de aprender si me perdí algo.

Respuestas (2)

¿Se requiere un proceso de actualización separado en macOS para obtener actualizaciones para las herramientas y los manuales del sistema de Unix? Por ejemplo, según man screenla versión 4.0.2 de la pantalla de paquetes de Apple (cosecha de enero de 2004) con macOS 10.14.6; ese lanzamiento fue hace 16 años este mes.

No. No existe un proceso separado para actualizar las herramientas/utilidades de Unix.

Es muy poco probable que las herramientas de Unix se actualicen más allá de las versiones que está viendo ahora.

¿Por qué? Licencias GPL .

Usando screencomo ejemplo, probablemente permanecerá en la versión 4.0.2 porque esa fue la última versión que usó la licencia pública GPLv2 menos restrictiva. La versión 4.2 (2007) y los lanzamientos posteriores utilizan la GPLv3 que, por lo general, Apple no quiere cumplir.

Consulte ¿macOS es principalmente de código cerrado? para más información.

En cuanto a las cuestiones que planteó con respecto a screen:

  • /usr/local/etces un directorio BSD. Muchos macOS tienen fundamentos BSD, pero este directorio no se usa.
  • El sistema operativo no establece muchas variables de entorno y esto es bastante común en todos los sistemas operativos; macOS, BSD e incluso distribuciones de Linux como RedHat.
  • Los archivos de configuración de muestra que no se incluyen en el sistema operativo también son comunes
  • Apple no vuelve a escribir las páginas de manual para los cambios que realizan (que la licencia GPLv2 les permite hacer)

Si no, ¿ha reconocido Apple esta situación? Por eso solo estoy tratando de aprender si me perdí algo.

No hay nada que reconocer ya que esto fue hecho intencionalmente por Apple. Si desea "actualizar" a la última versión de una utilidad de Unix, debe compilarla desde la fuente, usar MacPorts o HomeBrew. Sin embargo, tendrás que gestionar la actualización de los mismos.

¿Las páginas man de macOS están desactualizadas?

No. Son las páginas man correctas para las versiones de las utilidades que se envían con macOS.

Respuesta perfecta. Dicho esto, ahora me pregunto qué dirá Apple en el año 2104 cuando se le pregunte por qué todavía envían herramientas de 100 años con su nuevo y brillante sistema operativo... pero eso es especulación, ¡así que no iremos allí!
2104? No voy a estar cerca, así que dejaré que alguien más se preocupe por eso. :-)
Echa un vistazo a la versión de Bash con la que Apple está enviando. Para mí, /bin/bashes la versión 3.2, © 2007. Quizás la licencia de estilo MIT utilizada por zshes el verdadero motivador para que Apple cambie el shell predeterminado...
@ Z4-tier: estoy completamente de acuerdo con eso. De hecho, toco bash en mi pregunta vinculada
Una posible arruga en esta respuesta: parece que la falta de actualizaciones de Apple para las herramientas Unix de código abierto no se limita a GPL licensed software; al menos algunos BSD-licensed softwareen MacOS tampoco están actualizados.
@Seamus: leí su respuesta y debería ser rechazada (aunque no lo hice) porque es pura conjetura de su parte, sin mencionar que es incorrecta. Usted evaluó ping del repositorio GitHub de FreeBSD y no de la página de código abierto de Apple para ping . Es la propia versión de Apple modificada de una versión anterior que, por cierto, la licencia GPLv2 en ese momento les permite hacerlo sin enviar el código.
Error tipográfico... Licencia BSD, no GPL.
@Allan: Tu comentario: "I read your answer and it should be down voted...". Parece un comentario extraño por dos razones: 1. Respondiste la pregunta y 2. No envié una respuesta, solo la pregunta.

El único problema real que veo aquí es la mención de /usr/local/etcen la página de manual. Lo más probable es que sea solo un descuido de Apple cuando copiaron la página del manual 1:1 de la distribución. En Mojave, screenlee la configuración predeterminada /private/etc/screenrc(que no existe a menos que la cree).

$ strings /usr/bin/screen | grep screenrc
%s/.screenrc
-c file       Read configuration file instead of '.screenrc'.
Sorry, too late now. Place that in your .screenrc file.
/private/etc/screenrc
$ ls /private/etc/screenrc
ls: /private/etc/screenrc: No such file or directory

Para los demás artículos

  • Las variables de entorno se pueden utilizar para señalar valores predeterminados, pero no son obligatorias. Simplemente le dan la opción de leer screenrc(el valor predeterminado de todo el sistema generalmente se lee desde /private/etc/screenrc) o .screenrc(el valor predeterminado específico del usuario generalmente se lee desde ~/.screenrc) desde otro lugar (o usar uno personalizado para necesidades específicas)
  • etc/screenrcy etc/etcscreenrc" se envían como ejemplos con su distribución de pantalla ", la ruta es relativa al directorio de distribución del código fuente. Probablemente no estén incluidos en macOS, si es necesario, puede obtener el código fuente de Apple o GNU ( screenrc , etcscreenrc ).

PD: Las páginas de manual son parte de la instalación estándar de macOS, no hay un proceso separado para actualizarlas.

PPS: las versiones más recientes de las herramientas estándar de Unix/GNU generalmente se pueden instalar a través de Homebrew .