Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2006, 02h18   #1
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Par défaut Installer Gnat sous Debian sans être root

Hi all,

je programmais mes cgi en C, et je décide de migrer les codes vers Ada. Seulement, sur mon serveur d'herbergement, je n'ai évidement pas de compte root (et inutile de proposer aux admins de l'installer, ils sont sourds même pour les questions normales... Cegetel, que je vous déconseille fortement). Donc j'ai télécharger une archive d'installation, que j'ai décompressé sous un repertoire auquel j'ai un acces lecture/écriture.

J'ai écrit un petit programme hello-world en Ada. J'essai de le compiler avec gnat make... ko, il ne trouve pas gnatmake, et je ne sais pas comment changer la variable path. Pas grave, j'invoque directement ./gnatmake, ko aussi. J'essai d'invoquer directement ./gnat1... ko, il me me dit qu'il ne trouve pas system.ads. Pas grave, je copie system.ads dans le repertoire courant. Et là maintenant, il ma dit que Text_IO n'est pas un package standard.

Je fais comment maintenant ?
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 12h40   #2
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
Bonjour,

Pourrais-tu indiquer quelle archive tu as téléchargé et installé ?

Pour changer la variable PATH, c'est simple il suffit d'exécuter PATH=$PATH:$HOME"/bin" par exemple. En fait il n'y a pas d'opérateur de concaténation, il suffit juste de tout coller à la suite.

Et pour finir je crois que ta question serait mieux dans le forum Linux.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 02h04   #3
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Merci Celelibi

Je vais voir comme ça pour path, mais j'ai l'impression que l'environnement utilisé pour l'execution des programme, n'est pas le même que pour le shell (il faudra peut-être que je passe par la commande env alors, je l'ai découvete par hasard)

Mais je ne comprens pas, tu me dis que je dois poster dans le forum Linux... mais c'est pas le forum Linux ici ? (Linux & developement pour Linux).

En fait, avec gcc, il y a toujours un truc du genre xxx1... (gcc1, ou cpp1), et ici c'est gnat1. Ce truc a l'air fondemental, et il ne sait pas ou trouver les librairie stantard. Mais si j'essai de le lancer avec -h ou --help, ou sans rien, il refuse desespérement de me donner la moindre aide. Il faudrait en fait que je sache si on peut utiliser une variable d'environnement, ou si on peut lui donner le chemin d'un fichier de configuration quelqu'onque.

L'archive que j'ai téléchargé, c'est celle de Slackware (j'avais éssayé avec un archive rpm, mais sans succé). J'aime mieux les archives slackare, elle sont plus simple, plus accessible et plus légère, et elle sont déjà organisées en repertoire.

Merci encore pour ta réponse
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 13h50   #4
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
En fait tu avais posté dans "Autres Langages et Outils", mais un modo l'a déplacé au bon endroit.

Pour que la modification de la variable $PATH soit prise en compte par les futures applications lancés il faut faire :Tu peux aussi mettre la modification de la variable PATH ainsi que l'export dans ton fichier .bashrc (ou .bash_profile) pour que cette modification reste au prochain redémarrage du shell.

Sinon tu peux aussi ajouter/modifier une variable d'environnement pour un seul programme de la façon suivante :
Code :
MAVAR=trucmachin leprogramme --argument


Tu sais, les packages rpm ou tgz (ceux de slackware) sont faits pour être installés sur le système tout entier en tant que root, et pas pour une "installation individuelle".

Je pense que tu devrais plutôt chercher à compiler gnat à partir des sources, comme ça tu pourras choisir le répertoire d'installation ; ça se fait en général avec la commnde ./configure --prefix=$HOME


D'ailleurs je me demande pourquoi tu veux installer un compilateur. En général on cherche plus à mettre des programme déjà compilé plutôt que des compilateurs. :p
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 14h40   #5
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Hello,

je comprends que tu me trouve bizzare de vouloir installer un compilateur,parce que c'est sure que c'est les binaires qui m'interesse. Si je fait comme ça, c'est parce que je suis sous Windows, et que je ne peux donc pas importé des exe Windows sur un serveur sous Linux

et comme mon pc est trop petit, je ne peux pas installer linux sur mon pc, et donc le seule moyen pour moi de compiler des programmes Ada pour Linux, c'est d'intaller un compilateur sur le serveur, dans mes repertoires. J'ai 100M d'espace sur le serveur, donc je peux me le permettre. Je me connecte en telnet ssh... je trouve ce truc vraiment marrant et amusant

Je faisait déjà ça avant, quand mes cgi étaient en C : j'envoyais les sources par FTP, et je me connectais en ssh pour compiler et installer. Mais je ne veux plus coder en C (je me suis juré de ne plus mettre le nez dans des codes C, sauf pour aider et répondre à des questions sur les forums).

Merci encore pour toutes les infos aux sujet du shell.. je vais essayer de mettre un .bashrc sur mon home (ou le modifier s'il y est déjà).

Pour ce qui est de gnat1, j'ai trouvé un page man sur le web, s'y rapportant. Première mauvaise surprise, gnat1 ne reconnait pas la plupart des options standard pour un front-end, tel que pourtant décrit dans cette page man sur gnat1. Il semble quand même reconnaitre -I (pour lui dire où sont les librairies Ada), mais quand j'utilise cette option, le programme se termine immédiatement, avec ce seul message : « Killed » (par qui ? par quoi ? il le fait tout seul ?). Mais si je copie system.ads dans le même repertoire (i.e. dans le repertoire de gnat1), il le trouve, sans être killed (mais alors il ne reconnais pas les autres unités, même si elle sont copiées dans le repertoire, alors que cette stratégie marche avec system.ads, ça ne marche pas avec les autres unités).

Voilà en résumé.

Il faudrait trouver quelqu'un qui à l'habitude d'utiliser gnat sous linux.

En tous cas, encore un grand merci pour ta gentillesse Celelibi, parce je n'en dirai pas tant de la plupart des fanas de linux (.... souvent moqueurs, etc... pardon de dire ça, c'est le vécu qui parle)

Sinon, si ça ne marche pas, tant pis, je serai encore contraint et forcé contre mon grés une fois de plus d'utiliser un C dont je ne veux plus (parfois je me dis que le C, c'est encore plus collant que microsoft... et je me demande lequel de ces deux monopoles est le pire.... )
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 16h31   #6
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
Et bien pourquoi ne pas booter sur une petite knoppix ou autre livecd pour faire tes compilations (et les débuggages qui vont s'en suivre) ?

Bien que l'ayant utilisé, je connais pas trop le compilateur gnat, et d'ailleurs, qu'est-ce-que t'as contre le C ?
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 17h28   #7
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 189
Points : 1 189
Citation:
Envoyé par Celelibi
et d'ailleurs, qu'est-ce-que t'as contre le C ?
<flame_ou_pas>Quand même, Ada est d'un autre niveau que le C ! </flame_ou_pas>

Citation:
Envoyé par Celelibi
Et bien pourquoi ne pas booter sur une petite knoppix ou autre livecd pour faire tes compilations (et les débuggages qui vont s'en suivre) ?
+ beaucoup
Sinon, ne serait-il pas possible de sortir Cygwin pour lequel Gnat est dispo et de faire une cross compilation (là je suis moins certain) ?

Ai trouvé ça : Ici
Peut-être en settant (néologisme inside) ADA_INCLUDE_PATH ?
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2006, 22h20   #8
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Citation:
Envoyé par Celelibi
Bien que l'ayant utilisé, je connais pas trop le compilateur gnat, et d'ailleurs, qu'est-ce-que t'as contre le C ?
Celelibi, si je n'aime pas le C, je n'en ai pas pour autant une dent contre toi, donc soit rassuré(e). J'ai mes raisons, mais je n'ai pas l'envie ni le temps de m'en justifier... et ce n'est pas le lieu. N'empêche qu'entre parenthèse, sur ton site, tu as quand même tenté d'introduire Ada si je ne m'abuse...

Citation:
Envoyé par Sivrît
+ beaucoup
Sinon, ne serait-il pas possible de sortir Cygwin pour lequel Gnat est dispo et de faire une cross compilation (là je suis moins certain) ?
La distribution gnat est basé sur une architecture à la mingw (si je ne me trompe). J'ai vérifié les options de gcc disponnible, et je ne peut pas faire de cross-compilation. J'ai cherché si l'assembler peut produire le format objet pour Linux : nada. Et le processus de compilation ne semble pas passer par du code C intermédiaire (Gnat ne compile pas en C, comme beaucoup le croie à tort). Il faudrait que je vois si je peux récuperer des fichiers assembler, et les compiler/lier sous Linux. J'avais déjà essayé en important les fichier objet, espérant que le format des fichiers objet serait le même (vu que les processeurs cible sont compatibles), mais le lieur sous linux me dit qu'il ne reconnais pas le format des fichiers objets. C'est vrai qu'ayant pour cible un processeur compatible avec celui du serveur, il devrait quand même y avoir moyen de faire des fichiers objets compatible.

Citation:
Envoyé par Sivrît
Ai trouvé ça : Ici
Peut-être en settant (néologisme inside) ADA_INCLUDE_PATH ?
Merci pour cette info, je n'avais pas trouvé cette page (juste une autre similaire). Malheureusement, appliqué ces indications n'aboutit à aucun résultat : gnat1 s'arrête toujours en affichant un pathétique « Killed ». Il semberait d'aprés ce que j'ai put en savoir, que gnat1 pouvait s'arrêter de cette manière, s'il est utilisé dans un environement gcc antérieur à la version 3.2.3 mais sur mon serveur j'ai la 3.3.3. Peut-être un bug ? Pourtant gnat fonctionne bien avec gcc 2.8.1 sous windows.

Je suis déçu que cette migration n'avance pas... j'espère trouver une solution bientôt.

Bonne soiré à toutes et tuites
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 12h53   #9
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
A l'heure actuelle, je n'ai toujours pas de solution. Je fait remonter une fois, mais je n'insisterai pas s'il n'y a pas d'autres propositions de solutions.

J'ai essayé plusieurs version du binaire « gnat1 », qui se terminent toutes par un laconique « Killed » renvoyé sur la console, avant même que la moindre compilation n'ait eu lieu. Je ne sais même pas s'il s'agit d'une faute d'accés mémoire, d'une faute d'opcode invalide, d'une faute d'alignement de donné, ou de quoi-que ce soit d'autre. E tout cas, c'est bien dommage pour un système Ada, que de ce terminer de façon aussi opaque.
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2006, 04h00   #10
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Il y a peut-être une solution simple. Ce n'est pas une solution pour installer Gnat sans être root, mais plutôt une solution pour permettre au driver gcc de trouver ses fichiers systèmes : executable gnat1, librairies ada, etc.. Gcc reconnait une option, -B, qui permet justement de donner le chemin de ces fichiers. Il suffirait dans un premier temps, d'ajouter le chemin de gnat dans mon path. Comme on peut transmettre à Gnat, des paramètres qui sont retransmis à Gcc, alors je pourrais peut-être passer cette option -B à gnat, pour qu'il la passe à gcc. Pour ne pas avoir à taper à chaque fois cette option et sa valeur, je pourrais créer un alias bash pour la commande gnat, qui incluerait l'option de manière transparente.

Donc avec ceci, je peux installer gnat (en fait copier les fichiers de gnat) dans mon repertoire sur le serveur, et utiliser gnat comme s'il avait été installer normalement dans les repertoires de gcc, par l'intermédiaire de cette option qui fera la liaison entre les deux. Cette une option qui n'est jamais utilisé (parce qu'elle n'est pas utile dans les conditions normales d'utilisation de gcc)... comme elle n'est jamais utilisé, je n'en avais jamais entendu parler, et je l'ai découverte aujourd'hui par hasard en lisant la doc de gcc.

J'essaierai demain, et je donnerai des nouvelles.
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2006, 22h13   #11
Inactif
 
Avatar de Hibou57
 
Inscription : mars 2006
Messages : 852
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 852
Points : 398
Points : 398
Je ne viens toujours pas marquer le topic comme résolu

J'ai essayé, l'option -B fonctionne bien pour indiquer à GCC l'emplacement de gnat1. Mais ensuite, il y avait un problème avec les librairies Ada. J'ai voulu les indiquer avec la variable d'environnement CPATH, mais elle ne semblait pas être reconnue. J'ai alors essayé d'indiquer l'emplacement des librairies Ada avec l'option -I (i majuscule), et là... plantage de gcc qui me dit qu'en fait c'est gnat1 qui a planté. Pour en avoir le coeur net, je lance alors directement gnat1 pour un test... pour seul message et seul explication : un laconique «Killed».

Ca ne change pas, Linux est toujours incompatible avec Linux, et les message d'erreur sont toujours aussi verbeux et donnent une aide toujours aussi précieuse.

Je pensais aujourd'hui peut-être ouvrire un compte sur SourceForge.net... juste histoire d'avoir accès à un compilateur Ada quelque part sur un serveur Linux. Mais d'abord je ne suis même pas sure qu'ils aient Gnat, et ensuite, il faudra que je cré un projet factice juste pour avoir accès à un compilateur Gnat sous Linux... (et là j'ai pas d'idées)

C'est une bonne idée ou pas ?
Hibou57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 22h04   #12
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
Citation:
Envoyé par Hibou57
Ca ne change pas, Linux est toujours incompatible avec Linux, et les message d'erreur sont toujours aussi verbeux et donnent une aide toujours aussi précieuse.
C'est le genre de phrase parfaite pour lancer un troll.


Pour ce qui est du "Killed", un processus se kill rarement tout seul. Étant donné que le système sur lequel tu essaye de compiler semble être un système commun à plusieurs usagers il ne serait pas étonnant de voir le noyau patché par grsecurity (qui intègre PaX). Que te donne la commande uname -a ?

Si il s'avère que le noyau est PaXé, il serait fort probable que le binaire gnat1 nécessite un chpax pour fonctionner correctement.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h50.


 
 
 
 
Partenaires

Hébergement Web