Регулярное выражение GREP, чтобы показать только серийные номера (определенная длина, содержащая альфа и цифру) в файле CSV

В дополнение к «одно- пользовательский режим », я отвечаю для пользователей NixOS . Обычно вы не можете запускать двоичные файлы на NixOS.

Если вы устанавливаете пакеты локально с помощью nix-env -i , все ваши .so файлы хранятся в ~ / .nix-profile / lib / .

Если вы устанавливаете пакеты глобально , указав их в /etc/nixos/configuration.nix , ваши соответствующие файлы .so можно найти в ] / nix / var / nix / profiles / system / sw / lib / . Точнее, только символические ссылки на соответствующие файлы где-то в / nix / store / находятся в этом каталоге.

Итак, если вы устанавливаете пакеты глобально, решение Ивана Захарьящева будет выглядеть так:

$ patchelf --set-interpreter /nix/var/nix/profiles/system/sw/lib/ld-linux-x86-64.so.2 ./YOUREXECUTABLE
$ LD_LIBRARY_PATH=/nix/var/nix/profiles/system/sw/lib ./YOUREXECUTABLE

Чтобы первая команда работала, вам необходимо установить glibc глобально. Вы также можете изменить вторую команду, если у вас есть пакеты, установленные как глобально, так и для каждого пользователя:

$ LD_LIBRARY_PATH=/home/YOURUSERNAME/.nix-profile/lib:/nix/var/nix/profiles/system/sw/lib ./YOUREXECUTABLE

Возможно, необходимый файл .so просто не установлен в системе, поэтому вы есть ошибка типа:

./YOUREXECUTABLE: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

Я не знаю, как найти соответствующий пакет для отсутствующего файла в целом, но вы можете погуглить имя файла .so , установить соответствующий пакет и попробовать чтобы снова запустить исполняемый файл с пользовательским LD_LIBRARY_PATH .

1
05.09.2018, 21:16
0 ответов

Теги

Похожие вопросы