На Mac имеется несколько сторонних менеджеров пакетов для установки дополнительного программного обеспечения. Вот как использовать менеджер пакетов Nix с macOS.
Nix — это менеджер пакетов, который предоставляет контейнерную среду разработки для разных платформ. Подобно контейнерным системам, таким как Docker и Kubernetes, Nix позволяет устанавливать настроенные среды разработки на компьютерах и в сетях с меньшими затратами на настройку и устранением проблем.
Традиционно на Mac пользователи использовали MacPorts или Homebrew для установки сторонних пакетов. Обе системы имеют преимущества и недостатки.
Homebrew пользуется популярностью в сообществе Mac из-за простоты использования и установки: пакеты можно установить из приложения «Терминал» в macOS с помощью всего нескольких команд, а обновления выполняются автоматически и так же просто.
Однако и Homebrew, и MacPorts не обеспечивают переносимости между компьютерами. Вы можете написать сценарии терминала (оболочки) для установки пакетов Homebrew или MacPorts в разных системах, но обслуживание сценариев может стать сложным, и часто бывает сложно написать сценарии, учитывающие все возможные конфигурации компьютера.
Nix решает эту проблему, помещая среды разработки в контейнеры и делая их более переносимыми между системами.
Компромисс, который вы платите за Nix, — это немного более сложная конфигурация и более крутая кривая обучения.
NixOS от NixOS Foundation на самом деле представляет собой несколько вещей: это дистрибутив Linux, использующий менеджер пакетов Nix. Nixpkgs — это коллекция из более чем 80 000 пакетов, которые можно установить с помощью менеджера пакетов Nix.
Для Nix существует три отдельных руководства: руководство Nix, руководство Nixpkgs и руководство NixOS.
Существует также справочное руководство по Nix.
Доступна неофициальная Wiki NixOS, поддерживаемая сообществом, а сайт разработки Nix находится по адресу nix.dev. В Wiki NixOS есть информация о менеджере пакетов, языке Nix, Nixpkgs и самой NixOS.
Существует также язык Nix, который вы можете использовать для создания и копирования частей пакетов для новых установок.
Вероятно, вам захочется прочитать все руководство по Nix, по крайней мере, прежде чем начать установку и использование Nix.
Есть несколько новых терминов, которые вам необходимо понять, чтобы использовать Nix.
Nix основан на декларативном программировании — создании программ, основанных на описании того, что часть программного обеспечения должна делать, а не на том, как это делать. Короче говоря, декларативное программирование пытается избежать программного обеспечения, основанного на состоянии и его изменении для достижения определенного результата.
Выражения. Выражения Nix — это, по сути, подкомпоненты устанавливаемого программного обеспечения, которые предопределены для последующего извлечения и установки. Идея выражений заключается в том, что компонент уже определен, поэтому после установки он работает одинаково во всех системах.
Каждое выражение также имеет путь поиска.
Каналы. Канал Nix — это конкретный путь к одному или нескольким предопределенным выражениям Nix, которые можно удаленно получить и установить. Список официальных каналов можно найти на сайте Channels.nixos.org.
У большинства каналов есть версии. На канал также можно подписаться или отказаться от подписки.
Каждый канал имеет загружаемый контент, который устанавливается вместе с каналом.
Магазин. В отличие от Homebrew и самой UNIX, Nix не устанавливает пакеты в стандартные каталоги UNIX, такие как /usr, /bin, /sbin или /opt.
Вместо этого он создает собственное хранилище — специальный каталог и том, используемый для хранения всех установленных пакетов. Используя хранилище, пакеты Nix становятся гораздо более портативными, поскольку весь магазин можно перемещать как единое целое.
Nix устанавливает файл конфигурации в /etc/nixos/configuration.nix, который обычно невидим, если вы не включите функцию скрытых файлов macOS Finder.
Flakes — это экспериментальная функция Nix, представляющая собой файлы, используемые для определения и управления зависимостями между пакетами. Несмотря на свою популярность, флейки Nix все еще являются экспериментальными и не имеют четкой документации, поэтому используйте их на свой страх и риск.
Вывоз мусора. Как и в некоторых средах программирования, когда вы удаляете пакет Nix, он фактически не удаляется сразу. Для этого запустите сборщик мусора Nix.
Думайте о сборщике мусора как о процессе, который выполняется в фоновом режиме и удаляет все неиспользуемые или устаревшие компоненты, которые больше не нужны.
Многие современные системы используют сборщики мусора, включая виртуальную машину Java, а также среды выполнения Swift и Objective-C от Apple.
Вы можете вызвать сборщик мусора Nix в любое время после установки в Терминале с помощью:
Установка Nix включает в себя несколько инструментов командной строки (CLI), которые можно запустить из приложения «Терминал». К ним относятся:
nix-env — используется для управления пользовательскими средами Nix. nix-build — используется для создания выражений Nix. nix-shell — интерактивная командная среда, основанная на выражениях Nix. nix-store — манипулирует или запрашивает хранилище Nix.
Все эти и другие команды подробно описаны в руководстве Nix.
Пользовательская среда Nix — это просто набор программного обеспечения и инструментов, установленных Nix.
Обычно Nix устанавливается в /nix, но начиная с macOS Catalina корень загрузочного диска macOS доступен только для чтения.
Вместо этого в системах после Catalina Nix создаст новый том для хранения хранилища Nix и смонтирует его как том в скрытой папке macOS Volumes в корне загрузочного диска.
Если у вас есть доступ администратора, установщик запросит у вас разрешение sudo (суперпользователя) при его запуске, чтобы создать новый том.
Чтобы запустить интерактивный установщик Nix в Терминале, введите:
curl -L https://nixos.org/nix/install | sh
Когда программа установки запускается, она выдает вам короткое сообщение о том, что она собирается делать и где что-то будет установлено. Он также создает нового пользователя UNIX и UUID для него, которые используются во время сборки контейнера и пакета Nix.
Установщик Nix сохраняет ссылку на том хранилища Nix в /etc/fstab.
Обратите внимание, что том хранилища Nix монтируется, но не на рабочем столе Finder — вы не увидите его на рабочем столе вашего Mac, но, тем не менее, он все еще там.
Вместо этого Nix монтирует его в корень вашего загрузочного диска в каталоге с именем «Nix Store». Внутри этого каталога есть магазин и папка var.
Папка магазина содержит все пакеты и каналы, загруженные и установленные NIX, папка var содержит папку журнала, а папка nix содержит базу данных, профили, подключение к фоновому демону, пулы пользователей и другие части.
Том хранилища NIX в корне загрузочного диска.
fstab — это файл таблицы файловой системы, который сообщает UNIX, где находятся все файловые системы и их тома.
Когда вы будете готовы продолжить установку, введите пароль администратора в Терминале и нажмите Return.
Вы увидите, как запускается установщик Nix, и при этом он будет описывать, что он создает.
Если установленный Nix имеет доступ sudo, он также попытается добавить некоторые параметры конфигурации к скрытым файлам профиля пользователя на загрузочном диске вашего Mac в папках пользователя и т. д., а именно:
/etc/bashrc /etc/profile.d/nix.sh /etc/zshrc /etc/bash.bashrc /etc/zsh/zshrc
Эти файлы профилей загружаются macOS при входе в систему и содержат переменные среды и пути к установленному программному обеспечению.
Наконец, установщик Nix настраивает фоновый процесс или демон с именем nix-daemon, который в фоновом режиме управляет хранилищем Nix.
После завершения работы установщика вам нужно будет либо выйти из Терминала и снова открыть его, либо открыть новую оболочку Терминала, чтобы Терминал мог загрузить все новые конфигурации Nix.
После завершения работы установщика вы можете инициализировать пакеты Nix по умолчанию и протестировать установку Nix в терминале с помощью:
nix-shell -p nix-info —запустить «nix-info -m»
Вы должны увидеть сообщение о получении путей, а затем список всех пакетов, установленных в локальном хранилище Nix.
В нижней части сообщения вы должны увидеть текущий номер версии Nix и Darwin, имя канала и путь к файлу профиля пакета.
Вы также можете вручную установить любой существующий пакет Nix в Терминале, используя команду nix-env —install, за которой следует имя пакета. Например:
nix-env —установить Firefox
Удаление пакета происходит так же, за исключением того, что вы используете флаг —uninstall для команды nix-env.
Доступно несколько хороших сторонних сайтов Nix — обязательно посетите их.
Zero-to-nix.com — это руководство по использованию Nix, включающее раздел «Быстрый старт» и «Концепции», в которых дается хороший обзор каждой части Nix и того, как они сочетаются друг с другом.
Determinate.systems — это сайт, ориентированный на Nix, который содержит множество учебных пособий по Nix, а также автономный установщик Nix на случай, если вы не хотите использовать установку через терминал.
Книга Nix and Flakes от Райана Ина — это онлайн-руководство и репозиторий GitHub для начинающих, полный полезной информации, связанной с Nix.
Репозиторий nix-darwin содержит все модули, пакеты и документацию для порта Darwin (macOS) менеджера пакетов Nix.
Nixpacks — это утилита, которая может взять любой каталог файлов и поместить его в контейнер для повторного использования.
Как только вы пройдете этап обучения, Nix может оказаться весьма эффективным и полезным. Возможность настраивать и переустанавливать переносимые контейнеры в разных системах очень эффективна.
Вы можете настроить любой набор сред и инструментов, а затем упаковать его для повторного развертывания в большинстве систем.
Возможность создавать собственные пакеты и контейнеры Nix, которые затем можно использовать повторно, экономит много времени, когда вам нужно настроить новую машину.
Основным недостатком Nix как менеджера пакетов является повышенная сложность и необходимость его обучения. Также в настоящее время нет версии для Windows.
Homebrew по-прежнему проще Nix, но, за исключением написания собственных сценариев оболочки для установки, Homebrew не обладает переносимостью. Попытка написать собственные сценарии установки для каждой возможной системы непрактична.
Как только вы изучите и освоите Nix, он станет мощным инструментом в вашем арсенале разработки.
Сегодня Apple анонсировала ряд новых специальных возможностей, которые появятся на iPhone и iPad в составе…
Портретное фото на iPhone 15 Обновление Apple до iOS 17.5 может вызвать проблемы у некоторых…
Сегодня день запуска M4 iPad Pro и M2 iPad Air, поэтому все больше пользователей начинают…
Новый iPad Pro от Apple За тонким корпусом нового iPad Pro скрывается обновленный дизайн, в…
Ряд комментаторов отметили, что обзоры iPad практически не изменились за последние годы. С каждым поколением…
Лучшие альтернативы Magic Keyboard для iPad Magic Keyboard от Apple, вероятно, является самым популярным выбором…