可执行文件发出“需要更改 pax 存档卷”

可执行文件发出“需要更改 pax 存档卷”

我正在尝试运行./configure软件的可执行文件(我正在使用 PuTTY 通过远程 Linux 机器执行此操作),并且在某些时候它显示:

ATTENTION! pax archive volume change required.
Ready for archive volume: 1
Input archive name or "." to quit pax.
Archive name >

因此,我向软件制造商发送了此警告,他们说 pax 错误是由于我的 UID 大于 21 位造成的。他们建议在运行之前尝试一下./configure

alias pax='/usr/bin/pax -O "S@'"

当我尝试此操作时,它提示我输入一些内容,但我不知道该输入什么。

我在网上查看过,找不到任何解决此问题的方法。能解释一下pax是什么意思吗?它是某种存档,但它实际上是我的文件资源管理器上的文件夹还是其他东西?

还有开发人员发送给我的“我的 UID > 21 位”的含义是什么?

我是否需要为此 pax 输入一些内容,或者如果我退出会发生什么?看来该软件可能无法编译。

任何/所有建议/提示将不胜感激!我实际上没有软件工程经验,但是正在学习!

答案1

此行的意图显然是,在脚本调用命令的地方pax,它的行为就像脚本使用选项调用它一样-O。但这个命令有几个错误。正确的命令是

alias pax='pax -O'

(复制粘贴,不要重新输入。)

此外,如果您在 shell 中输入它也没有帮助。只有将其放入configure脚本中,它才会有帮助(即使在那里,它也可能有帮助,也可能没有帮助,但希望开发人员是对的,它会有所帮助)。将其插入到脚本顶行下方configure,以便脚本以这两行开头

#!/bin/sh
alias pax='pax -O'

(第一行可能略有不同,例如#! /bin/sh#!/usr/bin/env sh#!/bin/ksh或变化。)

我不知道传递-O给 pax 是否能真正解决你的问题。它告诉 pax 假设存档是单个卷,但这可能会导致数据丢失,因为它不会帮助 pax 正确解析存档。

pax命令是一个操作档案的实用程序。它的归档格式(默认情况下)是 tar 格式的变体之一。当 pax 写入存档时,如果文件由用户 ID 大于 2^21 的用户拥有,则会生成扩展标头。这同样适用于所属集团。想必提出此解决方案的开发人员已经分析过,该configure脚本调用 pax 生成存档,然后再次调用它来读取此存档,当它读回时,存在与扩展标头相关的错误。

id您可以在 shell 提示符下使用命令检查您的用户和组 ID 。

答案2

如果这是 UID 问题,则使用

sudo ./configure

应该可以解决这个问题,因为 root 的 UID 是 0 并且只有 1 位。

相关内容