img
@_ö
(16:40)  Bienvenue ! - Inscrivez vous pour poster ! -
@Boo + 15 inconnu(s)

Login :  Mot de passe :      Se souvenir de moi.  Mot de passe perdu ?
/!\:: Cliquez ici pour vous inscrire et poster, créer des sujets ou des forums ! ::/!\
 « Précédent - 2/2 - » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Prog C TI (45r) » `tigcc' not found
./29 - REPRISE AUTOMATIQUE DU MESSAGE PRECEDENT
18.06.2001 - 25145
17:24  Folco - Posté : 10-09-2011  M

Autres indices :
Quand je dis à C::B de me lancer un terminal, et que moi-même je table ./build.sh, ça marche. Les variables globales sont bonnes.
Quand je dis à C::B de me lancer ça : /bin/bash -c './build.sh, ça ne marche pas non plus.

Que puis-je fournir encore, comme indices, pour établir un diagnostic ?


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./Publicité AdSense
./30
10.06.2001 - 1959
19:02  nitro - Posté : 10-09-2011  M

Essaye avec "export TIGCC=..." dans ton script.


So much code to write, so little time.
./31
18.06.2001 - 25145
19:22  Folco - Posté : 10-09-2011  M

Même diagnostic.

C::B exécute précisément ça :
Launching tool 'Build': xterm -T 'Build' -e /usr/local/bin/cb_console_runner ./build.sh  (in /mnt/Data/Programmation/TI/Perso/pdt/as/src)

Je sais pas ce que fabrique ce cb_console_runner, mais quand je lance à la main build.sh dans un xterm, ça marche très bien...


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./32
11.11.2001 - 113079
19:39  @vince - Posté : 10-09-2011  M

Folco (./29) :
Que puis-je fournir encore, comme indices, pour établir un diagnostic ?

Une IRM du pancréas du patient


Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238
./33
18.06.2001 - 25145
20:09  Folco - Posté : 10-09-2011  M

Tu mates trop Dr House toi :D


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./34
11.11.2001 - 113079
20:23  @vince - Posté : 10-09-2011  M

tu crois ?


Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238
./35
18.06.2001 - 25145
20:42  Folco - Posté : 10-09-2011  M

Bon, ça a l'air d'être tordu du string du côté de chez C::B. Je découvre, mais je suis vraiment ébahi.
Donc cb_console_runner à l'air de se foutre pas mal des variables d'environnement. J'aime les programmes qui se la jouent perso et qui se branlent du contexte.

Je vais donc dans le menu "Settings -> Environment -> Environment variables".
Et là, je redéfinit $TIGCC. Miracle ! Quand j'appelle /usr/local/share/gcc4ti/bin/tigcc, ça marche. C'est bon j'ai trouvé !
Enhardi par ce succès, j'ose rajouter PATH=$PATH:$TIGCC/bin

Et là manque de pot, ça merde. Les bras et le moral retombent.


Bon, ben retour vers les forums de C::B. Ya certainement une explication surgéniale au fait qu'un programme se branle de la configuration de l'environnement, et oblige à redéfinir exactement la même chose (mais pas tout à fait, faut qu'il y ait un truc qui déconne quand même) en parallèle.
Et déjà, il faut respécifier à C::B le shell qu'on utilise. Plutôt que d'utiliser le shell associé à mon login, non, monsieur préfère sh, et il faut lui demander pour qu'il utilise bash. Et même quand il daigne le faire, c'est bash sans sa configuration qu'il utilise. Comprends rien moi. #bang#


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./36
11.06.2001 - 19035
00:19  PpHd - Posté : 11-09-2011  M

Utilise un éditeur digne de ce nom, et pas çà.



./37
11.11.2001 - 113079
00:42  @vince - Posté : 11-09-2011  M

(tu en as un à recommander ?)


Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238
./38
18.06.2001 - 25145
00:43  Folco - Posté : 11-09-2011  M

Emacs %)

J'ai utilisé et j'y repense ^^


En fait, ça viendrait comme d'habitude de moi. Indice donnés pas Jens sur le forum de CB, merci à lui : quand bash est lancé de manière non interactive (non dans un terminal (option -i), mais pour interprêter un fichier comme c'est le cas ici), il ne tient pas compte des différents bashrc (ni dans /etc, ni dans ~).
Le seul script utilisé sera /etc/profile. Donc il est normal que les variables définies dans mon ~/.bashrc ne soient pas définies quand bash est appelé pour lancer directement mon script (comme c'est le cas ici, je demande à xterm de faire exécuter build.sh par bash, et pas de me lancer un bash en mode interactif).

De là, je vois deux solutions :
- sourcer /etc/bashrc dans /etc/profile (et non /etc/bash.bashrc, parce que ce script quitte explicitement s'il est lancé en mode non interactif, au moins sous Debian)
- définir la variable $BASH_ENV pour la faire pointer vers /etc/bashrc, parce que bash exécute le script pointé par cette variable s'il est exécuté en mode non interactif.

La doc ici : http://pwet.fr/man/linux/commandes/bash

Maintenant, je vais essayer tout ça. Mais ça fait plaisir, j'avais toujours évité de mettre les doigts dans ces fichiers de conf parce que ça me plaisait pas, mais là je suis bien obligé. :D


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./39
18.06.2001 - 25145
02:02  Folco - Posté : 11-09-2011  M

Bon, donc après moultes essais, c'est le triomphe, tout marche comme attendu et j'ai compris comment ça marche \\\o///

J'ai donc :

- hardcodé path et variables dans /etc/profile. Evidemment ça marche, mais c'est dégueu. Poubelle.

- sourcé /etc/bashrc dans /etc/profile. Ca marche, mais ça fait une définition de PATH et de TIGCC dans /etc/bashrc, une autre dans ~/.bashrc. Poubelle.

- sourcé ~/.bashrc dans /etc/profile. En plus de devoir faire sauter la protection de ~/.bashrc qui veut pas s'exécuter dans un shell non interactif, c'est encore plus crade que la première solution, vu que mon bashrc perso devient system wide. Ca marche, mais poubelle avec malédictions sur les 7 prochaines générations

- Enfin, la solution retenue. Je la mets, elle peut servir à d'autres :
dans /etc/profile :
BASH_ENV=~/.gcc4ti

dans /etc/.bashrc, rajouter :
. ~/.gcc4ti

créer ~/.gcc4ti :
#!/bin/bash 
 
TIGCC="/usr/local/share/gcc4ti" 
export TIGCC 
 
PATH="$PATH:$TIGCC/bin" 
export TIGCC

Voilà, comme ça c'est à peu près propre :
- il n'y a pas d'informations globales au système pour les shell de logins ou les shell interactifs.
- les données concernant gcc4ti sont centralisées dans un seul fichier de mon répertoire personnel
- BASH_ENV est défini avec ~, donc les données de gcc4ti ne sont définies que sous mon login, c'est bien.

Voilà donc, maintenant ça marche au poil, et si ya quelque chose que j'ai raté, n'hésitez pas. :)

Edité par Folco le 11-09-2011 à 12:31:26.

<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./40
11.11.2001 - 113079
10:50  @vince - Posté : 11-09-2011  M

La guerre en Afhanistan.


Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // http://www.yaronet.com/posts.php?s=6238
./41
10.06.2001 - 6393
11:04  Uther - Posté : 11-09-2011  M

et tout simplement déclarer la variable et le path dans ton .profile ou .bash_profile, ca marche pas?



./42
18.06.2001 - 25145
11:19  Folco - Posté : 11-09-2011  M

Je pense que non, il faudrait que bash soit lancé avec --login pour que .profile soit lu. Mais j'ai pas essayé.
Le seul fichier dont on soit sûr de l'exécution quand un bash non itneractif est lancé est le script ponité par BASH_ENV.

Il y a même un --noprofile qui désactive la lecture des *profile, alors que rien ne semble prévu pour désactiver la lecture de BASH_ENV.


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./43
18.06.2001 - 25145
12:48  Folco - Posté : 11-09-2011  M

Bon, vu que ma solution à base de .bashrc marche, il faut absolument que je la modifie, sinon ça va continuer à marcher et je pourrai utiliser mon PC.

Plus sérieusement, j'ai des problèmes de concept :

Problème n°1 :
La valeur de la variable que j'ai installé dans /etc/profile est "~./gcc4ti". Ca se passera toujours bien sur mon système, mais unix étant conçu multi-utilisateurs, c'est débile. Qui d'autre voudrait d'un .gcc4ti dans son ~ ? Personne.
Il serait donc plus judicieux de donner par exemple "~/.autoexec" comme valeur à ENV_VAR. Après, libre à chaque utilisateur de se définir un .autoexec si ça l'amuse, et d'en faire ce que bon lui semble.


Problème n°2 :
J'ai centralisé dans .gcc4ti la mise en place de variables. Du coup, ce script est lancé quelque soit le type d'invocation de bash : shell interactif, shell de login, shell non interactif. Alors que précisément, Monsieur Bash s'est ingénié à ce qu'on puisse automatiquement avoir des paramètres différents suivant les modes d'utilisation de bash, ce qui est au demeurant fort commode.

Donc idéalement, il faudrait mettre la configuration de GCC4TI :
- dans .bashrc
- dans .autoexec

Mais pour ne pas maintenir ça en double, je pourrais tout simplement faire un .gcc4ti appelé par ces deux scripts.



Que pensez-vous de tout ça, question concept et logique ?


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./44
27.04.2006 - 36104
01:27  @Zerosquare - Posté : 12-09-2011  @_ö

Pourquoi ne pas lancer simplement ton .autoexec à partir de ton .bashrc ? (.autoexec serait alors un fichier qui contiendrait les trucs à lancer quelque soit la façon dont tu démarres le shell)


Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
./45
18.06.2001 - 25145
10:48  Folco - Posté : 12-09-2011  M

C'est le problème que je tende de défricher dans le n°2. Bash sépare la configuration pour chacun de ses types de lancement, et n'a pas de fichier de configuration commun. Créer une configuration commune, c'est un peu court-circuiter ce principe. Mais c'est pourtant ce que je cherche. Ahlala, c'est pas simple d'être sûr du bon concept ^^


<<< Kernel Extremist©®™ >>> WIP : r6 - 2014-03-08

Les ministres ne sont que des commis chargés d'exécuter les ordres des grands banquiers, des pantins dont la Haute Banque tire les ficelles. Alexandre Millerand, président du conseil des ministres...

Un des bienfaits de la Révolution est d'avoir livré la France aux hommes d'argent qui, depuis cent ans, la dévorent. Anatole France
./Publicité AdSense
 « Précédent - 2/2 - » :: Pages
 Index » Forum Ti 89, Titanium / 92+ / Voyage 200 et TI-Nspire » Prog C TI (45r) » `tigcc' not found

./Poster un nouveau message. - Ouvrir dans une nouvelle fenêtre
Login : Mot de passe :

url - image - media  
spoiler - pre - fixed
quote - box - hr
poll - code





Smileys
Smileys perso
Pièce jointe
     Flood control (?) :    
Les messages postés sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leurs contenus.

» yN ©1624 - Aide / Charte / Crédits
48ms | Statistiques