Как установить двоичный файл, установленный диспетчером пакетов по умолчанию?

Я установил новую версию tcpdump через MacPorts и хотел бы сделать ее бинарным по умолчанию.

 $ which -a tcpdump /usr/sbin/tcpdump /opt/local/sbin/tcpdump 

На данный момент я устанавливаю alias , но это, конечно, не мешает man показывать более старую документацию.

2 Solutions collect form web for “Как установить двоичный файл, установленный диспетчером пакетов по умолчанию?”

Вам нужно будет настроить PATH среды PATH и MANPATH чтобы перечислить пути MacPorts перед поставщиками. Для bash попробуйте что-то вроде следующего в вашем .bashrc (или, возможно, также .bash_profile ), а затем exec bash чтобы перезагрузить запущенную оболочку:

 export MANPATH=/opt/local/share/man:$MANPATH 

Другими полезными командами могут быть то, что представляет собой текущая MANPATH , и найти все возможные места, в которых MacPorts скрывает справочные страницы (не все могут быть man-страницами, хотя у правильных должны быть man[0-9] subdirs …) :

 echo $MANPATH find /opt -type d -name man 

PATH аналогичен, в основном:

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

должен быть самым простым вариантом, но опять же, проверьте с помощью exec bash и echo $PATH

Однако /usr/libexec/path_helper , что Apple имеет сценарий /usr/libexec/path_helper который запускается из глобальных файлов rc ( grep -l path_helper /etc/* 2>/dev/null ). Ваши настройки должны произойти после того, как эта программа изменит PATH и MANPATH , так как иначе path_helper сбросит path_helper на то, что Apple устанавливает по умолчанию. В качестве отправной точки можно использовать выход path_helper :

 /usr/libexec/path_helper -s >> ~/.bashrc 

А затем отредактируйте эти строки, чтобы добавить нужные вам пути в том порядке, в котором вы хотите. (Не используйте просто > как это скроет ваш .bashrc файл, >> добавит …)

В OS X 10.8.5 , bash 3.2.53(1) , MacPorts 2.3.4 вы фактически ничего не должны делать.

Я не знаю, почему это не сработало. Значение PATH может быть как-то сохранено и не обновлено (подробнее об этом ниже).

Я пытался

· MANPATH как было предложено, но это не сработало. Из man man-страницы: "It overrides the configuration file and the automatic search path" .

· export PATH из моего (глобального) профиля с помощью каталогов диспетчера пакетов. Это префикс их трижды и суффикс их один раз, и он установил новые бинарные / man-страницы по умолчанию, но мне было любопытно этот новый более длинный состав PATH (старое значение имело все каталоги только один раз, но в другом порядке, по умолчанию ОС по умолчанию , затем менеджер пакетов).

Для этой темы проверьте в SU, где $ PATH устанавливается в OS X 10.6 Snow Leopard? ,

Оказывается, установщик MacPorts добавляет каталоги в ~/.profile .

 # MacPorts Installer addition on 2015-10-10_at_20:55:20: adding an appropriate PATH variable for use with MacPorts. export PATH="/opt/local/bin:/opt/local/sbin:$PATH" # Finished adapting your PATH environment variable for use with MacPorts. 

У меня было это несколько раз, поэтому я продолжил прокомментировать все, кроме последнего. Это привело к чистой PATH .

Но как man действительно получает новую документацию?

В разделе SEARCH PATH FOR MANUAL PAGES :

 In addition, for each directory in the command search path (we'll call it a "command directory") for which you do not have a MANPATH_MAP statement, man automatically looks for a manual page directory "nearby" namely as a subdirectory in the command directory itself or in the parent directory of the command directory. You can disable the automatic "nearby" searches by including a NOAUTOPATH statement in /private/etc/man.conf. 

Я подтвердил это, временно предоставив NOAUTOPATH .

пример

 $ type tcpdump tcpdump is /opt/local/sbin/tcpdump $ ll -d /opt/local/man lrwxr-xr-x 1 root admin 9 Oct 10 20:55:20 2015 /opt/local/man -> share/man 

Для других менеджеров пакетов YMMV, но не так много, я полагаю.

  • Как подключиться к файлу Windows?
  • Получение g ++ для работы на Mac с Xcode
  • Как измерить изменения в файловой системе, выполненные определенным приложением?
  • Невозможно использовать почтовые защищенные порты
  • Верните имя пользователя, который только что вошел в систему в сценарии входа в систему
  • Не может заставить Dnsmasq работать в Сьерре (для местного развития)
  • Установите Arch Linux на MBP и удалите Mac OS
  • OSX 'env python' возвращает другой интерпретатор, чем 'python'
  • Планирование cronjobs в указанное время
  • Как заставить двинуть что-то, когда sudo mv -f не работает?
  • Sed и BBedit Html
  • Отобразить имя китайской машины в командной строке
  • Interesting Posts

    usbfs: процесс 25093 (пул) не требовал интерфейса 0 перед использованием

    Печать нескольких шаблонов поиска в одной строке + обработка текста

    Сценарий внешнего монитора стал ненадежным

    мы можем автоматически подождать требуемое время для smartmontools / smartctl?

    Как убедиться, что основной / внешний IP-адрес не зависит от типа / имени сетевого устройства

    Понимание этой конфигурации http-прокси iptables

    Как я могу переместить мой / загрузочный раздел?

    После сбоев и блокировок последовательного порта ttyUSB0 требуется перезагрузка компьютера

    Использование bash для переформатирования «#include» в списке файлов с использованием regex

    Использование TCP_DEFER_ACCEPT в реальном мире?

    Сделать RAID над NFS?

    Есть ли способ манипулировать порядком аргументов stdin при использовании xargs, так же, как awk как $ 0, $ 1, $ 2 и т. Д.?

    Почему команда rename не работает так, как ожидалось?

    Не удалось расшифровать раздел LUKS

    Использовать SWAP в качестве дискового кеша в Linux

    Linux и Unix - лучшая ОС в мире.