Давайте начнем с этой последней части вопроса:
Или HomeBrew только для Mac OS?
Метка времени Stack Overflow показывает, что этот вопрос был задан 7 марта 2019 года. Незадолго до этого разумным ответом на это было бы «да, Homebrew предназначен для macOS, но Linuxbrew - это форк Homebrew, который делает что означает название: модифицирует Homebrew для работы в Linux ».
Однако 2 февраля 2019 года - чуть более чем за месяц до того, как был задан вопрос - Homebrew анонсировал версию 2.0.0. В объявлении в своем блоге они открыли это предложение:
Сегодня я хотел бы объявить Homebrew 2.0.0. Наиболее значимым
Изменения, начиная с 1.9.0, являются официальной поддержкой для Linux и Windows 10
(с подсистемой Windows для Linux), запуск brew cleanup выполняется
автоматически, больше никаких опций в Homebrew / homebrew-core и удалении
поддержки OS X Mountain Lion (10.8) и старше.
и дальнейшее объяснение:
Homebrew в Linux ранее назывался «Linuxbrew». Вы можете установить
это в вашем домашнем каталоге, поэтому он не требует sudo, и использовать его для
установить программное обеспечение, которое делает менеджер пакетов вашего хост-дистрибутива
не предоставлять. Homebrew в Linux использует собственный репозиторий для формул:
Homebrew / linuxbrew-жильный
https://brew.sh/2019/02/02/homebrew-2.0.0/
Затем, 20 февраля 2019 года, файл README.md, это сообщение было добавлено в начало файла README.md в корне репозитория Linuxbrew github:
Linuxbrew был объединен с Homebrew
Linuxbrew / brew был объединен с
Homebrew / варка ! Существующий
Установки Linuxbrew будут автоматически перенесены на Homebrew.
Linuxbrew / brew больше не будет обновляться. См. Доморощенный
документация по Linuxbrew и
Доморощенный 2.0.0 блог
почта .
https://github.com/Linuxbrew/brew/pull/942/files
Короче говоря, да. До того, как этот вопрос был опубликован, Homebrew официально поддерживает Linux. Debian GNU / Linux version 9, конкретный дистрибутив, упомянутый в вопросе, включен в этот список. Но прежде чем вы сможете использовать его для установки python, вам, скорее всего, нужно будет установить саму Homebrew, поскольку по умолчанию он не установлен в системе Debian.
Debian 9 даже включает в себя пакет 'linuxbrew-wrapper', который был бы собран задолго до слияния linuxbrew с homebrew.
https://packages.debian.org/stretch/linuxbrew-wrapper
Будет ли это работать хорошо, учитывая слияние linuxbrew и homebrew? Ну, передо мной стоит современная VM Debian 9, так что давайте попробуем:
$ sudo apt install linuxbrew-wrapper
[...]
The following additional packages will be installed:
fonts-lato libruby2.3 rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit
ruby2.3 rubygems-integration zip
Suggested packages:
ri ruby-dev bundler
The following NEW packages will be installed:
fonts-lato libruby2.3 linuxbrew-wrapper rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet ruby-power-assert
ruby-test-unit ruby2.3 rubygems-integration zip
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,447 kB of archives.
After this operation, 27.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
[...]
$
Так оно сейчас установлено? Давайте спросим dpkg:
$ dpkg --status linuxbrew-wrapper
Package: linuxbrew-wrapper
Status: install ok installed
[...]
Description: Homebrew package manager for Linux
Linuxbrew is a fork of Homebrew, the Mac OS package manager, for Linux.
[...]
This package provides Linuxbrew install scripts instead of linuxbrew itself.
Homepage: http://linuxbrew.sh/
Таким образом, он установил пакет, но пакет является «оболочкой» со сценариями установки, и у пакета все еще есть старое описание linuxbrew. Что произойдет, если мы попытаемся запустить brew
?
$ type brew
brew is /usr/bin/brew
$ brew
========================================================================
For the convenience of using linuxbrew it is recommended to update the
following environment variables after installing linuxbrew.
PATH, MANPATH, INFOPATH
Set HOMEBREW_BOTTLE_DOMAIN environment variable if you prefer some
homebrew mirror as your upstream.
(example: /usr/share/doc/linuxbrew-wrapper/examples/profile)
========================================================================
==> This script will install:
/home/parallels/.linuxbrew/bin/brew
/home/parallels/.linuxbrew/Library/...
/home/parallels/.linuxbrew/share/doc/homebrew
/home/parallels/.linuxbrew/share/man/man1/brew.1
/home/parallels/.linuxbrew/share/zsh/site-functions/_brew
/home/parallels/.linuxbrew/etc/bash_completion.d/brew
/home/parallels/.cache/Homebrew/
Press RETURN to continue or any other key to abort
==> Downloading and installing Linuxbrew...
[...]
==> Migrating from Linuxbrew/brew to Homebrew/brew
Linuxbrew/brew has been merged into Homebrew/brew!
Linuxbrew/brew will no longer be updated.
Your git remote has been changed from
https://github.com/Linuxbrew/brew
to https://github.com/Homebrew/brew
See the blog post at https://brew.sh/2019/02/02/homebrew-2.0.0/
Updating Homebrew...
[...]
==> Tapping homebrew/core
Cloning into '/home/parallels/.linuxbrew/Library/Taps/homebrew/homebrew-core'...
[...]
Warning: /home/parallels/.linuxbrew/bin is not in your PATH.
==> Installation successful!
==> Next steps
Install the Linuxbrew dependencies:
Debian, Ubuntu, etc.:
`sudo apt-get install build-essential`
Fedora, Red Hat, CentOS, etc.:
`sudo yum groupinstall 'Development Tools'`
See http://linuxbrew.sh/#dependencies for more information.
Add to your ~/.bash_profile by running
echo 'export PATH="/home/parallels/.linuxbrew/bin:$PATH"' >>~/.bash_profile
echo 'export MANPATH="/home/parallels/.linuxbrew/share/man:$MANPATH"' >>~/.bash_profile
echo 'export INFOPATH="/home/parallels/.linuxbrew/share/info:$INFOPATH"' >>~/.bash_profile
We recommend you install GCC by running `brew install gcc`.
Run `brew help` to get started
Further documentation: https://git.io/brew-docs
==> Homebrew has enabled anonymous aggregate user behaviour analytics
Read the analytics documentation (and how to opt-out) here:
https://git.io/brew-analytics
Homebrew 2.0.6
Homebrew/linuxbrew-core (git revision 69e4; last commit 2019-03-31)
Круто, он автоматически обновился до перехода с Linuxbrew на Homebrew. Примечательно, что он по-прежнему использует имя каталога ~/.linuxbrew
для хранения своих файлов. Все, что нам нужно сделать для завершения установки:
Установите все apt-зависимости, упомянутые в результатах установки. Homebrew строит вещи из исходного кода, и ваш дистрибутив Linux может предоставить большую часть нужного набора инструментов разработки.
Обновление некоторых переменных окружения 'path'. Homebrew добавляет новое расположение в вашей файловой системе для установленного программного обеспечения, отдельно от таких мест, как / bin и / usr / bin, поскольку менеджер пакетов ОС управляет содержимым этих каталогов. Добавление места установки Homebrew к этим путям позволяет найти программное обеспечение, установленное Hombrew.
brew install gcc
.Хотя они просили, чтобы большая часть инструментария разработки была предоставлена вашей ОС, они, очевидно, решили, что важно попросить вас установить компилятор, управляемый brew.Это имеет некоторый смысл, поскольку компилятор, используемый на вашей машине для создания других формул homebrew, предположительно будет синхронизирован с компилятором, с которым он тестирует, когда публикует эти формулы.
Оригиналтакже задан вопрос:
Можете ли вы использовать HomeBrew для установки Python?
Давайте попробуем:
$ brew install python
==> Installing dependencies for python: patchelf, pkg-config, gdbm, openssl, gpatch, ncurses, readline, sqlite, xz, bzip2, libffi and zlib
[...]
==> Installing python
==> Downloading https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
[...]
==> Caveats
Python has been installed as
/home/parallels/.linuxbrew/bin/python3
[...]
See: https://docs.brew.sh/Homebrew-and-Python
[...]
parallels@debian-gnu-linux-vm:~$
Похоже, вы можете!
Итак, почему вы хотите использовать Homebrew для установки python, если вы можете сделать это с помощью apt?Ну, есть целая дискуссия и дебаты по таким вопросам, но вот краткий ответ ...
Python, установленный apt:
$ /usr/bin/python3 --version
Python 3.5.3
Python, установленный homebrew:
$ ~/.linuxbrew/bin/python3 --version
Python 3.7.3
3.7.3 - текущая версия Python на момент написания этой статьи.Пакеты, управляемые Apt, обновляются в масштабе месяцев или лет.Пакеты, управляемые Homebrew, обновляются с временными рамками в днях или часах.
Почему мы видим столь резкое различие между apt и homebrew?Думайте о домашнем пиве как о системе, поставляемой поверх системы, предоставленной apt.Многие утилиты уровня ОС полагаются на установку Python, управляемую apt, и команда Debian старается не сломать их.Но, возможно, вы работаете над чем-то, что нуждается в новых функциях, которые есть только в новейших выпусках Python.Это та проблема, которую Homebrew стремится решить.