运行 sublime text 3 时没有这样的文件或目录
No such file or directory when running sublime text 3
我需要一些帮助在 Nixos 17.03 中安装 sublime text 3。
我已经从 sublime 下载并解压了 tar 球,这是在我尝试执行 /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
是的,该文件确实存在并且可以执行!但是,错误消息具有误导性。
尝试对该 ELF 文件执行 运行 file
命令:
$ 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
这是通过 运行ning patchelf
在二进制文件上实现的,它是 common trick in Nixpkgs/NixOS to fix binaries.
我需要一些帮助在 Nixos 17.03 中安装 sublime text 3。 我已经从 sublime 下载并解压了 tar 球,这是在我尝试执行 /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
是的,该文件确实存在并且可以执行!但是,错误消息具有误导性。
尝试对该 ELF 文件执行 运行 file
命令:
$ 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
这是通过 运行ning patchelf
在二进制文件上实现的,它是 common trick in Nixpkgs/NixOS to fix binaries.