web-dev-qa-db-fra.com

Mac OS X Lion ne reconnaît plus environment.plist?

Je viens d'installer Lion aujourd'hui et ma variable d'environnement PATH n'est plus définie par ~/.MacOSX/environment.plist. Quelque chose a changé? Je n'arrive pas à trouver des informations à ce sujet ni sur la façon de les réparer. Des idées?

Voici le contenu du PLIST:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PATH</key>
    <string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11/bin:/Users/mdi/bin</string>
</dict>
</plist>
29
Michael Irwin

Utilisez plutôt ~/.launchd.conf (voir man launchctl).

Voir cette réponse pour plus de détails.

14
LaC

J'ai rencontré le même problème aujourd'hui. J'ai appelé l'assistance Apple et, après avoir été transféré à un conseiller principal, puis à son superviseur, on m'a dit qu'ils ne prenaient plus en charge environment.plist et qu'il n'existait aucune méthode officiellement prise en charge pour définir les variables d'environnement dans Mac OS 10.7.

15
sworisbreathing

Que Apple soutienne ou non officiellement ce mécanisme, la note technique actuelle Questions techniques QA1067 reste précise. Une mise en garde importante est toutefois absente: la liste de propriétés doit être au format binaire. Xcode 4, lorsqu'il est utilisé pour créer de nouvelles listes de propriétés, émet des fichiers au format texte (quel que soit le type spécifié dans l'inspecteur de fichier). Donc vous devez soit convertir le fichier sauvegardé en utilisant 'plutil': 

plutil -convert binary1 environment.plist

ou utilisez "par défaut" pour écrire un nouveau fichier modèle que vous pouvez éditer dans Xcode (qui respecte le format binaire original lors de la sauvegarde):

defaults write defaults write $HOME/.MacOSX/environment Root "1"
10
Shawn

Faites-le comme un breuvage et créez un lien symbolique dans/usr/local/bin /. Fonctionne parfaitement pour moi et IMO est une solution plus unix-like où tout est un fichier.

1
Programmer

Je viens de me faire brûler par quelque chose de similaire dans Snow Leopard, puis j'ai compris quel était le problème.

Je faisais:

$ cd
$ defaults write .MacOSX/environment FOO bar

... mais il s'avère que c'est différent de faire (dans mon cas):

$ cd
$ defaults write /Users/ljnelson/.MacOSX/environment FOO bar

C'est-à-dire que le "chemin" (ce n'est pas vraiment un chemin) de votre domaine doit être le chemin complet du fichier $HOME/.MacOSX/environment.plist (moins le suffixe .plist). Tout le reste écrira des variables dans un domaine différent (aucune idée de l'endroit où il a été mis), apparemment.

Donc, résultat: faites toujours defaults write /full/path/to/your/.MacOSX/environment VARNAME value; n'utilisez aucun raccourci pour le premier argument de la sous-commande write.

1
Laird Nelson

Bizarre, car ici ça marche parfaitement. J'ai dû configurer un environnement JRI pour accéder aux composants internes R à partir d'applications Java. La mise à jour du fichier .profile n'était pas suffisante pour que NetBeans capture tous les vars env.

La création du fichier environment.plist a fait l'affaire.

Pour référence ce contenu du fichier:

Malessere:~ xxxxx$ cat .MacOSX/environment.plist 
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
      <key>DYLD_LIBRARY_PATH</key>
      <string>/Users/xxxxx/lib/jri-2.13</string>
      <key>R_HOME</key>
      <string>/Library/Frameworks/R.framework/Resources</string>
   </dict>
   </plist>
1
ostefano

J'ai récemment emballé les outils utilisés par la phase de script d'exécution de Xcode et les ai placés dans $ HOME/bin. La variable d'environnement PATH de mon shell bash incluait cela, alors j'ai supposé que le Xcode le serait aussi.

Cela n'a jamais fonctionné et j'ai trouvé des problèmes comme celui-ci. 

J'ai imprimé la variable PATH à partir du script (echo $ PATH) appelé par Xcode pour voir ce que la variable PATH était définie.

Heureusement, l’un de ces chemins, /Applications/Xcode.app/Contents/Developer/usr/local/bin n’a jamais été utilisé.

Voici ma solution. J'ai créé un lien symbolique à partir du répertoire ci-dessus vers $ HOME/bin.

Naviguez jusqu'à /Applications/Xcode.app/Contents/Developer/usr/local et exécutez Sudo ln -s $ HOME/bin bin.

Mes outils étaient maintenant disponibles sur la plate-forme Xcode.

0
lazarus

[[Je recopie ici ma réponse, car cela pourrait peut-être aider quelqu'un:]]

Grâce à mes propres explorations, je sais maintenant comment définir les variables d’environnement de 7 manières sur 8. J'essayais de créer un environnement pour une application que je développe sous Xcode. Je règle les envars "traceurs" en utilisant ces différentes méthodes pour me dire lesquelles entrent dans le champ de mon application. Dans la liste ci-dessous, vous pouvez voir que la modification du "schéma" dans Xcode pour ajouter des arguments fonctionne de la même manière que "putenv". Ce qui ne l’a pas défini dans cette étendue: ~/.MACOS/environment.plist, plist spécifique à l’application, .profile et l’ajout d’une phase de construction pour exécuter un script personnalisé (j’ai trouvé un autre moyen de définir Xcode dans Xcode [au moins]]. une mais j'ai oublié ce que j'ai appelé le traceur et je ne le trouve pas maintenant, c'est peut-être sur une autre machine ....)

GPU_DUMP_DEVICE_KERNEL est égal à 3

GPU_DUMP_TRK_ENVPLIST est (null)

GPU_DUMP_TRK_APPPLIST est (null)

GPU_DUMP_TRK_DOTPROFILE est (null)

GPU_DUMP_TRK_RUNSCRIPT est (null)

GPU_DUMP_TRK_SCHARGS est 1

GPU_DUMP_TRK_PUTENV est 1

... D'autre part, si j'entre dans Terminal et que je dis "set", il semble que le seul élément obtenu est celui de .profile (j'aurais pensé que cela ramasserait environment.plist aussi, et je suis bien sûr, une fois que jai vu un deuxième env. de traceur dans Terminal, quelque chose a probablement disparu depuis; longue journée ....)

0
Photovore

Par défaut, Mac OS X (10.7.4 et supérieur) ne le prend plus en charge. Voir http://support.Apple.com/kb/TS4267

0
mac joost

Vous pouvez éditer votre ~/.MacOSX/environment.plist avec cet exemple de $PATH:

defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"

Cela va réécrire votre ~/.MacOSX/environment.plist

ou éditez ce fichier:

/etc/paths

pour changer l'ordre des variables système.

0
gylow