LINUX.ORG.RU

FHS environment в NixOS и пути

 , ,


0

2

Для установки проприетарной программы сделал такой файлик:

$ cat ansys.nix
{ pkgs ? import <nixpkgs> {} }:

(pkgs.buildFHSUserEnv {
  name = "ansys-env";
  targetPkgs = pkgs: (with pkgs;
    [ udev
      alsaLib
      mesa_glu
      gzip
      coreutils
      bash
      eject
      nano
    ]) ++ (with pkgs.xorg;
    [ libX11
      libXcursor
      libXrandr
    ]);
  multiPkgs = pkgs: (with pkgs;
    [ udev
      alsaLib
      mesa_glu
      coreutils
      bash
      eject
      nano
    ]);
  runScript = "bash";
}).env 

Окружение запускается, но инсталлятор не видит gzip, если прописать

PATH=/bin/gzip ./INSTALL

то высыпаются ошибки о том, что нет uname, sed, и пр. Всё это есть в /bin и в /usr/bin, но установщик этого не видит. Как ему указать на существование /bin (/usr/bin)?

Deleted

Ответ на: комментарий от Black_Shadow

Он у него вот где

[hoodoo@T450s:~]$ which gzip 
/run/current-system/sw/bin/gzip

Но по идее добавлять надо не его. Это нечисто получится.

А билд-тайм зависимости не должны быть buildInputs?

Hoodoo ★★★★★ ()
Ответ на: комментарий от Black_Shadow

whereis gzip
gzip: /nix/store/hh7lbvpqaglx0cmaf0j5gwblg3g80ck6-ansys-env-fhs/usr/bin/gzip

Но, в shell'e он находится просто в /usr/bin/gzip и /bin/gzip.

Deleted ()
Последнее исправление: frigate_freedom (всего исправлений: 1)
Ответ на: комментарий от Hoodoo

А билд-тайм зависимости не должны быть buildInputs?

Насчёт этого не разбирался, взял готовый пример для GOG игр с вики NixOS.

В примере для Android есть

in pkgs.stdenv.mkDerivation {
  name = "android-env-shell";
  nativeBuildInputs = [ fhs ];
  shellHook = "exec android-env";
}

где nativeBuildInputs — это билд-тайм зависимости?

Deleted ()
Последнее исправление: frigate_freedom (всего исправлений: 1)

Простите я данный язык не знаю (nix), и системку такую не видел, даже не знаю как помочь вам, но вот

PATH=/bin/gzip ./INSTALL

это instant death facepalm. Затрудняюсь вообще сказать что данные коды могли бы делать. e.g.


[d_a@home ~]$ PATH=/bin/gzip /bin/bash
bash: tty: команда не найдена
/usr/libexec/grepconf.sh: line 5: grep: команда не найдена
bash: rpm: команда не найдена
bash: rpm: команда не найдена
bash: grep: команда не найдена
bash: grep: команда не найдена

С тем же успехом можно же PATH в 123qwe или пустое значение поставить.

d_a ★★★★★ ()
Ответ на: комментарий от Deleted

Я ещё не разбирался с пакетированием там, просто выглядит странно твой код.

Hoodoo ★★★★★ ()
Ответ на: комментарий от Deleted

Я в Linux не особо разбираюсь

Может попроще тогда начать, там с Gentoo или CRUX, как местные. А то у вашего Никса комьюнити 2,5 пятизвёздочника на лоре, что намекает.

d_a ★★★★★ ()
Последнее исправление: d_a (всего исправлений: 3)
Ответ на: комментарий от d_a

Возможно было бы проще. До NixOS был Slackware и Ubuntu. На github сейчас подсказали использовать steam-run, с ним установщик запустился.

Deleted ()

Не тут то было. Невозможно запустить редактор геометрии. Сначала ругался на отсутствие rpm, он ему нужен был для определения версии glibc. Просто сделал файлик rpm и в нём написал «echo glibc-2.24». Теперь не выдаёт никаких ошибок. Проприетарный софт такой проприетарный.

Если я поставлю куда-нибудь RHEL, под который работа ANSYS сртифицирована, а потом буду запускать его через chroot, всё будет работать так как надо?

Deleted ()
Ответ на: комментарий от Deleted

А в чём ты вообще разбираешься? PATH даже в досе и в винде есть. На чём ты до слаки сидел, на Mac OS Classic? Хрен уж с компами, но если ты во всё так лезешь, не разбираясь, что это и зачем нужно, то странно, как ты вообще выжил до сих пор.

anonymous ()
Ответ на: комментарий от anonymous

:D

Хрен уж с компами, но если ты во всё так лезешь, не разбираясь, что это и зачем нужно, то странно, как ты вообще выжил до сих пор.

Ты предлагаешь сначала изучать тонны документации, а потом ставить дистрибутив на ПК? Это чрезвычайно замедлит весь процесс перехода и обучения.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.