从外部目录调用 makepkg
Calling makepkg from an outer directory
我意识到当我尝试在内部文件中的 PKGBUILD
上调用 makepkg
命令时,例如 makepkg package_name/PKGBUILD
,我收到一条错误消息
==> ERROR: PKGBUILD does not exist.
但是当我将当前目录更改为 PKGBUILD
文件、cd package_name
和 运行 makepkg PKGBUILD
的目录时,我没有遇到任何问题。那么,我必须严格位于 PKGBUILD
文件目录中才能调用 makepkg
是真的吗?
谢谢
好像是这样。如果您正在编写此脚本并希望避免来回切换文件夹,则可以选择使用这样的子 shell
(cd package_name && makepkg PKGBUILD)
完成括号内的操作后,它将把您传送回当前文件夹。
命令 makepkg PKGBUILD
并不像您认为的那样。 makepkg 不 接受 PKGBUILD 的名称作为位置参数,它完全放弃了这一点。
根据联机帮助页,如果您希望指定要使用的 PKGBUILD,则必须使用 -p <buildscript>
选项。同样根据联机帮助页,"The buildscript must be located in the directory makepkg is called from."
$ makepkg -p package_name/PKGBUILD
==> ERROR: package_name/PKGBUILD must be in the current working directory.
如您所见,makepkg 包含的代码可确保您不会尝试做它不允许您做的事情 -- 但您必须 正确使用 makepkg 命令-line 选项以便 makepkg 识别您正在尝试做什么并告诉您您做错了什么。
我意识到当我尝试在内部文件中的 PKGBUILD
上调用 makepkg
命令时,例如 makepkg package_name/PKGBUILD
,我收到一条错误消息
==> ERROR: PKGBUILD does not exist.
但是当我将当前目录更改为 PKGBUILD
文件、cd package_name
和 运行 makepkg PKGBUILD
的目录时,我没有遇到任何问题。那么,我必须严格位于 PKGBUILD
文件目录中才能调用 makepkg
是真的吗?
谢谢
好像是这样。如果您正在编写此脚本并希望避免来回切换文件夹,则可以选择使用这样的子 shell
(cd package_name && makepkg PKGBUILD)
完成括号内的操作后,它将把您传送回当前文件夹。
命令 makepkg PKGBUILD
并不像您认为的那样。 makepkg 不 接受 PKGBUILD 的名称作为位置参数,它完全放弃了这一点。
根据联机帮助页,如果您希望指定要使用的 PKGBUILD,则必须使用 -p <buildscript>
选项。同样根据联机帮助页,"The buildscript must be located in the directory makepkg is called from."
$ makepkg -p package_name/PKGBUILD
==> ERROR: package_name/PKGBUILD must be in the current working directory.
如您所见,makepkg 包含的代码可确保您不会尝试做它不允许您做的事情 -- 但您必须 正确使用 makepkg 命令-line 选项以便 makepkg 识别您正在尝试做什么并告诉您您做错了什么。