이상한 문제가 있습니다. AIX 가상 머신에 Sybase DB 서버를 루트로 설치할 수 없습니다. 루트로 로그인하고 설치 프로그램을 시작했습니다.
bash-4.2# ./setup.bin -i console
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
Launching installer...
./setup.bin: /tmp/install.dir.3277230/Linux/resource/jre/bin/java: 0403-006 Execute permission denied.
보시다시피, 설치 프로그램이 가장 먼저 하는 일은 자체 JRE의 압축을 풀고 설치를 시도하는 것입니다. 그 동안 권한 오류가 발생합니다. 그래서 파일의 권한을 확인했습니다.
bash-4.2# ls -al /tmp/install.dir.3277230/Linux/resource/jre/bin/java
-rwxr-xr-x 1 28886 ipsec 15755 Jul 14 2013 /tmp/install.dir.3277230/Linux/resource/jre/bin/java
내가 이해하지 못하는 것은 이 UID가 내 /etc/passwd 파일에 존재하지 않는다는 것입니다. 또한 다음을 시도했습니다.
bash-4.2# cd /tmp/install.dir.3277230/Linux/resource/jre/bin
bash-4.2# ./java
bash: ./java: cannot execute binary file
bash-4.2# sh java
sh: java: 0403-006 Execute permission denied.
설치 프로세스에서 생성된 임시 파일이 일종의 임시 사용자에게 속할 가능성이 있습니까? 이것이 루트로 실행해도 setup.bin 파일이 실행되지 않는 이유입니까? 그렇다면 설치를 계속할 수 있는지 어떻게 확인합니까?
답변1
모든 사람이 실행 권한을 갖고 있으므로 나에게는 두 가지 가능성만 있습니다.
- 파일 구조에 대한 권한이 없기 때문에 바이너리에 액세스할 수 없습니다(
x
어딘가에 권한이 누락됨). - 커널은 아키텍처와 같은 일부 시스템 요구 사항을 충족하지 않기 때문에 실제로 실행 파일을 로드할 수 없습니다.
첫 번째 경우 좋은 해결 방법은 다음을 사용하는 것입니다 su
. 파일을 실행해야 하는 계정으로 전환하고 해당 파일에 액세스해 보세요. 루트에서 시작하여 파일까지 작업해 보세요. 결국 cd
당신은 한 사람을 만나게 될 것입니다.허가가 거부되었습니다질문. 물론, 파일에 대한 실행 권한이 없는 경우도 있을 수 있지만, 이는 귀하의 경우가 아닙니다.
이제 이것이 권한 문제가 아닌 것 같으면(귀하의 경우처럼) 시스템이 처리할 수 없는 작업을 시도하고 있을 수 있습니다. 실행 파일을 사용하여 file
아키텍처와 일치하는지 확인하는 것이 좋습니다 . 예를 들어 내 시스템에서는...
$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.24.
...System V 구현을 지원하는 64비트 시스템(x86-64 아키텍처)을 실행하고 있기 때문에 정말 좋습니다. 나는 또한 GNU/Linux 시스템을 사용하는데 심지어 마지막 메시지에도 맞습니다.