文件名称:nix-ld:在NixOS上运行未修补的动态二进制文件
文件大小:152KB
文件格式:ZIP
更新时间:2024-04-09 16:48:43
C
nix-ld 在NixOS上运行未修补的动态二进制文件。未为NixOS构建的预编译二进制文件通常具有所谓的链接加载器硬编码。例如,在Linux / x86_64上,对于glibc,这是/lib64/ld-linux-x86-64.so.2 。另一方面,NixOS通常在nix存储区的glibc软件包中具有其动态链接器,因此无法运行这些二进制文件。 Nix-ld为此类二进制文件提供了填充层。它安装在其他Linux发行版安装其链接加载器的位置,即/lib64/ld-linux-x86-64.so.2 ,然后按环境变量NIX_LD中的指定链式加载实际的链接加载器。此外,它还接受NIX_LD_LIBRARY_PATH中库查找路径的逗号分隔路径。在将执行传递给实际的ld之前,此环境变量将被重写为LD_LIBRARY_PATH 。这使您可以指定可执行文件执行所需的其他库。 安装 $ sudo nix-c
【文件预览】:
nix-ld-main
----.gitignore(480B)
----nixos-test.nix(428B)
----nix-ld.nix(972B)
----src()
--------strerror.h(4KB)
--------nix-ld.c(12KB)
--------mmap.h(714B)
--------stdint()
----config.h.in(46B)
----default.nix(65B)
----flake.lock(974B)
----LICENSE(1KB)
----nixos-example.nix(292B)
----.github()
--------workflows()
--------dependabot.yml(118B)
----meson.build(2KB)
----examples()
--------zoom.nix(1KB)
--------masterpdfeditor.nix(694B)
----README.md(3KB)
----vendor()
--------printf()
--------nolibc()
----meson_options.txt(312B)
----flake.nix(508B)
----modules()
--------nix-ld.nix(175B)
----test()
--------example-bin.c(67B)
--------meson.build(954B)
--------example-lib.c(0B)