Nenhum tal arquivo ou diretório no linux bash

4

Eu instalei um programa no linux (UBUNTU), eu configurei as variáveis de ambiente. Infelizmente quando digito o comando para iniciar o programa, ele me deu o Mensagem: Nenhum arquivo ou diretório desse tipo.

Eu posso ver o arquivo, sua permissão está definida para ser executável. Não consigo ver por quê?

Eu instalei este programa no Mac e no Windows antes e isso nunca aconteceu! :( Aqui está o link para o link do software

Aqui está mais informação: é XLE!

**~/XLE/bin$ ls**
approx-rand-sigtest              lexbase               unpack
client-server-support.tcl        mt-sigtest            unpack-counts
cometc                           node_label_rules.pl   variables.tcl
commands.tcl                     pdb                   xfr_benchmark.tcl
default-gen-tokenizer.fst        print-feature-forest  xfr_exe
default-morph-config             select-best-parse     xfr-extract-feature-list
default-parse-tokenizer.fsmfile  semantics.tcl         xfr_main
dummy_translate_rules.pl         sp-3.12.0             xfr-print-feature-forest
extract                          sp-3.12.2             xfr-select-n-best
foreign_language_interface       transfer              xle
fs_triples.pl                    transfer.sav          xledate.tcl
fstructures.tcl                  transfer.tcl          xle-inspector.tcl
gen.tcl                          translate.tcl         xle.tcl
getProperSubsets                 trees.tcl             xle-unix.tcl
gtags                            triples               xle-win.tcl
identify-sparse-features         triples_match

:~/Desktop$ xle
bash: /home/yasaman/Desktop/XLE/bin/xle: No such file or directory

Como você pode ver a variável do ambiente corretamente definida, pois sabe onde procurar pelo comando xle, mas ...

yasaman@yasaman-desktop:~$ $PATH
bash: /home/yasaman/Desktop/XLE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games: No such file or directory

yasaman@yasaman-desktop:~/Desktop/XLE/bin$  file ./xle ; ldd ./xle 
./xle: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
    not a dynamic executable

yasaman@yasaman-desktop:~/Desktop/XLE/bin$ ls -la | grep xle
-rwxrwxr-x 1 yasaman yasaman 5050490 2010-11-05 08:27 xle
-rw-rw-r-- 1 yasaman yasaman 32 2010-11-05 08:27 xledate.tcl

Exectung o comando readelf -l xle

Elf file type is EXEC (Executable file)
Entry point 0x8059ccc
There are 7 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x08048034 0x08048034 0x000e0 0x000e0 R E 0x4
  INTERP         0x000114 0x08048114 0x08048114 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.2]
  LOAD           0x000000 0x08048000 0x08048000 0x42fd85 0x42fd85 R E 0x1000
  LOAD           0x430000 0x08478000 0x08478000 0x18598 0x61534 RW  0x1000
  DYNAMIC        0x44751c 0x0848f51c 0x0848f51c 0x00128 0x00128 RW  0x4
  NOTE           0x000128 0x08048128 0x08048128 0x00020 0x00020 R   0x4
  GNU_EH_FRAME   0x423980 0x0846b980 0x0846b980 0x0168c 0x0168c R   0x4

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .eh_frame_hdr .eh_frame .gcc_except_table 
   03     .data .dynamic .ctors .dtors .jcr .got .bss 
   04     .dynamic 
   05     .note.ABI-tag 
   06     .eh_frame_hdr
    
por Yasaman 06.01.2012 / 02:25

1 resposta

7

:~/Desktop$ xle
bash: /home/yasaman/Desktop/XLE/bin/xle: No such file or directory

Isso mostra claramente que o arquivo está no seu PATH e tem permissões de execução.

A causa mais frequente do erro ENOENT sob essas condições é um carregador dinâmico ausente ou corrompido. O erro not a dynamic executable de ldd é outra indicação de que é isso que está acontecendo.

Quando um kernel execve s é um executável dinâmico, ele não executa o próprio executável. Em vez disso, ele executa o carregador dinâmico, e o carregador realmente organiza o executável para iniciar, depois de mapear todas as bibliotecas compartilhadas necessárias.

O que readelf -l xle diz? O caminho especificado no segmento INTERP existe? É executável?

Como o arquivo é um executável ELF de 32 bits, talvez você esteja em um sistema somente de 64 bits? Em caso afirmativo, você precisará instalar o pacote libc6-i386 .

    
por 06.01.2012 / 05:16

Tags