HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > РАЗРАБОТКА > Для Администратора > Apple: Mac, OS X, iOS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 02.01.2009, 01:51
Markus Lang
Участник форума
Регистрация: 08.07.2008
Сообщений: 267
Провел на форуме:
76171

Репутация: 0
По умолчанию

Ни для кого не секрет, что Mac OS X базируется на BSD, и, как следствие, получила в наследство полный комплект BSD-шных command line утилит, таких как ls, find, xargs, и многие другие. Они хорошие и правильные, и использовать их вполне можно - однако если вы долго использовали Linux, наверняка вы привыкли к GNU версиям этих утилит, то есть, к примеру, --длинным-аргументам, нормальной опции --help - ну и вообще выработали определенные привычки. К числу таких людей принадлежу и я, и когда мне понадобилось набрать пару десятков команд в Terminal.app, через 10 минут я начал читать man, что не способствовало производительности труда.
Несколько позже я подумал - а почему, собственно, я не могу использоваться GNU версии утилит - только потому, что они не поставляются с системой? Нет, это - не UNIX way!

Несколько минут поиска подтвердили мои подозрения, и требуемые мне версии утилит я нашел на




Для просмотра скрытого содержимого необходимо иметь 1 сообщение, у вас 0 сообщений.


Теперь вопрос заключался в том, как их установить.
В целом, у меня было два варианта:

1. Собрать их из исходников самостоятельно

2. Более цивилизованный - воспользоваться MacPorts, который представляет вполне нормальный менеджер пакетов

Я предпочел использовать второй метод, хотя это - личное дело каждого
Итак, краткую инструкцию по установке MacPort можно найти




Для просмотра скрытого содержимого необходимо иметь 1 сообщение, у вас 0 сообщений.


- процесс предельно простой и понятный, необходимо лишь иметь установленные Apple Developer Tools (xcode в частности).
После того, как MacPort установлен, в простейшем случае требуется выполнить всего одну команду в терминале:
Цитата:

sudo port install coreutils

Почему в простейшем случае? Все дело в том, что MacPort по умолчанию не перезаписывает файловые утилиты, и устанавливает свои версии в отдельную директорию с другим именем:
Цитата:

/opt/local/bin/gls вместо /usr/bin/ls
/opt/local/bin/gfind вместо /usr/bin/find
...

Решить эту проблему можно несколькими способами, выбрать конкретный - дело каждого, я же их всего лишь перечислю.

1. Самый простой - устанавливать coreutils с опцией with_default_names:
Цитата:

sudo port install coreutils +with_default_names

В этом случае утилиты по умолчанию будут перезаписаны. Я бы не рекомендовал использовать этот способ, так как система в целом может не оценить, если системные утилиты будут заменены пусть и на совместимые, но все же - другие программы.

2. Опция вторая - переименовать утилиты по умолчанию, и добавить линки на новые программы:
Цитата:

mv /usr/bin/ls /usr/bin/mls

ln /opt/local/bin/gls /usr/bin/ls

В этом случае исходные версии утилит будут доступны по имени с префиксом "m". Тоже не самый лучший способ, так как по /usr/bin/ls все без исключения программы получат GNU-версию утилиты

3. Третий способ - идеологически наиболее выдержанный. Он заключается в том, что ссылки создаются без префикса "g", но в /opt/local/bin
Цитата:

ln /opt/local/bin/gls /opt/local/bin/ls

после чего в вашем локальном ~/.bashrc вы добавляете в PATH этот путь перед /usr/bin:
Цитата:

export PATH=/opt/local/bin:$PATH

Как вариант, можно создавать линки вообще в отдельной директории, и перед $PATH прописать именно ее. В этом случае, только вы, и только работая с вашим любимым шеллом (который, кстати, тоже можно установить из macport) будете использовать GNU версии утилит. Все же остальные программы и люди даже не будут догадываться об их существовании, и будут использовать стандартные BSD-совместимые fileutils.

4. Четвертый вариант - сделать alias:
Цитата:

alias ls='/opt/local/bin/gls'

и добавить это в ваш ~/.bashrc

Таким образом, мы получаем полностью GNU-версию командных утилит - что будет очень удобно линуксоидам, которые по долгу службы или душевному позыву используют Mac.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.