如何将包的本地 git 存储库移动到另一个 builddir 并跳过重新下载它 yay 或 pacman?

如何将包的本地 git 存储库移动到另一个 builddir 并跳过重新下载它 yay 或 pacman?

我正在使用阿奇。昨晚我开始安装一个仓库大小约为 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可以将目录移动到新分区,因此只需使用它即可。

相关内容