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

use*_*335 5 linux pax uid

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

ATTENTION! pax archive volume change required.
Ready for archive volume: 1
Input archive name or "." to quit pax.
Archive name >
Run Code Online (Sandbox Code Playgroud)

所以,我将此警告发送给软件的制造商,他们说 pax 错误是我的 UID 大于 21 位的结果。他们建议在运行之前尝试这个./configure

ATTENTION! pax archive volume change required.
Ready for archive volume: 1
Input archive name or "." to quit pax.
Archive name >
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,它提示我输入一些东西,我不知道该输入什么。

我已经在网上查看并找不到任何可以解决此问题的方法。能解释一下pax是什么意思吗?这是某种存档,但它实际上是我的文件浏览器上的文件夹还是什么?

开发人员发送给我的“我的 UID 大于 21 位”是什么意思?

我是否需要为这个人输入一些东西,或者如果我退出会发生什么?好像软件可能无法编译。

任何/所有建议/提示将不胜感激!我几乎没有软件工程经验,但学习!

Gil*_*il' 2

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

alias pax='pax -O'
Run Code Online (Sandbox Code Playgroud)

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

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

#!/bin/sh
alias pax='pax -O'
Run Code Online (Sandbox Code Playgroud)

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

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

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

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