Linux가 존재하는 파일을 찾을 수 없습니다


9

Google의 Dart 언어를 시작하려고하지만 dart2js를 실행할 때 오류가 발생합니다. Arch linux를 실행 중이며 AUR에서 dart-sdk 를 설치했습니다 . 관련 터미널 출력은 다음과 같습니다.

% dart2js main.dart   
/usr/local/bin/dart2js: line 7: /usr/local/bin/dart: No such file or directory

% cat /usr/local/bin/dart2js
#!/bin/sh
# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

BIN_DIR=`dirname $0`
exec $BIN_DIR/dart --allow_string_plus=false $BIN_DIR/../lib/dart2js/lib/compiler/implementation/dart2js.dart "$@"

% file /usr/local/bin/dart                                                                                          
/usr/local/bin/dart: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.15,
BuildID[sha1]=0x27fe166ca015c1adfeaf3a6f9c018e7d7af46d9f, stripped

% ls -alh /usr/local/bin
total 4.9M
drwxr-xr-x  2 root root 4.0K Jun 10 22:51 .
drwxr-xr-x 12 root root 4.0K Jun 10 22:51 ..
-rwxr-xr-x  1 root root 422K May 10 22:41 cargo
-rwxr-xr-x  1 root root 2.7M Jun 10 22:50 dart
-rwxr-xr-x  1 root root  360 Jun  6 16:20 dart2js
-rwxr-xr-x  1 root root  176 Jun  6 16:20 pub
-rwxr-xr-x  1 root root 166K May 10 22:41 rustc
-rwxr-xr-x  1 root root 1.6M May 10 22:41 rustdoc

% uname -rm
3.3.7-1-ARCH x86_64

64 비트 OS를 실행 중이고 다트 바이너리가 32 비트이기 때문일 수 있습니까?

답변:


19

ELF 바이너리를 실행하려면 리눅스는 ELF를 디코딩하고 동적 라이브러리를로드하는 등의 프로그램을 시작해야합니다.이 프로그램을 프로그램 인터프리터 라고 합니다 . 프로그램 통역사의 이름과 전체 경로는 ELF 자체로 작성됩니다

예를 들어

 $ file /usr/bin/cheese 
 /usr/bin/cheese: ELF 32-bit LSB executable, Intel 80386

 $ readelf -l /usr/bin/cheese  
 Elf file type is EXEC (Executable file)
 ...
 Program Headers:
 ...
 INTERP         0x000154 0x08048154 0x08048154 0x00013 0x00013 R   0x1
  [Requesting program interpreter: /lib/ld-linux.so.2]
 ...

ELF가 요청한 프로그램 인터프리터를 찾을 수없는 경우 BASH는 파일을 찾을 수 없음 오류를 가져오고 "No such file or directory"를보고합니다.

@poige가 위에서 말했듯이 32 비트 응용 프로그램을 실행하기위한 기본 지원을 설치해야합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.