NixOS

Как использовать диспетчер пакетов NixOS?

Как использовать диспетчер пакетов NixOS?
Менеджер пакетов NixOS - это отдельная система. Вы можете использовать его в любом дистрибутиве Linux.

Что делает диспетчер пакетов NixOS?

Большинство менеджеров пакетов используют файл, содержащий исполняемый файл или исходный код. Затем они вычисляют, что ему нужно в системе, а затем проверяют его наличие. В Nix все работает очень похоже. Большая разница в том, что Nix создает все файлы и при необходимости компилирует их, а затем помещает в одно место; nix-store. Первый вопрос, который у вас может возникнуть: «Не будут ли файлы иметь одинаковые имена??"Система избегает этого, создавая по одному каталогу для каждой версии И именуя все файлы хешем. Чтобы приложение «чувствовало себя как дома», все зависимости затем связываются с их правильными каталогами с помощью обычных символических ссылок. Профиль отслеживает, какую версию запускает каждый пользователь.

Пользовательские установки NixOS

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

Установка для общего распространения

Для большинства распространенных платформ вы можете установить Nix, менеджер пакетов с помощью простого скрипта. Этот скрипт доступен на сайте Nix. Скрипту потребуется доступ пользователя root, но если вы очень заботитесь о безопасности, вам следует прочитать скрипт перед его использованием. Если вы не хотите использовать root в скрипте, просто создайте каталог / nix в вашей системе.

$ sh <(curl -L https://nixos.org/nix/install)

Если у вас нет root-доступа или вы просто очень осторожны, вы можете использовать Nix в качестве менеджера пакетов только для пользователя.

$ sh <(curl -L https://nixos.org/nix/install) -no-daemon

Этот двоичный файл подходит для большинства, если не для всех, дистрибутивов. Платформы - x8664, i?86, aarch64 и x8664-darwin, которые охватывают практически все доступные платформы. Если вы используете какие-либо другие платформы, вы, вероятно, можете использовать исходный код и создать свой собственный. Когда установка будет завершена, у вас будет множество новых команд.

Добавление вашей первой программы в NixOS

Чтобы установить программное обеспечение и указать, когда его можно использовать, у вас есть nix-env. Параметр установки (-i) является наиболее распространенным, поскольку вы используете его всегда и указываете пакет в качестве аргумента.

$ nix-env -i firefox

Это выглядит так же, как в других дистрибутивах, как и аргумент запроса. Однако установка займет некоторое время. Причина в том, что он должен скомпилировать программное обеспечение, если в Nix Cache нет предварительно скомпилированной версии. Добраться до кеша тоже не всегда очень быстро. Есть разница, на которую вы должны обратить внимание; вы можете выбрать версию! Если вам нужна специальная версия, вы должны найти, какие из них доступны, используя регулярные выражения.

$ nix-env -qa 'Firefox.* '

Вы получите список всех доступных пакетов. Вы можете установить его так же, но используя значение в списке.

$ nix-env -install 'firefox-78.4.0ser '-preserve-установлен

Это может произойти, если у вас уже установлена ​​версия. Параметр -preserve-installed не удаляет установленную версию. У вас может получиться две версии с одинаковым приоритетом, что вы можете исправить, установив приоритет.

$ nix-env -set-flag priority 2 'firefox-82.0.2 '

Теперь вы запустите старую версию при следующем запуске Firefox. Чтобы переключить, какой из них вы запускаете, вы можете установить приоритет соответственно. Вы также можете запустить оболочку, чтобы выбрать двоичный файл. Это опция разработчика, а команда - nix-shell.

Обновление NixOS

Если у вас есть коллекция программного обеспечения, вы хотите оставаться в курсе. Как всегда, вы используете ту же команду с аргументом. Но вы также должны постоянно обновлять канал. Команда nix-channel.

$ nix-channel -update

Здесь читаются текущие версии всех доступных пакетов. После этого вы можете начать обновление своего программного обеспечения с помощью nix-env.

$ nix-env -upgrade

Подобное обновление обновит вашу старую версию программного обеспечения. В этом случае старый Firefox будет заменен на новейшую версию. Вы можете не захотеть этого по какой-либо причине, обычно это разработка.

Удаление приложений из NixOS

Удаление приложений также просто, с небольшой оговоркой. Никакие приложения не удаляются командой удаления.

$ nix-env -uninstall 'firefox-78.4.0ser '

Эта команда удалит ссылки на текущую сборку этой версии Firefox. Все файлы всегда останутся на диске. У вас есть эти версии для отката. Откат означает, что вы вернетесь к старой версии. Это может быть полезно, если вы пробовали новейшую версию и у нее возникли непредвиденные проблемы.

$ nix-env -rollback

Вы откатываете все поколение, то есть все программы, которые были обновлены с момента последнего поколения. Опция запускает две команды; этот список, а затем переключается на старые поколения. Все установленные пакеты существуют в поколении на диске.

Откат NixOS и очистка

Функция отката приведет к тому, что старые версии будут использовать много дискового пространства. Вы можете очистить это (вам нужно очистить это!). Когда у вас будет достаточно продолжительный период, по вашему выбору вы также можете очистить эти старые поколения, чтобы сэкономить место на диске.

$ nix-env -delete-generations старый

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

Простой скрипт, чтобы сохранить чистоту ваших поколений, поставляется с установкой диспетчера пакетов Nix.

$ nix-сборщик мусора

Вы также должны настроить сборщик для автоматического запуска с использованием systemd или других систем.

Заключение

Диспетчер пакетов Nix - это мощная система, позволяющая запускать сложные среды разработки на вашем компьютере. Вы также можете использовать его, чтобы поддерживать программное обеспечение в чистоте и иметь простой способ восстановления на новой машине, если произойдет катастрофа, связанная с отказом диска.

Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...