NixOS系统下Docker Compose安装失败求助
解决NixOS上Docker Compose的安装问题
兄弟,黑客松熬到凌晨太拼了!先给你捋捋NixOS上装Docker Compose的正确姿势——毕竟NixOS的包管理逻辑和普通Linux发行版不一样,直接用curl扔二进制文件到/usr/bin很容易踩坑,咱们一步步来:
方法一:通过系统配置安装(推荐,符合NixOS最佳实践)
NixOS是声明式配置的系统,通过配置文件装包最稳妥:
- 打开系统配置文件(一般是
/etc/nixos/configuration.nix),用你顺手的编辑器就行,比如vim或者nano - 在
environment.systemPackages列表里加上docker-compose,同时别忘了启用Docker服务(如果还没开的话),示例配置片段:
services.docker.enable = true; # 启用Docker服务 environment.systemPackages = with pkgs; [ # 这里可以留你已有的其他包 docker-compose ];
- 保存配置后,跑系统更新命令让配置生效:
sudo nixos-rebuild switch
方法二:用nix-env快速安装(适合临时需求)
如果不想改系统配置,也可以给当前用户单独安装:
nix-env -iA nixos.docker-compose
装完重启下终端,就能直接用docker-compose命令了。
为啥你之前的curl方法不行?
NixOS的/usr/bin其实是指向Nix存储库的符号链接,手动放文件进去系统根本不认;而且普通的Docker Compose二进制依赖的库路径和NixOS的环境不兼容,下载下来的文件找不到依赖,自然跑不起来。
要是你非得手动装二进制(真心不推荐,黑客松时间宝贵),得下载静态编译版本,放到/usr/local/bin(这个目录是允许手动写入的):
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
最后测试下:输入docker-compose --version,能输出版本号就搞定了!赶紧趁日出前休息会儿,养足精神搞黑客松~
内容的提问来源于stack exchange,提问作者Casey
相关产品推荐
相关产品推荐

