Forum Linux.debian/ubuntu [golang] path de crosscompilation non défini au démarrage

Posté par  . Licence CC By‑SA.
Étiquettes :
0
29
jan.
2013

hello,

J'ai un petit souci avec mon install de golang cross compilation.

De lien en lien, j'ai suivi ce wiki http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go pour realiser mon environnement de compilation.

Le script fais un tas de truc que je ne comprends pas particulièrement, en gros il compile et définit ceci :

go-all                     go-freebsd-arm
go-crosscompile-build      go-linux-386
go-crosscompile-build-all  go-linux-amd64
go-darwin-386              go-linux-arm
go-darwin-amd64            go-windows-386
go-freebsd-386             go-windows-amd64
go-freebsd-amd64 

J'ai par la suite ajouté ces lignes à mon ~/.profile

export GOPATH=$HOME/Bureau/go/last-build/mygo
export GOROOT=$HOME/Bureau/go/last-build/go
export PATH=$PATH:$GOROOT/bin

Surtout celle ci,

source $HOME/Bureau/go/last-build/golang-crosscompile/crosscompile.bash

Le problème est que désormais lorsque je re démarre l'ordinateur
les commandes de cross compilation ne sont plus accessible automatiquement,
le GOPATH est ok, je peux appeler go.

Pour rendre mes commandes de cc disponible,
je dois manuellement re sourcer crosscompile.bash dans le terminal.

Hors, moi je voudrais que ces commandes soit disponible pour toute ma session dès le démarrage.

Comment fait on ?

Autrement, existe t'il des paquets compatible ubuntu 12.10 avec toute l'artillerie de go-cc prêt à l'emploi ?
< troll_inside>
Ce serait plus simple, là je me galère avec des compilations manuelles à l'arrache, et surtout mercurial le fabuleux.
</ troll_inside>

Merci,
A+

  • # chez moi

    Posté par  . Évalué à 3.

    sur ubuntu 12.10

    :~$ aptitude search go | grep cc
    [...]
    p   gccgo                           - Go compiler, based on the GCC backend     
    [...]
    
    

    et pour l'histoire du path
    chez moi dans un terminal c'est par defaut le shell bash qui est lancé,
    donc plutot que .profile, c'est le .bashrc de l'utilisateur qui doit contenir les variables et la ligne
    source ...

    • [^] # Re: chez moi

      Posté par  . Évalué à 0.

      c'est tellement plus simple………… gccgo
      Même nom de package dans synaptic, juste l'interface.

      OK,

      Merci!

      • [^] # Re: chez moi

        Posté par  . Évalué à 2.

        désolé, sur ma machine, le terminal est deja ouvert alors que synaptic peine à demarrer ;)

        • [^] # Re: chez moi

          Posté par  . Évalué à 0.

          Clairement l'interface est moins puissante que la ligne de commande.
          Mais la flemme des fois d'utiliser la ligne de commande, à chaque fois je dois faire un man ceci, man cela pour avoir les options.
          Avec l'interface c'est moins pénible de trouver ce que l'on veut faire dans ce cas.

          Reste que, comme dit plus haut, ce n'est pas aussi puissant.

          Mais bon j'ai bon espoir que cela s'améliore :-)

    • [^] # Re: chez moi

      Posté par  . Évalué à 0.

      La solution à base de gccgo, pour toutes les bonnes raisons qu'elle peut avoir, m'ennuie,
      http://golang.org/doc/install/gccgo
      http://gcc.gnu.org/onlinedocs/gccgo/Invoking-gccgo.html#Invoking-gccgo
      http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html#Option-Summary

      Le script que j'ai trouvé me donne exactement ce que je veux, simplement, du coup je l'ai mise dans le .bashrc et c'est tout bon.

      Merci encore

      • [^] # Re: chez moi

        Posté par  . Évalué à 1.

        Uniquement pour donner la solution complète.

        Si vous utilisez liteide, il faudra aussi injecter les variables suivante dans votre.profile, sinon plus de compilation depuis l'ui.
        Par exemple,
        export GOPATH=$HOME/Bureau/go/last-build/mygo
        export GOROOT=$HOME/Bureau/go/last-build/go
        export PATH=$PATH:$GOROOT/bin

        Le pourquoi du comment, le 'man' vous le dira probablement, n'est ce pas.

        • [^] # Re: chez moi

          Posté par  . Évalué à 2.

          tout simplement parce que tu utilises une version personnalisée de go, celle que tu as compilé et pas celle du systeme,

          d'ailleurs y a peut-etre des options de configuration pour liteIDE pour lui dire ou trouver les binaires, plutot que de modifier tout ton systeme

  • # au sujet de bash

    Posté par  . Évalué à 1. Dernière modification le 30 janvier 2013 à 16:05.

    lire les pages de manuel ne fait pas de mal (man bash), et c'est en français :

    Lorsque bash est lancé comme interpréteur de commandes de connexion
    interactif ou comme interpréteur non interactif avec l'option --login,
    il lit et exécute tout d'abord les commandes se trouvant dans le
    fichier /etc/profile si ce fichier existe. Après lecture de ce fichier,
    il recherche ~/.bash_profile, ~/.bash_login et ~/.profile, dans cet
    ordre, puis lit et exécute les commandes se trouvant dans le premier
    fichier existant et accessible en lecture. L'option --noprofile peut
    être utilisée à l'appel de l'interpréteur pour empêcher ce comporte‐
    ment.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.