Sind meine macOS Manpages veraltet?

Ich verwende macOS 10.14.6, "Mojave". Ich habe studiert, man screenum einige Änderungen an seinem Standardverhalten vorzunehmen. Die 2. und 4. Absätze darunter CUSTOMIZATIONlauten:

2. Absatz:

Wenn screen aufgerufen wird, führt es Initialisierungsbefehle aus den Dateien „/usr/local/etc/screenrc“ und „.screenrc“ im Home-Verzeichnis des Benutzers aus. Dies sind die „Programmierervorgaben“, die auf folgende Weise überschrieben werden können: für die globale screenrc-Datei sucht screen nach der Umgebungsvariable $SYS-SCREENRC (diese Überschreibungsfunktion kann zur Kompilierzeit deaktiviert werden). Die benutzerspezifische screenrc-Datei wird in $SCREENRC und dann in $HOME/.screenrc gesucht. Die Befehlszeilenoption -c hat Vorrang vor der Suche in $SCREENRC, dann $HOME/.screenrc. Die Befehlszeilenoption -c hat Vorrang vor den oben genannten Benutzer-screenrc-Dateien.

4. Absatz:

Als Beispiele werden zwei Konfigurationsdateien mit Ihrer Bildschirmdistribution ausgeliefert: "etc/screenrc" und "etc/etcscreenrc". Sie enthalten eine Reihe nützlicher Beispiele für verschiedene Befehle.

Aber es scheint einige Abweichungen zu geben:

  • /usr/local/etcist nicht vorhanden
  • $SYSSCREENRCist nicht definiert ( echo $SYSSCREENRC=> null)
  • $SCREENRCist nicht definiert
  • etc/screenrcexistiert nicht (auch nicht private/etc/screenrc)
  • etc/etcscreenrcexistiert nicht (auch nicht private/etc/etcscreenrc)

###Frage... Ist ein separater Update-Prozess in macOS erforderlich, um Updates für die Unix-Tools und Systemhandbücher zu erhalten? Zum Beispiel laut man screenApple-Paketen screenVersion 4.0.2 (Jahrgang Januar 2004) mit macOS 10.14.6; Diese Veröffentlichung war diesen Monat vor 16 Jahren.

Gibt es außerhalb von macOS einen Prozess zum Aktualisieren dieses Teils des Systems, der von Apple „sanktioniert“ wird? ( Mit „sanktioniert“ meine ich nur ein von Apple festgelegtes Verfahren zur Aufrechterhaltung der Systemintegrität. )

Wenn nicht, hat Apple diese Situation erkannt? Dadurch versuche ich nur zu lernen, wenn ich etwas verpasst habe.

Antworten (2)

Ist ein separater Aktualisierungsprozess in macOS erforderlich, um Aktualisierungen für die Unix-Tools und Systemhandbücher zu erhalten? Zum Beispiel laut man screenApple-Paketen Bildschirmversion 4.0.2 (Jahrgang Januar 2004) mit macOS 10.14.6; Diese Veröffentlichung war diesen Monat vor 16 Jahren.

Nein. Es gibt keinen separaten Prozess zum Aktualisieren von Unix-Tools/Dienstprogrammen.

Es ist nur sehr unwahrscheinlich, dass die Unix-Tools über die Versionen hinaus aktualisiert werden, die Sie jetzt sehen.

Warum? GPL-Lizenzierung .

Beispielsweise screenwird es wahrscheinlich bei Version 4.0.2 bleiben, da dies die letzte Version war, die die weniger restriktive öffentliche Lizenz GPLv2 verwendet hat. Version 4.2 (2007) und nachfolgende Releases verwenden die GPLv3, die Apple generell nicht einhalten will.

Siehe Ist macOS größtenteils Closed Source? Für mehr Information.

Zu den von Ihnen angesprochenen Themen screen:

  • /usr/local/etcist ein BSD-Verzeichnis. Viele macOS haben BSD-Untermauerungen, aber dieses Verzeichnis wird nicht verwendet.
  • Viele Umgebungsvariablen werden nicht vom Betriebssystem festgelegt, und dies ist bei allen Betriebssystemen üblich. macOS, BSD und sogar Linux-Distributionen wie RedHat.
  • Es ist auch üblich, dass Beispielkonfigurationsdateien nicht im Betriebssystem enthalten sind
  • Apple schreibt die Manpages für die von ihnen vorgenommenen Änderungen nicht neu (was ihnen die GPLv2-Lizenz erlaubt).

Wenn nicht, hat Apple diese Situation erkannt? Dadurch versuche ich nur zu lernen, wenn ich etwas verpasst habe.

Es gibt nichts zu bestätigen, da dies absichtlich von Apple getan wurde. Wenn Sie auf die neueste Version eines Unix-Dienstprogramms „aktualisieren“ möchten, müssen Sie es entweder aus dem Quellcode kompilieren, MacPorts oder HomeBrew verwenden. Sie müssen sich jedoch um deren Aktualisierung kümmern.

Sind macOS Manpages veraltet?

Nein. Dies sind die richtigen Manpages für die Versionen der Dienstprogramme, die mit macOS geliefert werden.

Perfekte Antwort. Abgesehen davon frage ich mich jetzt, was Apple im Jahr 2104 sagen wird, wenn es gefragt wird, warum sie immer noch 100 Jahre alte Tools mit ihrem glänzenden neuen Betriebssystem ausliefern ... aber das verlangt nach Spekulationen, also gehen wir nicht darauf ein!
2104? Ich werde nicht da sein, also lasse ich jemand anderen sich darum kümmern. :-)
Sehen Sie sich die Version von Bash an, mit der Apple ausgeliefert wird. Für mich /bin/bashist das Version 3.2, © 2007. Vielleicht ist die von verwendete Lizenz im MIT-Stil zshder eigentliche Motivator für Apple, die Standard-Shell zu wechseln.....
@Z4-tier - dem würde ich voll und ganz zustimmen. Ich berühre Bash tatsächlich in meiner verknüpften Frage
Eine mögliche Falte in dieser Antwort: Es scheint, dass Apples Mangel an Updates für die Open-Source-Unix-Tools nicht auf beschränkt ist GPL licensed software; zumindest einige BSD-licensed softwarein MacOS werden auch nicht aktualisiert.
@Seamus - Ich habe deine Antwort gelesen und sie sollte abgelehnt werden (obwohl ich es nicht getan habe), weil es eine reine Vermutung deinerseits ist, ganz zu schweigen von falsch. Sie haben Ping aus dem GitHub-Repo von FreeBSD und nicht Apples Open-Source-Seite für Ping ausgewertet . Es ist Apples eigene Version, die von einer früheren Version modifiziert wurde , die übrigens die damalige GPLv2-Lizenz erlaubt, ohne den Code zurückzusenden.
Tippfehler...BSD-Lizenz, nicht GPL.
@Allan: Dein Kommentar: "I read your answer and it should be down voted...". Das scheint aus zwei Gründen ein seltsamer Kommentar zu sein: 1. Sie haben die Frage beantwortet, und 2. ich habe keine Antwort eingereicht - nur die Frage.

Das einzige wirkliche Problem, das ich hier sehe, ist die Erwähnung von /usr/local/etcin der Manpage. Dies ist höchstwahrscheinlich nur ein Versehen von Apple, als sie die Manpage 1:1 aus der Distribution kopiert haben. Liest auf Mojave screendie Standardkonfiguration aus /private/etc/screenrc(die nicht existiert, es sei denn, Sie erstellen sie).

$ 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

Für die anderen Artikel

  • Umgebungsvariablen können verwendet werden, um auf Standardwerte zu verweisen, aber sie sind nicht obligatorisch. Sie geben Ihnen nur die Möglichkeit, von woanders zu lesen screenrc(die systemweite Standardeinstellung wird normalerweise von gelesen /private/etc/screenrc) oder .screenrc(die benutzerspezifische Standardeinstellung wird normalerweise von gelesen ~/.screenrc) (oder eine maßgeschneiderte für bestimmte Anforderungen verwenden).
  • etc/screenrcund etc/etcscreenrc" werden als Beispiele mit Ihrer Bildschirmdistribution ausgeliefert ", der Pfad ist relativ zum Distributionsverzeichnis des Quellcodes. Sie sind wahrscheinlich nicht in macOS enthalten, bei Bedarf können Sie den Quellcode von Apple oder GNU ( screenrc , etcscreenrc ) erhalten.

PS: Manpages sind Teil der Standardinstallation von macOS, es gibt keinen separaten Prozess, um sie zu aktualisieren.

PPS: Neuere Versionen von Standard-Unix/GNU-Tools können normalerweise über Homebrew installiert werden .