本地nix run .可正常运行,远程nix run github仓库报404错误求助
解决
nix run github:myorg/myrepo出现404错误的问题 我有一个包含outputs.apps.default的flake.nix文件,在项目目录执行nix run .时应用正常运行,但在另一台机器执行nix run github:myorg/myrepo时,出现如下错误:
error: unable to download 'https://api.github.com/repos/myorg/myrepo/commits/HEAD': HTTP error 404 response body: { "message": "Not Found", "documentation_url": "https://docs.github.com/rest/commits/commits#get-a-commit" } (use '--show-trace' to show detailed location information)
以下是可能的问题及解决方法:
- 拼写错误:检查
github:myorg/myrepo中的组织名myorg和仓库名myrepo是否与GitHub上的完全一致,大小写、字符拼写都不能错。 - 仓库私有且未认证:如果仓库是私有,目标机器没有GitHub认证的话,Nix无法访问私有仓库API。在目标机器安装
github-cli(nix-env -iA nixpkgs.github-cli),执行gh auth login完成认证后再重试。 - 本地代码未推送:你本地的代码可能还没提交并推送到GitHub远程仓库,导致远程没有对应仓库或HEAD指向的提交。先在本地执行
git add .、git commit、git push,确保远程仓库有对应的内容。 - 默认分支不匹配:如果仓库默认分支不是main或master,Nix默认找HEAD可能失败。可以指定分支运行,比如
nix run github:myorg/myrepo/<你的分支名>,或者在flake配置里明确分支。 - API限流:目标机器频繁访问GitHub API可能触发限流导致404,稍等片刻再尝试即可。
内容的提问来源于stack exchange,提问作者MatrixManAtYrService
相关产品推荐
相关产品推荐

