• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rui Carlos

Problema ao tentar executar um binário

24 mensagens neste tópico

Quando tento executar uma aplicação (afpd), obtenho sempre o seguinte erro: -sh: afpd: not found

Isto acontece mesmo que eu indique o caminho completo para o ficheiro, e não é só com este ficheiro, é também com outros que fazem parte da mesma package (netatalk).

Os ficheiros estão no disco, e não consigo perceber que é o problema. Já coloquei a hipótese de ter instalado os binários da arquitectura errada, mas um dos ficheiros é uma script perl, que consigo ver com o Vim, mas que também não dá para executar.

Alguma ideia sobre qual é o problema?

PS: Não faço ideia de qual o nome da distribuição :P É a que é usada no firmware do Oleg para routers da Asus.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Onde tens o tal binário? Se está fora da /usr/bin, cria um symlink na /usr/bin.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está em /opt/bin. Mas isso não resolve o problema...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentaste o symlink?

Experimentei. Mas se o problema fosse esse, ao usar o caminho completo para o executável devia resolver o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não há muito para mostrar, mas aqui fica:

[admin@router root]$ ls -l /opt/sbin/
-rwxr-xr-x    1 admin    root       385152 Jan 25  2008 afpd
-rwxr-xr-x    1 admin    root       139064 Jan 25  2008 atalkd
-rwxr-xr-x    1 admin    root        30340 Jan 25  2008 cnid_dbd
-rwxr-xr-x    1 admin    root        18868 Jan 25  2008 cnid_metad
-rwxr-xr-x    1 admin    root        78396 Aug  1  2007 cron
-rwxr-xr--    1 admin    root        12826 Jun 17  2006 makewhatis
-rwxr-xr-x    1 admin    root       154740 Jan 25  2008 papd
[admin@router root]$ /opt/sbin/afpd 
-sh: /opt/sbin/afpd: not found
[admin@router root]$ /opt/sbin/cron 
[admin@router root]$

Se eu tentar executar mais algum comando dos que tem data "Jan 25  2008" dá o mesmo resultado que o afpd (são todos parte da package netatalk). Os outros funcionam normalmente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
cd /opt/sbin; ./afpd;

Já agora que distribuição estás a usar?

Tens Selinux, ou AppArmor ligado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

[admin@router sbin]$ cd /opt/sbin/; ./afpd 
-sh: ./afpd: not found
[admin@router sbin]$

Não sei o nome da distro (como referi no post inicial, é a distro que corre no firmware Oleg para routers da Asus). Mas de certeza que não tenho AppArmor, e mesmo o Selinux não me parece.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não conheço o firmware em causa...  E não sei como te ajudar.

Mas o facto de não encontrar muita informação na WWW, sobre ele faz-me logo ficar de pé atrás em relação a esse firmware... E não entendo porque é que que não estás a utilizar algo em relação ao qual há mais informação, como por exemplo OpenWRT.

Faz-me uma confusão enorme cometerem erros de escrita como chamar uma script, a um script... Script traduz-se para guião... E diz-se o Guião e não a guião...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não conheço o firmware em causa...  E não sei como te ajudar.

Mas o facto de não encontrar muita informação na WWW, sobre ele faz-me logo ficar de pé atrás em relação a esse firmware... E não entendo porque é que que não estás a utilizar algo em relação ao qual há mais informação, como por exemplo OpenWRT.

O firmware é largamente utilizado por quem tem routers da ASUS. No caso de routers deste marca, penso que deve ser bem mais usado OpenWRT, pois tem a particularidade de ter uma interface web idêntica à do firmware original, e de manter praticamente todos as funcionalidades originais.

Vou tentar ler alguma coisa sobre o OpenWRT, e ver até que ponto o poderei utilizar.


Quanto à questão do/da script, isso é como discutir o sexo dos anjos ;) Quando a palavra estiver no meu dicionário de português, assinalado como sendo masculino, eu começo a tentar mudar a forma como escrevo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<off-topic>Utilizar a língua de forma correcta não é discutir sexo dos anjos. Podes chamar discutir sexo dos anjos ao que quiseres, mas isso é só uma forma de evitares a verdade</off-topic>

Qual é o status da situação?

Experimentaste meter o path completo (e não usar o ./)?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é o status da situação?

Experimentaste meter o path completo (e não usar o ./)?

Já tinha experimentado, e não tinha funcionado.

Acabei por conseguir usar o SMB para o que queria (apesar de ter algumas limitações comparativamente com o AFP, para o efeito pretendido).


Standard também se traduz por norma. Vais passar a dizer a standard?

Não estou a ver o que é que obriga uma palavra a ter o mesmo género que um sinónimo (que é isso que guião seria/será quando a palavra script estiver no dicionário).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Norma é uma tradução possível de standard, padrão é outra, modelo é outra, padrão normativo é outra, etc... E ao que sei standard é um substantivo que pode ser quer masculino, quer feminino.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva... parece que o problema já foi contornado. Fica a informação de qualquer das formas, esse erro é causado por uma chamada à shell de um ficheiro ou comando inexistente.

Isso pode acontecer se te esqueceres por exemplo da shebang line que informa o sistema em relação ao que fazer com o programa.

Isso é mesmo um binário? Não é um shellscript? Se for um script experimenta abri-lo com um editor de texto e ver se tem a shebang line.

Ou então experimenta correr isso usando a sintaxe completa, tipo

sh afpd

perl afpd

python afpd

ou o que quer que seja que interprete esse script.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então se traduzir script por guia em vez de guião, vai dar ao mesmo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva... parece que o problema já foi contornado. Fica a informação de qualquer das formas, esse erro é causado por uma chamada à shell de um ficheiro ou comando inexistente.

Isso pode acontecer se te esqueceres por exemplo da shebang line que informa o sistema em relação ao que fazer com o programa.

Isso é mesmo um binário? Não é um shellscript? Se for um script experimenta abri-lo com um editor de texto e ver se tem a shebang line.

Ou então experimenta correr isso usando a sintaxe completa, tipo

sh afpd

perl afpd

python afpd

ou o que quer que seja que interprete esse script.

Aquilo uma script não deve ser de certeza... Abrindo com o vi, o conteúdo não tem qualquer sentido.


Para mim, standard também não se traduz por padrão ou o que quer que seja.

Como já disse, quando a palavra estiver no meu dicionário de português, assinalado como sendo masculino, eu começo a tentar mudar a forma como escrevo.

E outro exemplo: backup traduz-se por "cópia de segurança" (e diz-se a cópia de segurança), mas aparentemente é um substantivo comum masculino. E haverá certamente mais casos semelhantes (input ou link).

Assim, parece que a regra de adoptar o género da tradução para os estrangeirismos não existe.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para saberes de que tipo de ficheiro se trata basta fazeres: file /o/ficheiro

Quanto ao significado das palavras. O significado das palavras não é uma questão de opinião pessoal! O significado das palavras é algo que está normalizado. Não é aquilo que te apetece que seja, é o que está determinado que é.

Se consultares um dicionário da Língua portuguesa, vais ver que standard significa entre outras coisas: padrão e norma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

afpd: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), dynamically linked (uses shared libs), stripped

Assim à primeira vista, é um binário.

No entanto, encontrei uma ligeira diferença em relação ao output desse comando para outros binários.

/usr/sbin/pptp: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), stripped

Se não me engano, esta aplicações não estava nos repositórios, e tive que procurá-la na net. Provavelmente a arquitectura não é exactamente a correcta.


Quanto ao significado das palavras. O significado das palavras não é uma questão de opinião pessoal! O significado das palavras é algo que está normalizado. Não é aquilo que te apetece que seja, é o que está determinado que é.

Se consultares um dicionário da Língua portuguesa, vais ver que standard significa entre outras coisas: padrão e norma.

As traduções é que já não estão normalizadas. Por isso da mesma forma a tradução "guia", eu posso não aceitar "padrão". Mas tens mais 3 exemplos que não vão ao encontro da justificação que apresentaste.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só para dizer que já resolvi este problema, compilando o pacote.

Informações sobre como o fazer aqui: www.nslu2-linux.org/wiki/FAQ/OptwareWl500gBuild

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora