Что является лучшей практикой при замене системного двоичного кода?

Я работаю над Mac OS X, который поставляется с несколькими бинарниками, в основном расположенными в /usr/bin/ и /usr/sbin/ . Поскольку у него нет собственного менеджера пакетов, такого как некоторые дистрибутивы Linux, я привык управлять своими собственными двоичными файлами, создавать и устанавливать в /usr/local/<package_name>/ .

Таким образом, я могу полностью удалить пакет из своей системы за счет ручного обновления PATH и MANPATH в файле .bashrc .

Вот простой пример:

Mac OS X поставляется с ant 1.7.0, расположенным в /usr/bin . Мне нужно использовать последнюю версию, поэтому я загружаю ее из Apache, а затем разархивирую (создаю) в /usr/local/apache-ant-1.8.2 . Затем я обновляю файл .bashrc с помощью:

 # Mac OS X original PATH PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" # Apache Ant 1.8.2 PATH="$PATH:/usr/local/apache-ant-1.8.2/bin" export PATH 

Я обязательно экспортирую /usr/bin/ и /usr/sbin/ до ant/bin/ потому что часто есть другие двоичные файлы, кроме ant которые я не хочу переопределять.

Проблема в том, что когда я набираю, which ant я получаю /usr/bin/ . Поэтому я переименовываю /usr/bin/ant в /usr/bin/ant-old , чтобы работать с последней сборкой.

Хотя это работает, я хочу знать, есть ли более эффективные подходы к замене системного двоичного файла (главным образом, чтобы избежать последнего переименования).

2 Solutions collect form web for “Что является лучшей практикой при замене системного двоичного кода?”

Замена системного двоичного файла должна быть в последнюю очередь.

Мой совет:

  • Поместите /usr/local/bin впереди /usr/bin и других системных каталогов на PATH .
  • Сделайте /usr/local/bin/ant символическую ссылку на /usr/local/apache-ant-1.8.2/bin/ant .
  • Не включайте /usr/local/apache-ant-1.8.2/bin в PATH вообще.

Сюда:

  • Ваши настройки (в /usr/local/bin ) переопределяют системные значения по умолчанию.
  • Символическая ссылка /usr/local/bin/ant напоминает вам, где вы получили эту версию ant .
  • Если вы хотите проверить что-то с настройкой по умолчанию, просто удалите /usr/local/bin из вашего PATH на время теста.

Обычным методом переопределения системных двоичных файлов является установка новых двоичных файлов в /usr/local/bin (или sbin ), а затем убедитесь, что /usr/local/bin находится до /usr/bin в вашем пути.

Обычно вы делаете это, настраивая пакеты с помощью --prefix=/usr/local , что заставляет их устанавливать свои двоичные файлы в /usr/local/bin , вместо того, чтобы создавать каталог в /usr/local для каждого пакета.

Вы говорите, что есть двоичные файлы в /usr/local/apache-ant-1.8.2/bin которые вы не хотите использовать? В этом случае я бы рекомендовал установить его в /usr/local/apache-ant-1.8.2 (как вы сейчас делаете), но затем ../apache-ant-1.8.2/bin/ant символическую ссылку в /usr/local/bin для ../apache-ant-1.8.2/bin/ant (вместо того, чтобы поставить /usr/local/apache-ant-1.8.2/bin на вашем пути).

  • Содержимое домашнего каталога root в OSX
  • Застрявший процесс: это плохой знак?
  • Является ли вывод grep-файла grep зависимым от порядка шаблонов в файле-шаблоне?
  • скрипт bash для эха wan ip
  • SED на Mac OS X
  • Как получить то же самое с цветами, работающими как на OSX, так и на Ubuntu?
  • Восстановить DD-образ Bootcamp Windows до OSX
  • Всего в `ls -l`
  • Проблемы с правами пользователя в OS X
  • Как подключиться к файлу Windows?
  • Команды MAC bash перестают работать должным образом
  • Как узнать, работает ли dd?
  • Linux и Unix - лучшая ОС в мире.