我正在使用阿奇。昨晚我开始安装一个仓库大小约为 2GB 的软件包,但我的互联网连接非常慢,所以我让它运行了一夜。它完成了下载,但在 sudo 密码提示时超时。
通常我会简单地重新运行它并让它完成它的工作,但是当我尝试这样做时,安装失败,因为 yay 的缓存所在的分区已满,因此无法在那里构建包。显然,无论超时如何,这种情况都会发生。
我很好奇是否可以将下载的存储库移动到不同的分区,并告诉 yay 从中断的地方继续,或者,我是否可以手动完成构建而不破坏任何内容(例如 yay 对已安装软件包的感知)。
我用谷歌搜索了一下,找到了这个--builddir
标志,所以我尝试简单地在另一个分区上给它一个备用构建目录。这符合我的预期,但仍然需要重新下载所有内容。
因此,我中止了它,并将包存储库(隔夜下载的那个)复制到该目录,然后再次运行 yay,希望它能够识别该存储库并从中断处继续。但它很困惑,因为分支名称与目录名称相同:
error resetting <my_package>: fatal: ambiguous argument 'HEAD': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
最后,我尝试通过在替代 builddir 中运行来手动运行安装makepkg -si
,但出现以下错误:
ERROR: /path/to/builddir/package is not a clone of git://<url_to_package>
Aborting...
我将删除所有内容并将其重新下载到备用构建目录,但我很好奇安装软件包而不重新下载所有内容(如果我真的需要的话)的最佳方法是什么。
答案1
git repo 副本只是一个目录。
gnumv
可以将目录移动到新分区,因此只需使用它即可。