【问题标题】:Calling makepkg from an outer directory从外部目录调用 makepkg
【发布时间】:2018-11-13 13:12:22
【问题描述】:

我意识到,当我尝试在内部文件中的 PKGBUILD 上调用 makepkg 命令时,例如 makepkg package_name/PKGBUILD,我收到一条错误消息

==> 错误:PKGBUILD 不存在。

但是当我将当前目录更改为PKGBUILD 文件的目录cd package_name 并运行makepkg PKGBUILD 时,我没有遇到任何问题。那么,我必须严格在PKGBUILD 文件的目录中才能调用makepkg,这是真的吗?

谢谢

【问题讨论】:

    标签: linux archlinux package-managers


    【解决方案1】:

    好像是这样。如果您正在编写脚本并希望避免来回切换文件夹,则可以选择使用这样的子外壳

    (cd package_name && makepkg PKGBUILD)
    

    在完成括号内的操作后,它会将您传送回当前文件夹。

    【讨论】:

      【解决方案2】:

      命令makepkg PKGBUILD 并没有按照您的想法执行。 makepkg 确实接受 PKGBUILD 的名称作为位置参数,它完全放弃了这一点。

      根据手册页,如果您希望指定要使用的 PKGBUILD,则必须使用 -p <buildscript> 选项。同样根据手册页,“构建脚本必须位于调用 makepkg 的目录中。”

      $ makepkg -p package_name/PKGBUILD
      ==> ERROR: package_name/PKGBUILD must be in the current working directory.
      

      如您所见,makepkg 包含的代码可确保您不会尝试做一些不允许您做的事情——但您必须按顺序正确使用 makepkg 命令行选项让 makepkg 识别您正在尝试做的事情并告诉您您做错了什么。

      【讨论】:

        猜你喜欢
        • 2023-04-03
        • 2022-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-27
        • 1970-01-01
        • 2021-03-07
        相关资源
        最近更新 更多