libtool 오류 CD: ../..: 디렉토리가 아닙니다.

libtool 오류 CD: ../..: 디렉토리가 아닙니다.

내가 만든 패키지를 설치하려고 할 때 libtool에서 매우 이상한 오류가 발생합니다. src/api이는 소스 트리의 하위 디렉터리( )에서 실행할 때 발생합니다 .

make[5]: Leaving directory '/users/galac/embray/src/slurm/src/api'
 /bin/mkdir -p '/usr/local/lib'
 /bin/bash ../../libtool   --mode=install /usr/bin/install -c   libslurm.la '/usr/local/lib'
../../libtool: line 929: cd: ../..: Not a directory

의 관련 부분은 libtool다음과 같습니다.

  914 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
  915 # is ksh but when the shell is invoked as "sh" and the current value of
  916 # the _XPG environment variable is not equal to 1 (one), the special
  917 # positional parameter $0, within a function call, is the name of the
  918 # function.
  919 progpath=$0
  920 
  921 # The name of this program.
  922 progname=`$ECHO "$progpath" |$SED "$sed_basename"`
  923 
  924 # Make sure we have an absolute progpath for reexecution:
  925 case $progpath in
  926   [\\/]*|[A-Za-z]:\\*) ;;
  927   *[\\/]*)
  928      progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
  929      progdir=`cd "$progdir" && pwd`
  930      progpath=$progdir/$progname
  931      ;;
  932   *)
  933      _G_IFS=$IFS
  934      IFS=${PATH_SEPARATOR-:}
  935      for progdir in $PATH; do
  936        IFS=$_G_IFS
  937        test -x "$progdir/$progname" && break
  938      done
  939      IFS=$_G_IFS
  940      test -n "$progdir" || progdir=`pwd`
  941      progpath=$progdir/$progname
  942      ;;
  943 esac

set -x이 섹션 주변의 스크립트에 삽입하면 다음 추적이 표시됩니다.

+ progpath=../../libtool
++ printf '%s\n' ../../libtool
++ /bin/sed 's|^.*/||'
+ progname=libtool
+ case $progpath in
++ printf '%s\n' ../../libtool
++ /bin/sed 's|/[^/]*$||'
+ progdir=../..
++ cd ../..
../../libtool: line 930: cd: ../..: Not a directory
+ progdir=
+ progpath=/libtool
...

이는 자체 (최상위 소스 디렉터리) 에 대한 progpath=../../libtool올바른 경로를 설정하지 않기 때문에 추가 오류가 발생합니다 . libtool또한 올바르게 설정된 것 같습니다 progdir=../... 그렇다면 왜 ../..디렉토리가 아닌가?

분명히 수동으로 확인하면 괜찮아 보입니다.

~/src/slurm/src/api$ ls -ld ../..
drwxr-xr-x 11 xxxxxx xxxxx 4096 May 14 14:52 ../..

심볼릭 링크나 그와 유사한 것이 아닙니다.

저는 20년 동안 개발을 하면서 이런 것을 본 적이 없습니다.

답변1

문제는 HPC 시스템에 NFS를 마운트한다는 것입니다(관리 권한이 있습니다). 그런데 실행중 오류가 발생했습니다 sudo make install.

NFS 서버가 이 root_squash옵션을 사용하는 것으로 나타나 루트에서 NFS 마운트를 읽을 수 없게 됩니다.https://linux.die.net/man/5/exports

해결책은 단순히 내 빌드를 NFS가 아닌 파일 시스템으로 이동하고 거기에서 설치하는 것이었습니다. 시청해주신 모든 분들께 감사드립니다.

관련 정보