Как установить устаревшую формулу с помощью Brew?

Используя случай установки Python 2.7.9 вместо последнего 2.7.10, я мог бы просто использовать brew versions python и увидеть все версии формул Python по их фиксации SHA в brew, а затем проверить их чтобы установить определенную версию. Это пример вывода brew versions python:

$ brew versions python
Warning: brew-versions is unsupported and will be removed soon.
You should use the homebrew-versions tap instead:
  https://github.com/Homebrew/homebrew-versions
2.7.9    git checkout 667284f /usr/local/Library/Formula/python.rb
2.7.8    git checkout f26ca5c /usr/local/Library/Formula/python.rb
2.7.7    git checkout d48206e /usr/local/Library/Formula/python.rb
2.7.6    git checkout 3c64184 /usr/local/Library/Formula/python.rb
2.7.5    git checkout a04b443 /usr/local/Library/Formula/python.rb
2.7.3    git checkout 865f763 /usr/local/Library/Formula/python.rb
2.7.4    git checkout 280581d /usr/local/Library/Formula/python.rb
2.7.2    git checkout 97c6869 /usr/local/Library/Formula/python.rb
2.7.1    git checkout 83ed494 /usr/local/Library/Formula/python.rb
2.7      git checkout 1bf3552 /usr/local/Library/Formula/python.rb
2.6.5    git checkout acd49f7 /usr/local/Library/Formula/python.rb
2.6.4    git checkout 843bff9 /usr/local/Library/Formula/python.rb
2.6.3    git checkout 5c6cc64 /usr/local/Library/Formula/python.rb

Но последняя версия brew уже удалила поддержку versions, и я не понимаю, как установить предыдущий Python с помощью https://github.com/Homebrew/homebrew-versions. Как вы на самом деле устанавливаете Python 2.7.9 вместо нового 2.7.10?

Я хотел бы знать, как использовать homebrew-versions вместо более тривиального способа brew versions.

С brew versions я мог бы легко увидеть все версии из этих конкретных формул (посмотрите на приведенные выше версии Python, выплюнув brew versions python). Из doc не существует четкого способа добиться того же результата, что и brew versions python.

Ответы

Ответ 1

homebrew-versions в настоящее время не имеет пакетов Python, поэтому в настоящее время нет способа установить Python 2.7.9 вместо 2.7.10 через его использование. Если в будущем они будут добавлены, они, скорее всего, последуют за версиями файлов там и будут доступны через:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-versions/master/python279.rb`

Если вы используете homebrew/versions, вы можете использовать:

brew search python

чтобы отобразить все доступные пакеты python, которые будут отображать старые версии, такие как homebrew/versions/python279, а затем вы можете установить их, используя:

brew install homebrew/versions/python279

Некоторые альтернативные подходы

Переход на предыдущую версию

Если вы уже установили более старую версию формулы и не удалили ее, вы можете просто переключить символические ссылки на ссылку с помощью команды brew.

brew switch python 2.7.9

Эта команда переключит вас на версию 2.7.9

brew switch python 2.7.10

Это вернет вас к версии 2.7.10

История Формулы GitHub

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

https://github.com/Homebrew/homebrew/commits/master/Library/Formula/<formula>.rb должен передать вас в историю фиксации этой формулы. Для вашего примера установки python 2.7.9 вы бы сделали следующее:

  • Перейдите к https://github.com/Homebrew/homebrew/commits/master/Library/Formula/python.rb
  • Ищите запись с сообщением о фиксации "python 2.7.10"
  • Найдите и скопируйте хеш фиксации записи ниже (1681e19 в этом примере)
  • Введите git checkout 1681e19 /usr/local/Library/Formula/python.rb в терминал

С этого момента вы сделаете все, что обычно делаете, чтобы установить более старую версию python со старым вариантом. Кажется, это все, что делал старый метод.

Ответ 2

Homebrew не поддерживает установку формул из истории git, хотя это возможно. Нет никаких формул python * в клавишах с версией homebrew-версий, потому что я думаю, что они будут много работать, чтобы поддерживать и не обеспечивать максимально возможный пользовательский интерфейс. pyenv - отличный инструмент, который решает множество проблем, связанных с поддержанием нескольких питонов. Там также пользовательский кран со старыми версиями Python; вы можете вносить там формулу 2.7.9.