![./configure:错误:无法确定工作目录](https://linux22.com/image/938521/.%2Fconfigure%EF%BC%9A%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%B3%95%E7%A1%AE%E5%AE%9A%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95.png)
我对这个错误感到非常沮丧。现在值得注意的是,运行 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.in
autoconf
错误消息
配置:错误:无法确定工作目录
来自_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