У меня 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 эту ситуацию? Этим я только пытаюсь узнать, если я что-то пропустил.
Требуется ли в 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, но этот каталог не используется.Если нет, признала ли Apple эту ситуацию? Этим я только пытаюсь узнать, если я что-то пропустил.
Нечего признавать, поскольку это было сделано Apple намеренно. Если вы хотите «обновиться» до последней версии утилиты Unix, вам нужно либо скомпилировать ее из исходного кода, либо использовать MacPorts или HomeBrew. Однако вам придется управлять их обновлением.
Нет. Это правильные справочные страницы для версий утилит, поставляемых с macOS.
Единственная реальная проблема, которую я вижу здесь, - это упоминание /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 .
Симус
Аллан
Z4-уровень
/bin/bash
это версия 3.2, © 2007. Возможно, лицензия в стиле MIT, используемая Applezsh
, является реальным мотиватором для переключения оболочки по умолчанию.....Аллан
Симус
GPL licensed software
; по крайней мере, некоторыеBSD-licensed software
в MacOS тоже не обновляются.Аллан
Аллан
Симус
"I read your answer and it should be down voted..."
. Это кажется странным комментарием по двум причинам: 1. Вы ответили на вопрос и 2. Я не отправил ответ - только вопрос.