🐃GNU utils
или
🍏MacOs (BSD) built-in
 Публичный пост 4 января 2021  480

... по-умолчанию в вашем PATH?

За время своей профессиональной деятельности я периодически сталкивался с тем, что command line tools в MacOS работают не так, как в Linux. Из того, что сразу могу вспомнить: sed, tar, grep. Хорошо, что сейчас всегда можно просто пошарить диркеторию с докер-контейнером и быстренько выполнить нужный набор команд, ожидающий именно GNU utils.

В клубе я как-то видел комментарий, советующий сделать gnu-sed выбором по-умолчанию. Чтобы каждый раз не настраивать все с нуля, у меня есть репозиторий с дотфайлами и я подумываю сделать GNU utils дефолтными. Но тут возникает вопрос: какие именно? Все возможные или только определенные? И есть ли в такой замене отрицательная сторона вопроса?

Основная тема батла: Какой набор исполныемых файлов по-умолчанию в $PATH в вашей рабочей Apple-машине? Все без изменений (MacOs built-in) или какие-то утилиты обязательно GNU? Какие именно?
Так же можно побатлить по более общему вопросу GNU vs BSD utils?

Связанные посты
3 аргумента и 11 плюсиков
за «🐃GNU utils»
2 аргумента и 9 плюсиков
за «🍏MacOs (BSD) built-in»
за «🍏MacOs (BSD) built-in»

Стараюсь без острой надобности не тащить лишние сущности в систему, и пользоваться тем, что в ней уже есть. Поэтому на линуксе GNU, а во фряхе и на маке — BSD. Заодно не надо думать, что же там дефолтом сделать :)

за «🐃GNU utils»

Проще жить когда у тебя единообразие. А то потом когда какой-то флаг в таре или грепе не подходит сидишь хелпы/маны читаешь или стек оверфлоу гуглишь. Ну такое.

за «🐃GNU utils»
Инструмент должен хорошо лежать в руке

Для тех, кто перекатывается на мак с Linux, и уже привык, лучше не задумываться лишний раз, где-то вообще мышечная память срабатывает, и именно так и должно быть

за «🐃GNU utils»

Ansible, например, не умеет работать с bsd утилитами. Ему нужны gnu. Тоже самое со скриптами.
А каких-то функций в bsd вообще нет. Поэтому поставила coreutils через brew и пользуюсь им по умолчанию.

за «🍏MacOs (BSD) built-in»
Авось что отломается

Позиция больше теоретическая, маками почти не пользуюсь. Но в целом стараюсь минимально модифицировать системы от их дефолтного состояния.

Например, легко представлю, что чей-то чужой скрипт вызывает утилиты с разными наборами флагов на Linux и на macOS, а набор флагов определяет по uname, а не проверяя версию утилиты. Тогда если у меня sed/grep начинает вести себя по-другому, для скрипта это неожиданно, а последствия неизвестны.

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб