./configure:错误:无法确定工作目录

./configure:错误:无法确定工作目录

我对这个错误感到非常沮丧。现在值得注意的是,运行 cd“$(pwd)”并回显所有环境变量,一切似乎都井然有序。

我目前正在尝试安装 unrealircd 5.2.0.1(但在运行涉及 ./configure 脚本的任何内容时都会出现此错误)

以下是我为了掩盖错误而给出的输出:

 _   _                      _ ___________  _____     _
| | | |                    | |_   _| ___ \/  __ \   | |
| | | |_ __  _ __ ___  __ _| | | | | |_/ /| /  \/ __| |
| | | | '_ \| '__/ _ \/  _ | | | | |    / | |    /  _ |
| |_| | | | | | |  __/ (_| | |_| |_| |\ \ | \__/\ (_| |
 \___/|_| |_|_|  \___|\__,_|_|\___/\_| \_| \____/\__,_|

                               Configuration Program
                                for UnrealIRCd 5.2.0.1
[SNIP]
Would you like to pass any custom parameters to configure?
Most people don't need this and can just press ENTER.
Otherwise, see `./configure --help' and write them here:
[] ->
Running with 4 concurrent build processes by default (make -j4).
./configure --with-showlistmodes --enable-ssl --with-maxconnections=9999999 --with-bindir=/root/unrealircd/bin --with-datadir=/root/unrealircd/data --with-pidfile=/root/unrealircd/data/unrealircd.pid --with-confdir=/root/unrealircd/conf --with-modulesdir=/root/unrealircd/modules --with-logdir=/root/unrealircd/logs --with-cachedir=/root/unrealircd/cache --with-docdir=/root/unrealircd/doc --with-tmpdir=/root/unrealircd/tmp --with-privatelibdir=/root/unrealircd/lib --with-scriptdir=/root/unrealircd --with-nick-history=100 --with-permissions=0600 --enable-dynamic-linking
configure: error: working directory cannot be determined

现在就像我说的,我在安装任何涉及 ./configure 脚本的东西时都会出现这个错误。还值得注意的是,作为任何用户,我都无法运行 ./configure,并出现同样的错误。

/etc/passwd 为所述用户指定正确的主目录。

现在我的问题是什么?

答案1

文档中明确指出:

https://www.unrealircd.org/docs/FAQ#Compile.2Fbuild_problems

编译/构建问题

我运行了 ./configure 并遇到了很多问题

不要使用 ./configure!请运行 ./Config。

https://www.unrealircd.org/docs/Installing_from_source

编译

首先,运行 ./Config 脚本,它会询问一些问题。您可以直接按 Enter 接受默认答案。

./配置

现在,通过运行 make 编译 UnrealIRCd,这可能需要一分钟(或两分钟):

制作

答案2

按照惯例,configure是一个 POSIX shell 脚本,它是由 GNU程序从configure.ac或模板文件创建的- 在安装时或在软件维护者分发之前。configure.inautoconf

错误消息

配置:错误:无法确定工作目录

来自_AC_INIT_DIRCHECK在以下位置命名和定义的标准 autoconf 宏/usr/share/autoconf/autoconf/general.m4

AC_DEFUN([_AC_INIT_DIRCHECK],
[m4_divert_push([PARSE_ARGS])dnl

ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  AC_MSG_ERROR([working directory cannot be determined])
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  AC_MSG_ERROR([pwd does not report name of working directory])

您可以在文件中找到有关错误原因的更多详细信息config.log。或者,您可以在非交互式 POSIX shell 中运行相同的代码,如下所示:

/bin/sh -c '
  ac_pwd=`pwd` && test -n "$ac_pwd" && 
  ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .`
'
echo $?

或者分解成各个部分,例如

/bin/sh -c 'ac_pwd=`pwd` && test -n "$ac_pwd"'; echo $?

失败的一个可能性是工作目录没有设置可执行位:

$ chmod -x .

$ /bin/sh -c '
  ac_pwd=`pwd` && test -n "$ac_pwd" &&
  ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .`
'
/bin/sh: 1: cd: can't cd to /home/steeldriver/src/unrealircd

相关内容