43 lines
1.3 KiB
Nix
43 lines
1.3 KiB
Nix
{ pkgs ? import <nixpkgs> {} }:
|
|
|
|
pkgs.stdenv.mkDerivation rec {
|
|
pname = "claude-code";
|
|
# 根据您之前的截图,我们锁定该版本以保证可复现性
|
|
version = "2.1.87";
|
|
|
|
# 直接从 GCS Bucket 抓取二进制文件,绕过 bash 脚本
|
|
src = pkgs.fetchurl {
|
|
url = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/${version}/linux-x64/claude";
|
|
|
|
# 提示:首次构建时,您可以将 hash 填为 lib.fakeHash
|
|
# Nix 会报错并告诉您正确的 SHA-256 哈希值,然后将其填入此处即可
|
|
hash = "sha256-saW4lGmGKt7g5NwoyrWoMUvE0BF+Gasmp7f/fOm1m9U=";
|
|
};
|
|
|
|
# 引入 autoPatchelfHook 自动修复 ELF 文件的动态链接
|
|
nativeBuildInputs = [ pkgs.autoPatchelfHook ];
|
|
|
|
# 添加运行该二进制所需的常见 C 标准库
|
|
# 如果运行后提示缺失某些 .so 文件,可在此处追加对应的依赖包
|
|
buildInputs = with pkgs; [
|
|
stdenv.cc.cc.lib
|
|
zlib
|
|
];
|
|
|
|
# 因为下载的是单一二进制文件,不需要解压源码
|
|
dontUnpack = true;
|
|
|
|
# 安装阶段:将其放入 Nix 标准的 bin 目录下
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp $src $out/bin/claude
|
|
chmod +x $out/bin/claude
|
|
'';
|
|
|
|
meta = with pkgs.lib; {
|
|
description = "Claude Code CLI";
|
|
homepage = "https://claude.ai";
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|