Como posso executar um executável a partir de um CD quando ele não tem o bit executável definido?

12

Um livro que estou usando veio com um CD contendo alguns aplicativos complementares. Para minha agradável surpresa, parece incluir um instalador para o Linux.

O arquivo leia-me no CD fornece as seguintes instruções de instalação:

  

PC: Linux

     
  1. Clique duas vezes na pasta 'LINUX'
  2.   
  3. Clique duas vezes no arquivo 'INSTALL.BIN'
  4.   
  5. Siga as instruções na tela.
  6.   

Mas isso apenas produz a seguinte mensagem de erro:

  

Não foi possível exibir "/ media / BDH DE / linux / install.bin". O arquivo é de um tipo desconhecido

A tentativa de executar o instalador por meio da linha de comando resulta em um erro de permissão:

ak@aux:~$ ls /media/BDH\ DE/
linux  os x  readme.txt  windows xp  windows xp - no java
ak@aux:~$ ls -l /media/BDH\ DE/linux/
total 41177
-rw-r--r-- 1 ak ak 42164549 2005-07-26 03:39 install.bin
ak@aux:~$ /media/BDH\ DE/linux/install.bin
bash: /media/BDH DE/linux/install.bin: Permission denied

Enquanto, para minha decepção, a mensagem falha em me informar sobre quais permissões eu estou faltando, uma rápida olhada na saída de ls revela que o instalador não foi marcado como executável.

Como posso executá-lo?

O tipo do arquivo é:

ak@aux:~$ file /media/BDH\ DE/linux/install.bin
src/bdh-de/install.bin: POSIX shell script text executable
    
por ændrük 22.01.2011 / 17:43

5 respostas

7

Veja que tipo de arquivo recebeu uma extensão bin.

file $filename

Se não são dados binários, é texto. Então, qual programa deve ser usado com este arquivo?

head $filename

A primeira linha pode ler #!/bin/bash . Nesse caso, execute

bash $filename

para executá-lo. Ou use qualquer programa para o qual o arquivo bin foi escrito, python, por exemplo.

    
por user8290 22.01.2011 / 20:06
5

Se o problema é que o CDROM foi montado 'noexec' você pode remontá-lo ao executável.

sudo mount -o remount,exec /media/BDH\ DE/
    
por Mr. Muskrat 22.01.2011 / 19:33
4

Se não for um script / texto, mas um binário:

Para programas de 64 bits:

/lib64/ld-linux-x86-64.so.2 ./program.bin

Para programas de 32 bits:

/lib/ld-linux.so.2 ./program.bin

Fonte:

"Para executar binários, use /lib64/ld-linux-x86-64.so.2 ./program.bin para programas de 64 bits e /lib/ld-linux.so.2 ./program .bin para os de 32 bits. " - Comentário de Lekensteyn sobre a questão link 13 de abril de 2012

    
por bjunix 24.05.2012 / 16:12
1

monte o CDROM manualmente com umask = 000, ou seja,

sudo mount  -o umask=000 /dev/sdXY /mount_point
    
por jet 22.01.2011 / 19:02
1

Você pode usar um dos dois:

bash -c <command>

ou

sh -c <command>
    
por Truman 02.04.2018 / 14:46