我正在尝试运行./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 位。