Менеджеры пакетов macOS: используете Nix вместе с Homebrew? - PullRequest
0 голосов
/ 26 февраля 2019

Мне было интересно, возникнут ли какие-либо проблемы с установкой Nix и Homebrew в одной и той же системе?

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

Так что, если это так, могу ли я попробовать запустить их оба рядом?Я был бы осторожен, чтобы не устанавливать слишком много одинаковых пакетов из обоих мест (т. Е. Я не установил бы grep, htop или что-либо еще из Homebrew и Nix, и если бы я это сделал, я бы принял меры предосторожности).

Примечание: это не будет постоянным.Я думаю о переходе с Homebrew на Nix (просто чтобы немного перемешать), и я хотел попробовать Nix на своей основной машине, прежде чем делать прыжок (если вообще).Я знаю, что могу просто попробовать Nix на ВМ, но я не получу такой же опыт, если не попробую его на моей основной системе.Поэтому было бы неплохо установить его вдоль Homebrew и дать ему шанс, прежде чем пройти через все усилия по удалению Homebrew и замене всех моих пакетов Homebrew пакетами Nix.

1 Ответ

0 голосов
/ 26 февраля 2019

Да, вы можете установить Nix на стороне Homebrew.

Nix установит все свои пакеты в /nix/store Например, в моей системе NixOS vim в настоящее время установлена ​​в /nix/store/j6nrk9h1rpxrzmccm0yq520ik625gd1q-vim-8.1.0578

Ваша оболочка будет выбирать, использовать ли пакет из Nix или Homebrew, в соответствии с настройкой $PATH.Например, если так получилось, что пути Nix являются первыми, то они будут иметь приоритет.

Примечание

Распространенным источником путаницы является то, что install означает что-то другоена никс.Когда вы устанавливаете пакет, такой как Python, он становится частью среды Nix и, следовательно, может выполняться без указания полного пути;Как и следовало ожидать от любого менеджера пакетов.

Однако, если вы установите пакет, в котором, скажем, есть Python, в качестве зависимости, Python получит установленный , но с большей вероятностью, чемне будет не включен в окружающую среду.Следовательно, он может быть выполнен только по абсолютному пути.

В связанной заметке, по той же причине, если вы устанавливаете библиотеку с Nix, а затем пытаетесь скомпилировать ее вне Nix, она не будет работать;Инструменты сборки не найдут библиотеку.

...