我意识到,当我试图调用内部文件中的makepkg命令时,例如makepkg package_name/PKGBUILD,我会收到一个错误:
==>错误: PKGBUILD不存在。
但是,当我将当前目录更改为PKGBUILD文件、cd package_name和运行makepkg PKGBUILD的目录时,我不会遇到任何问题。那么,我必须严格地在PKGBUILD文件的目录中才能调用makepkg,这是真的吗?
谢谢
发布于 2018-11-16 18:41:23
看来是这样的。如果您正在编写此脚本,并且希望避免来回切换文件夹,则可以使用像这样的子shell。
(cd package_name && makepkg PKGBUILD)它将在圆括号内完成操作后将您传输回当前文件夹。
发布于 2018-11-23 18:36:01
命令makepkg PKGBUILD不执行您认为的操作。makepkg不接受PKGBUILD的名称作为位置参数,它完全放弃了这一点。
根据手册,如果希望指定要使用的PKGBUILD,则必须使用-p <buildscript>选项。同样,根据手册页,“buildscript必须位于调用makepkg的目录中。”
$ makepkg -p package_name/PKGBUILD
==> ERROR: package_name/PKGBUILD must be in the current working directory.如您所见,makepkg包含代码以确保您不尝试做它不允许您做的事情--但是您必须正确地使用makepkg命令行选项,这样makepkg才能识别您试图做的事情并告诉您您做错了什么。
https://stackoverflow.com/questions/53281773
复制相似问题