web-dev-qa-db-fra.com

Impossible de définir les variables d'environnement dans ~ / .profile

Tous, j'ai besoin de définir des variables d'environnement dans mon ~/.profile puisque j'exécute un programme (QtCreator) qui ne démarre pas un shell bash.

Je ne peux pas pour la vie de le faire fonctionner cependant. QtCreator n’affichera aucune des variables d’environnement que j’ai définies sous "Environnement système".

Comment puis-je faire ceci?


Edit: Ok, en fait, ma question est de savoir pourquoi je ne peux pas source my_environment

mon_environnement:

 export SOME_PATH=blalalal

Si j'ajoute export SOME_PATH=blalalal à mon ~/.profile, cela fonctionne. Mais je ne peux pas utiliser source ~/.profile

2
Constantin

Voici l'histoire:

~/.profile - Dans ce fichier, vous pouvez également placer des assignations de variables d’environnement, car elles sont exécutées automatiquement par le DisplayManager lors de la session de bureau du processus de démarrage ainsi que par le shell de connexion lorsqu’on se connecte à partir de la console textuelle.

( source )

  1. solution: exporter les variables définies dans .profile.

    export VAR1 = foo

  2. solution: mettez les variables dans .bashrc, ouvrez un terminal et démarrez QtCreator à partir de la ligne de commande. Il devrait avoir les variables. N'oubliez pas de les exporter:

    export VAR1=foo
    
  3. solution: créez un wrapper pour démarrer votre programme, un petit script que vous exécutez au lieu d'exécuter le programme directement:

    #!/bin/bash
    
    export VAR1=foo
    program
    

    ou

     #!/bin/bash
    
     VAR1=foo program
    
  4. solution: éditez le fichier .desktop utilisé pour lancer l'application en modifiant la ligne d'exécution

     VAR1=foo program
    

    au lieu de

     program
    

    (Je n'ai pas testé ça, mais ça devrait marcher)

  5. solution: changer l'environnement. Vous avez raison dans votre commentaire, les programmes obtiennent un environnement, même s'ils ne le lisent pas depuis le .profile. L’environnement à l’échelle du système se trouve dans /etc/environment, mais vous pouvez également le définir par session, dans un fichier de votre répertoire personnel appelé .pam_environment. Voir ici pour plus d'informations. En passant, cette page explique parfaitement ce que font tous les fichiers et quand utiliser lesquels.

    Toutefois, je préfère les solutions 1 à 3, car elles modifient l’environnement du programme uniquement, et non de la session entière.

4
January

Déconnectez-vous et reconnectez-vous au système pour que le fichier .pam-environment soit lu et que la variable d'environnement soit reconnue.

0
Fernando Santucci