LINUX.ORG.RU

История изменений

Исправление kirk_johnson, (текущая версия) :

Нужна чтобы обновление зависимости в том же каталоге не приводило к перезаписи зависимостей в каталогах программ.

У тебя, по хорошему, зависимость вообще не должна обновляться. То есть ты не обновляешь файлы в директории bar-1.0/files, ты ставишь рядом bar-1.0.1/files и во всех программах меняешь симлинки. И только тогда, когда никто больше не использует bar-1.0, ты её удаляешь.

Короче, читай про nix.

P.S.

NixOS основан на диспетчере пакетов Nix, который хранит все пакеты отдельно друг от друга в хранилище пакетов.

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

Следствием этого является то, что NixOS не соответствует стандарту иерархии файловой системы. Единственными исключениями являются symlink /bin/sh для версии bash в менеджере пакетов Nix (например: /nix/store/5rnfzla9kcx4mj5zdc7nlnv8na1najvg-bash-4.3.43/) и, в то время как у NixOS есть каталог /etc для хранения файлов конфигурации всей системы, большинство файлов в этом каталоге являются символическими ссылками на сгенерированные файлы в /nix/store, такие как /nix/store/s2sjbl85xnrc18rl4fhn56irkxqxyk4p-sshd_config. Отказ от использования глобальных каталогов, таких как /bin, позволяет существовать нескольким версиям пакета.

Исправление kirk_johnson, :

Нужна чтобы обновление зависимости в том же каталоге не приводило к перезаписи зависимостей в каталогах программ.

У тебя, по хорошему, зависимость вообще не должна обновляться. То есть ты не обновляешь файлы в директории bar-1.0/files, ты ставишь рядом bar-1.0.1/files и во всех программах меняешь симлинки. И только тогда, когда никто больше не использует bar-1.0, ты её удаляешь.

Короче, читай про nix.

P.S.

NixOS основан на диспетчере пакетов Nix, который хранит все пакеты отдельно друг от друга в хранилище пакетов.

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

Следствием этого является то, что NixOS не соответствует стандарту иерархии файловой системы. Единственными исключениями являются symlink /bin/sh для версии bash в менеджере пакетов Nix (например: /nix/store/5rnfzla9kcx4mj5zdc7nlnv8na1najvg-bash-4.3.43/) и, в то время как у NixOS есть каталог /etc для хранения файлов конфигурации всей системы, большинство файлов в этом каталоге являются символическими ссылками на сгенерированные файлы в /nix/store, такие как /nix/store/s2sjbl85xnrc18rl4fhn56irkxqxyk4p-sshd_config. Отказ от использования глобальных каталогов, таких как /bin, позволяет существовать нескольким версиям пакета. 

Исправление kirk_johnson, :

Нужна чтобы обновление зависимости в том же каталоге не приводило к перезаписи зависимостей в каталогах программ.

У тебя, по хорошему, зависимость вообще не должна обновляться. То есть ты не обновляешь файлы в директории bar-1.0/files, ты ставишь рядом bar-1.0.1/files и во всех программах меняешь симлинки. И только тогда, когда никто больше не использует bar-1.0, ты её удаляешь.

Короче, читай про nix.

Исходная версия kirk_johnson, :

Нужна чтобы обновление зависимости в том же каталоге не приводило к перезаписи зависимостей в каталогах программ.

У тебя, по хорошему, зависимость вообще не должна обновляться. То есть ты не обновляешь файлы в директории bar-1.0/files, ты ставишь рядом bar-1.0.1/files и во всех программах меняешь симлинки. И только тогда, когда никто больше не использует bar-1.0, ты её удаляешь.