The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..." +1 +/
Сообщение от Аноним (43), 08-Окт-18, 11:22 
Господа, давайте закроем тему, почему хэш перед именем, а не после, навсегда.

Да, вы можете "вырезать" хэш с конца строки "/nix/store/foo-1.2.3-<hash>". Но такая задача не стоит вообще: не возникает необходимости этого делать.

Задача, которая реально стоит - это во время сборки найти в произвольном файле (во всех файлах) ссылки на другие пакеты.

Проще всего это продемонстировать на примере текстовых скриптов, но и бинарные файлы тоже ссылаются на другие пакеты, например:

objdump -p /nix/store/1pfwvyjl6rh57hbcj9w7yb16wb5djjx3-systemd-238/lib/systemd/systemd | grep -F RUNPATH
  RUNPATH              /nix/store/1pfwvyjl6rh57hbcj9w7yb16wb5djjx3-systemd-238/lib/systemd:/nix/store/hs26ajisl0xgb9ihvakmff7i0kjgzb7i-libseccomp-2.3.3-lib/lib:/nix/store/qd072spxcp4dqqjzwdybj59nna2adjmi-util-linux-2.32/lib:/nix/store/nazwqg290a3i5jrvwg8cqvqnh8n8pinf-audit-2.8.3/lib:/nix/store/9y8vpz8kdv463lz7qimapqiak4wh9vnk-kmod-25/lib:/nix/store/av4z4031zmss39xbzzfgkxjj5m7i420y-libapparmor-2.12.0/lib:/nix/store/nfh0wdwg24cf5xk0pw7n8w7m4d57wjs1-linux-pam-1.3.0/lib:/nix/store/93ljbaqhsipwamcn1acrv94jm6rjpcnd-acl-2.2.52/lib:/nix/store/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27/lib

Вот ваша строка: /nix/store/1pfwvyjl6rh57hbcj9w7yb16wb5djjx3-systemd-238/lib/systemd:/nix/store/hs26ajisl0xgb9ihvakmff7i0kjgzb7i-libseccomp-2.3.3-lib/lib:/nix/store/qd072spxcp4dqqjzwdybj59nna2adjmi-util-linux-2.32/lib:/nix/store/nazwqg290a3i5jrvwg8cqvqnh8n8pinf-audit-2.8.3/lib:/nix/store/9y8vpz8kdv463lz7qimapqiak4wh9vnk-kmod-25/lib:/nix/store/av4z4031zmss39xbzzfgkxjj5m7i420y-libapparmor-2.12.0/lib:/nix/store/nfh0wdwg24cf5xk0pw7n8w7m4d57wjs1-linux-pam-1.3.0/lib:/nix/store/93ljbaqhsipwamcn1acrv94jm6rjpcnd-acl-2.2.52/lib:/nix/store/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27/lib

Где здесь конец? Даже в этом простом случае "/83lrbvbmxrgv7iz49mgd42yvhi473xp6-glibc-2.27/lib" где конец? Если вы думаете про "первый слэш", подумайте еще: не все "пакеты" являются директориями, некоторые - простые файлы типа "/nix/store/830rbvbmxrgv7iz49mgd42yvhi473xp6-nginx.conf".

Короче, если ставить хэш "в конце", его просто не найти.
Если же хэш "в начале" (сразу после /nix/store), то всё значительно упрощается: нашли /nix/store, отсчитали n байт. Всё.

Напоследок, вот как работает Никс:

Вход:

```
#!${pkgs.bash}/bin/bash

${pkgs.coreutils}/bin/date -d now +%s
```


Выход:

```
#!/nix/store/8zkg9ac4s4alzyf4a8kfrig1j73z66dw-bash-4.4-p23/bin/bash

/nix/store/afd7zfah20ki5qxzic3z8sizgkmcjwnh-coreutils-8.27/bin/date -d now +%s
```

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск дистрибутива NixOS 18.09, использующего пакетный мене..., opennews, 06-Окт-18, 22:02  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру