Нет такого файла или каталога при запуске возвышенного текста 3

Мне нужна помощь в установке возвышенного текста 3 в Nixos 17.03. Я скачал и распаковал tar-шар из sublime, и это случилось, когда я пытаюсь выполнить /opt/sublime_text/sublime_text:

/opt/sublime_text/sublime_text 
sh: /opt/sublime_text/sublime_text: No such file or directory

Файл существует в правильном месте с разрешениями на запуск.

sh-4.4$ cd /opt/sublime_text/
sh-4.4$ ls -la
totalt 15944
drwxr-xr-x 4 jan users    4096 23 sep  2016 .
drwxr-xr-x 7 jan users    4096 30 apr 23.28 ..
-rw-r--r-- 1 jan users   30118 23 sep  2016 changelog.txt
-rwxr-xr-x 1 jan users  488672 23 sep  2016 crash_reporter
drwxr-xr-x 7 jan users    4096 23 sep  2016 Icon
drwxr-xr-x 2 jan users    4096 23 sep  2016 Packages
-rwxr-xr-x 1 jan users 7883616 23 sep  2016 plugin_host
-rw-r--r-- 1 jan users 2624408 23 sep  2016 python3.3.zip
-rw-r--r-- 1 jan users   28578 23 sep  2016 sublime_plugin.py
-rw-r--r-- 1 jan users   37137 23 sep  2016 sublime.py
-rwxr-xr-x 1 jan users 5200392 23 sep  2016 sublime_text
-rw-r--r-- 1 jan users     532 23 sep  2016 sublime_text.desktop

1 ответ

Решение

Да, файл там существует и является исполняемым! Но сообщение об ошибке вводит в заблуждение.

Попробуй запустить file команда в этом файле ELF: $ file ./sublime_text ./sublime_text: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=e359d67c8f71f88174135aefc069239f64f26c42, stripped Вы видите, это относится к /lib/ld-linux.so.2 библиотека интерпретатора, которой нет в NixOS.

Хотя sublimetext3 упакован в Nixpkgs, и мы видим, что он ссылается на другой интерпретатор: $ file /nix/store/bv5j4qiif1h9db6qcfl9axhv7rvza2b8-sublimetext3-3114-bin/.sublime_text-wrapped /nix/store/bv5j4qiif1h9db6qcfl9axhv7rvza2b8-sublimetext3-3114-bin/.sublime_text-wrapped: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /nix/store/jm1n87rp8vr90j9ahcrfzr57nc2r8vgf-glibc-2.24/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=93b181f0f699bd88a052048070efe8ad6757a6fd, stripped

Это достигается путем запуска patchelf в двоичном файле, что является обычной уловкой в ​​Nixpkgs/NixOS для исправления двоичных файлов.

Другие вопросы по тегам