2015-11-23 7 views
0

Я хочу уточнить относительно зависимостей, установленных Nix. У меня есть установка linux, в которой установлены пакеты D1 и D2. Теперь я устанавливаю Nix, а затем пакет через Nix, который нуждается в зависимостях D1 и D2. Будет ли Nix повторно устанавливать D1 и D2 снова или он будет опускать эти зависимости, поскольку они уже установлены на базальной Linux-системе? Спасибо за ваши ответы.Занимает ли Nix уже установленные пакеты?

ответ

2

Нет, Nix не распознает уже установленные пакеты. Он не может не нарушить одну из основных концепций: Надежность.

Рассмотрите, что произойдет, если базовый системный администратор (который может быть не вами) удаляет один из этих пакетов (D1 или D2): пакет, установленный Nix, который зависит от этих пакетов, больше не будет работать. Или, что более тонко, что происходит, когда зависимости, установленные на базовой системе, обновляются до более новых версий, с которыми программное обеспечение, упакованное Nix, несовместимо?

Там же, однако, так называемый native stdenv, используется на некоторых платформах, которые использует некоторые из инструментов, найденных в родных каталогах (/usr/bin и друзей).

На основании этого вы можете написать свой собственный stdenv, который использует набор инструментов (которые вы можете убедиться, что они будут там и работают) из вашей базовой системы.

+0

Как обмениваться пакетами в системе Nix? Если я установлю 2 приложения gtk, будут ли они устанавливать все библиотеки gtk? То есть, будут ли установлены 2 библиотеки gtk в системе пакетов Nix? – rnso

+0

Они, разумеется, будут делиться своими зависимостями, если только им не нужны разные версии, хотя :) Таким образом, у вас будут только версии для gtk, установленные в вашем случае. –