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

13

Um livro que estou usando veio com um CD contendo alguns aplicativos adicionais. Para minha surpresa agradável, parece incluir um instalador para 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. Clique duas vezes no arquivo 'INSTALL.BIN'
  3. Siga as instruções na tela.

Mas fazer 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

Tentar 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

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

Como eu executo isso?


O tipo do arquivo é:

ak@aux:~$ file /media/BDH\ DE/linux/install.bin
src/bdh-de/install.bin: POSIX shell script text executable
ændrük
fonte
8
Que tipo de arquivo é esse? 'arquivo / mídia / BDH \ DE / linux / install.bin'?
1
Ah-ha. Estranhamente, na verdade, é apenas um arquivo de texto com uma .binextensão de nome de arquivo. Quão irritantemente enganador.
ændrük
1
Sim - percebi. Tão resolvido? Como se fosse um script shell - você pode 'bash / media / BDH \ DE / linux / install.bin' ou algo semelhante agora?

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 esse arquivo?

head $filename

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

bash $filename

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


fonte
Ainda penso em como posso clicar duas vezes no arquivo e executá-lo. Ele ainda se recusa a executar se o arquivo tiver extensão '.bin'.
DTdev
7

Se o problema é que o CDROM foi montado 'noexec', você pode montá-lo novamente como executável.

sudo mount -o remount,exec /media/BDH\ DE/
Mr. Muskrat
fonte
sim, certo, muito bom, funcionou bem.
Silver Moon
4

Se não é 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 32 bits uns." - Comentário de Lekensteyn sobre a questão /ubuntu//a/17311/52853 13 de abril de 2012

bjunix
fonte
1

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

sudo mount  -o umask=000 /dev/sdXY /mount_point
jato
fonte
1

Você pode usar um dos dois:

bash -c <command>

ou

sh -c <command>
Truman
fonte