Мои справочные страницы macOS устарели?

У меня macOS 10.14.6, «Мохаве». Я учился man screenвносить некоторые изменения в его поведение по умолчанию. Абзацы 2 и 4 ниже CUSTOMIZATIONгласят:

2-й абзац:

При вызове screen он выполняет команды инициализации из файлов "/usr/local/etc/screenrc" и ".screenrc" в домашнем каталоге пользователя. Это "программистские значения по умолчанию", которые можно переопределить следующими способами: для глобального файла screenrc screen ищет переменную окружения $SYS-SCREENRC (эта функция переопределения может быть отключена во время компиляции). Пользовательский файл screenrc ищется в $SCREENRC, затем в $HOME/.screenrc. Параметр командной строки -c имеет приоритет над приведенным выше поиском в $SCREENRC, а затем в $HOME/.screenrc. Параметр командной строки -c имеет приоритет над указанными выше пользовательскими файлами screenrc.

4-й абзац:

В качестве примера с дистрибутивом экрана поставляются два файла конфигурации: «etc/screenrc» и «etc/etcscreenrc». Они содержат ряд полезных примеров для различных команд.

Но, кажется, есть некоторые несоответствия:

  • /usr/local/etcне существует
  • $SYSSCREENRCне определено ( echo $SYSSCREENRC=> ноль)
  • $SCREENRCне определен
  • etc/screenrcне существует (и не существует private/etc/screenrc)
  • etc/etcscreenrcне существует (и не существует private/etc/etcscreenrc)

###Вопрос... Требуется ли в macOS отдельный процесс обновления для получения обновлений инструментов Unix и системных руководств? Например, согласно man screenпакетам Apple screenверсии 4.0.2 (январь 2004 г.) с macOS 10.14.6; этот выпуск был 16 лет назад в этом месяце.

Существует ли вне macOS процесс обновления этой части системы, «санкционированной» Apple? ( Под «санкционированным» я подразумеваю только процедуру, назначенную Apple для поддержания целостности системы. )

Если нет, признала ли Apple эту ситуацию? Этим я только пытаюсь узнать, если я что-то пропустил.

Ответы (2)

Требуется ли в macOS отдельный процесс обновления для получения обновлений инструментов Unix и системных руководств? Например, в соответствии с man screenэкраном пакетов Apple версии 4.0.2 (январь 2004 г.) с macOS 10.14.6; этот выпуск был 16 лет назад в этом месяце.

Нет. Отдельного процесса обновления инструментов и утилит Unix не существует.

Просто очень маловероятно, что инструменты Unix будут обновлены до версий, которые вы видите сейчас.

Почему? Лицензия GPL .

Например screen, она, скорее всего, останется в версии 4.0.2, потому что это была последняя версия, в которой использовалась общедоступная лицензия GPLv2 с менее строгими ограничениями. Версия 4.2 (2007 г.) и последующие выпуски используют GPLv3, которую Apple обычно не хочет соблюдать.

См. Является ли macOS в основном закрытым исходным кодом? для получения дополнительной информации.

Что касается вопросов, которые вы подняли относительно screen:

  • /usr/local/etcэто каталог BSD. Многие macOS основаны на BSD, но этот каталог не используется.
  • Многие переменные среды не устанавливаются ОС, и это довольно распространено во всех ОС; macOS, BSD и даже дистрибутивы Linux, такие как RedHat.
  • Примеры файлов конфигурации, которые не включены в ОС, также распространены.
  • Apple не переписывает справочные страницы для вносимых ими изменений (что позволяет им делать лицензия GPLv2).

Если нет, признала ли Apple эту ситуацию? Этим я только пытаюсь узнать, если я что-то пропустил.

Нечего признавать, поскольку это было сделано Apple намеренно. Если вы хотите «обновиться» до последней версии утилиты Unix, вам нужно либо скомпилировать ее из исходного кода, либо использовать MacPorts или HomeBrew. Однако вам придется управлять их обновлением.

Устарели ли справочные страницы macOS?

Нет. Это правильные справочные страницы для версий утилит, поставляемых с macOS.

Идеальный ответ. Тем не менее, теперь мне интересно, что ответит Apple в 2104 году, когда их спросят, почему они до сих пор выпускают инструменты 100-летней давности со своей блестящей новой ОС... но это требует предположений, поэтому мы не будем об этом говорить!
2104? Меня не будет рядом, так что я позволю кому-то другому побеспокоиться об этом. :-)
Проверьте версию Bash, с которой поставляет Apple. Для меня /bin/bashэто версия 3.2, © 2007. Возможно, лицензия в стиле MIT, используемая Apple zsh, является реальным мотиватором для переключения оболочки по умолчанию.....
@ Z4-tier - я бы с этим полностью согласился. Я действительно касаюсь bash в своем связанном вопросе
Потенциальная ошибка в этом ответе: кажется, что отсутствие у Apple обновлений инструментов Unix с открытым исходным кодом не ограничивается GPL licensed software; по крайней мере, некоторые BSD-licensed softwareв MacOS тоже не обновляются.
@Seamus - я прочитал ваш ответ, и за него следует проголосовать против (хотя я этого не сделал), потому что это чистое предположение с вашей стороны, не говоря уже о том, что оно ошибочно. Вы оценили ping из репозитория FreeBSD на GitHub, а не со страницы Apple с открытым исходным кодом для ping . Это собственная версия Apple, модифицированная по сравнению с более ранней версией , которая, кстати, лицензия GPLv2 в то время позволяет им делать это без отправки кода обратно.
Опечатка... лицензия BSD, а не GPL.
@Allan: Ваш комментарий: "I read your answer and it should be down voted...". Это кажется странным комментарием по двум причинам: 1. Вы ответили на вопрос и 2. Я не отправил ответ - только вопрос.

Единственная реальная проблема, которую я вижу здесь, - это упоминание /usr/local/etcна странице руководства. Скорее всего, это просто недосмотр Apple, когда они скопировали справочную страницу 1:1 из дистрибутива. В Мохаве screenсчитывает конфигурацию по умолчанию из /private/etc/screenrc(которая не существует, если вы ее не создадите).

$ 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

Для других предметов

  • переменные среды могут использоваться для указания значений по умолчанию, но они не являются обязательными. Они просто дают вам возможность читать screenrc(общесистемное значение по умолчанию обычно читается из /private/etc/screenrc) или .screenrc(пользовательское значение по умолчанию обычно читается из ~/.screenrc) откуда-то еще (или использовать адаптированное для конкретных нужд)
  • etc/screenrcи etc/etcscreenrc« поставляются в качестве примеров с вашим дистрибутивом экрана », путь указан относительно каталога дистрибутива исходного кода. Вероятно, они не включены в macOS, при необходимости вы можете получить исходный код от Apple или GNU ( screenrc , etcscreenrc ).

PS: справочные страницы являются частью стандартной установки macOS, их обновление не требует отдельного процесса.

PPS: Более свежие версии стандартных инструментов Unix/GNU обычно можно установить через Homebrew .