nix-alien安装指南:从零开始在NixOS和Home-Manager中配置

发布时间:2026/7/6 18:00:03
nix-alien安装指南:从零开始在NixOS和Home-Manager中配置 nix-alien安装指南从零开始在NixOS和Home-Manager中配置【免费下载链接】nix-alienRun unpatched binaries on Nix/NixOS项目地址: https://gitcode.com/gh_mirrors/ni/nix-aliennix-alien是一款强大的工具能够帮助用户在Nix/NixOS系统上运行未经过补丁处理的二进制文件轻松解决“bash: ./myapp: No such file or directory”这类常见问题。通过自动下载必要的依赖项它让在NixOS环境中运行各种二进制程序变得简单高效。 为什么选择nix-alien在NixOS系统中由于其独特的文件系统结构直接运行外部二进制文件常常会遇到依赖缺失的问题。nix-alien通过以下核心功能解决这一痛点自动依赖解析自动识别二进制文件所需的共享库依赖FHS环境模拟创建兼容FHS标准的运行环境灵活的运行模式支持直接运行、生成nix-ld配置或仅列出所需库文件主要命令包括$ nix-alien myapp # 在FHS环境中运行二进制文件 $ nix-alien-ld myapp # 使用nix-ld运行二进制文件 $ nix-alien-find-libs myapp # 列出二进制文件所需的所有库 快速开始无需安装即可体验如果你只是想快速尝试nix-alien的功能无需完整安装可直接通过nix命令运行$ nix --extra-experimental-features nix-command flakes run github:thiagokokada/nix-alien -- ~/myapp对于需要OpenGL支持的程序如Blender可以配合nixGL使用$ nix --extra-experimental-features nix-command flakes run --impure github:guibou/nixGL --override-input nixpkgs nixpkgs/nixos-unstable -- nix run github:thiagokokada/nix-alien -- blender NixOS系统安装方法传统配置方式创建/etc/nixos/nix-alien.nix文件添加以下内容{ ... }: let nix-alien-pkgs import ( builtins.fetchTarball https://github.com/thiagokokada/nix-alien/tarball/master ) { }; in { environment.systemPackages with nix-alien-pkgs; [ nix-alien ]; # 可选启用nix-ld支持nix-alien-ld命令需要 programs.nix-ld.enable true; }将该文件添加到/etc/nixos/configuration.nix的imports部分imports [ ./nix-alien.nix # 其他配置文件... ];应用配置$ sudo nixos-rebuild switchFlakes配置方式如果你使用Flakes可以将以下配置添加到你的flake.nix文件中{ description nix-alien-on-nixos; inputs.nixpkgs.url github:NixOS/nixpkgs; inputs.nix-alien.url github:thiagokokada/nix-alien; outputs { self, nixpkgs, nix-alien }: { nixosConfigurations.nix-alien-desktop nixpkgs.lib.nixosSystem rec { system x86_64-linux; # 或 aarch64-linux specialArgs { inherit self system; }; modules [ ({ self, system, ... }: { environment.systemPackages with self.inputs.nix-alien.packages.${system}; [ nix-alien ]; # 可选启用nix-ld支持 programs.nix-ld.enable true; }) ]; }; }; }或者使用overlay方式可能减少/nix/store大小但兼容性可能受影响{ description nix-alien-on-nixos; inputs.nixpkgs.url github:NixOS/nixpkgs; inputs.nix-alien.url github:thiagokokada/nix-alien; outputs { self, nixpkgs, nix-alien }: { nixosConfigurations.nix-alien-desktop nixpkgs.lib.nixosSystem { system x86_64-linux; # 或 aarch64-linux specialArgs { inherit self; }; modules [ ({ self, ... }: { nixpkgs.overlays [ self.inputs.nix-alien.overlays.default ]; environment.systemPackages with pkgs; [ nix-alien ]; # 可选启用nix-ld支持 programs.nix-ld.enable true; }) ]; }; }; } Home-Manager安装方法传统配置方式在你的Home-Manager配置文件中添加{ ... }: let nix-alien-pkgs import ( builtins.fetchTarball https://github.com/thiagokokada/nix-alien/tarball/master ) { }; in { # ...其他配置 home.packages with nix-alien-pkgs; [ nix-alien ]; }Flakes配置方式如果你使用Home-Manager with Flakes可以这样配置{ description nix-alien-on-home-manager; inputs.nixpkgs.url github:NixOS/nixpkgs; inputs.home-manager.url github:nix-community/home-manager; inputs.nix-alien.url github:thiagokokada/nix-alien; outputs { self, nixpkgs, home-manager, nix-alien }: let system x86_64-linux; # 或 aarch64-linux pkgs import nixpkgs { inherit system; }; in { homeConfigurations.nix-alien-home home-manager.lib.homeManagerConfiguration rec { inherit pkgs; extraSpecialArgs { inherit self system; }; modules [ ({ self, system, ... }: { home.packages with self.inputs.nix-alien.packages.${system}; [ nix-alien ]; }) ]; }; }; } 基本使用方法安装完成后使用nix-alien非常简单基本运行方式$ nix-alien ~/myapp传递参数给应用程序$ nix-alien ~/myapp -- --foo bar使用nix-ld模式需提前启用nix-ld$ nix-alien-ld ~/myapp仅列出所需库文件$ nix-alien-find-libs ~/myapp强制重新创建配置文件$ nix-alien --recreate ~/myapp⚠️ 注意事项与限制动态加载库问题使用dlopen动态加载的库可能无法自动检测可通过-l或-p参数手动添加$ nix-alien -l libGL.so.1 -l libz.so.1 ~/myapp # 添加特定库 $ nix-alien -p libGL -p zlib ~/myapp # 添加特定包缓存机制配置文件会缓存在$XDG_CACHE_HOME/nix-alien/path-uuid/目录下基于二进制文件的绝对路径Flakes支持可使用--flake标志创建和使用flake.nix文件实验性功能命令帮助所有命令都支持--help参数查看详细用法$ nix-alien --help通过本指南你应该已经掌握了在NixOS和Home-Manager中安装和配置nix-alien的全部方法。无论你是NixOS新手还是有经验的用户nix-alien都能极大简化在NixOS上运行外部二进制文件的过程让你的NixOS体验更加顺畅【免费下载链接】nix-alienRun unpatched binaries on Nix/NixOS项目地址: https://gitcode.com/gh_mirrors/ni/nix-alien创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考