2012-08-01 6 views
1

J'ai ce programme 'prog' que je peux exécuter sans problème sur mon serveur. Lorsque vous essayez de le lancer sur ma propre machine (64 bits Ubuntu), je reçois le message:Exécution du programme sur différentes distributions Linux

bash: ./prog: cannot execute binary file 

Je me suis assuré toutes les autorisations pour tous les fichiers concernés sont mis à 777 juste pour être sûr que ce n'est pas un problème d'autorisations. Je crois que le serveur est 32 bits, ce qui peut être la raison. Cependant, l'OS 64 bits ne devrait-il pas être capable d'exécuter un programme 32 bits puisqu'il ne s'agit que d'un sous-ensemble d'architectures? Sinon, y a-t-il un émulateur que je peux télécharger pour Ubuntu qui me permettra d'exécuter des programmes 32 bits si c'est effectivement le problème? Je comprends que l'erreur «impossible d'exécuter le fichier binaire» est quelque peu englobante, donc ce qui précède est juste ma conjecture pour savoir pourquoi je reçois le message, mais peut-être que quelqu'un d'autre a une autre théorie?

Merci encore à tous.

+0

que dit la sortie de la commande "fichier" sur votre fichier? (fichier prog) – gastush

+0

Je reçois la sortie suivante: 'prog: Exécutable LSB 64 bits ELF, x86-64, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.26, BuildID [sha1] = 0xaa50c47441bf86304c5d2b6cf58e69ca36460d1f, non déshabillé'' –

+0

Vous ne pouvez pas avoir un 32 bits installé. Vous devrez également installer les versions 32 bits de toutes les bibliothèques qu'il utilise. –

Répondre

2

Vous avez besoin des bibliothèques 32 bits (partagées) utilisées par prog sur votre ordinateur 64 bits. Sinon, prog ne peut pas être exécuté.

Essayez de les installer à l'aide

apt-get install ia32-libs 

(si prog nécessite encore plus de bibliothèques, installer aussi leurs versions 32 bits)

Cela devrait faire l'affaire.

Remarque que si vous avez la source de prog, il pourrait être plus pratique (moins l'installation de 32 bibliothèques de bits) à recompiler prog sur votre ordinateur 64 bits.

+0

Hey Veger, a tenté de 'sudo apt-get install ia32-libs', mais j'ai reçu le message suivant: ' Package ia32-libs n'est pas disponible, mais est référencé par un autre paquet. Cela peut signifier que le paquet est manquant, a été rendu obsolète, ou est seulement disponible à partir d'une autre source'' Est-il appelé quelque chose d'autre? Est-ce un nom plus ancien pour ce paquet par hasard? Merci encore pour votre aide. –

+1

Dans Ubuntu précis c'est [disponible] (http://packages.ubuntu.com/precise/ia32-libs), en fait je l'ai installé sur ma machine. Vous pouvez également essayer le 'ia32-libs-multiarch', il devrait installer les mêmes bibliothèques 32 bits. Il existe également un [Guide Ubuntu] (https://help.ubuntu.com/community/32bit_and_64bit#How_to_Make_32-bit_Applications_Work_on_a_64-bit_Operating_System) sur ce sujet. – Veger

Questions connexes