Де встановлені змінні системного середовища в Mountain Lion?


46

У Леві (та попередніх випусках) він був у .MacOSX/environment.plist. Після оновлення до 10,8 файл все ще є, але змінні не беруть.

Я також спробував їх додати, /etc/launchd.confі вони з’являться в терміналі, але не в GUI-додатках (як у моїй IDE).


Ви перезавантажилися після зміни /etc/launchd.conf?
— nohillside

Я це зробив, і всі змінні в ньому тепер доступні в будь-якому терміналі, але для моєї IDE немає.
— Фелікс

Може бути, IDE не піддає вам оточення (Дивіться мою відповідь )? Що це за IDE? це запуск безпосередньо Finder або Spotlight?
— halloleo

Відповіді:


22

Я також задав це запитання на Форумах розробників Apple і отримав цю офіційну відповідь.

Змініть Info.plist самого .app, щоб він містив словник "LSEn Environmentment" із змінними середовища.
~ / .MacOSX / environment.plist більше не підтримується.


2
Де це знаходиться?
— orome

Було б корисно надати посилання на більш конкретний приклад.
— Blaisorblade

1
Оновлення: я спробував змінити цей файл після з'ясування синтаксису (я думаю), але він для мене зовсім не працює.
— Blaisorblade

4
Буде Info.plist на додаток у WhatEver.app/Content/Info.plist. Ви можете редагувати його за допомогою XCode. Клацніть "+" у списку властивостей інформації та додайте словник під назвою LSEn Environmentment. Якщо ви правильно введете його, він перейменовує його в змінні середовища. Потім ви натискаєте "+" за допомогою кожної змінної середовища, яку ви хочете додати.
— Фелікс

2
Це приємне рішення, але воно більше не працює як Yosemite 10.10.5.
— Далмазіо

21

Я знаю, що це давнє питання, але я думав, що хочу зазначити, що в Йосеміті /etc/launchd.confбільше не працює (як це підтверджено на сторінці man). Тож ось альтернатива.

Запустіть редактор AppleScript, введіть таку команду:

do shell script "launchctl setenv variablename value"

(додайте скільки завгодно рядків)

Тепер збережіть (⌘S) як формат файлу: додаток . Нарешті відкрийте Налаштування системи → Користувачі та групи → Елементи входу та додайте нову програму.


Зауважте, що це може не працювати ні з іншими програмами, які відкриваються як елементи входу, і, можливо, тими, які ви швидко відкриєте після входу
— user151019

Це працювало для мене. Дуже дякую. Це весь день зводить з розуму!
— wholladay

2
Схоже, єдине справжнє та універсальне рішення поки що. Але для того, щоб піднятись та стати першою відповіддю, потрібно ще 9 подій. : c
— Сардж Борщ

Це працювало для мене на El Capitan. Як зазначав @Mark вище, є проблеми із замовленням (наприклад, відновлені програми можуть мати, а можуть і не мати оточення), але після входу в систему це працює так, як ви очікували. Тобто програми, запущені з Spotlight або Dock, мають правильне середовище.
— Алек Томас

@Mark Ви можете спробувати цю відповідь , використовуючи Агент запуску. У моєму випадку Агент запуску запускається після елементів входу, тому я переміщую цільову програму (наприклад, Eclipse) з елемента входу до агента запуску, так що вони будуть запущені після цієї спеціальної змінної середовища налаштування програми.
— Франклін Ю

10

Як ви виявили, використання файлу Environment.plist більше не дотримується, змінні, що зберігаються в Info.plist як рядки LSEnvironment , встановлюються лише запуском .

Ви не можете залежати від них, щоб встановити загальну змінну середовища, яку встановить термінал, якщо ви будете викликати програму безпосередньо з терміналу / оболонки. Хороша новина полягає в тому, що open -aкоманда запускає запуск, щоб зробити запуск, тому змінні будуть встановлені послідовно для середовища програми, якщо не для локальної середовища оболонки.


4

Встановлення змінних оточуючого середовища /etc/launchd.conf- це шлях. Кожна програма, запущена після перезавантаження локальними оболонками, Finder або Spotlight, успадковує ці змінні - я перевірив це великим чином у Mountain Lion 10.8.3.

2 застереження:


1
/etc/launchd.confбільше не підтримується з Yosemite. Дивіться apple.stackexchange.com/questions/106355/…
— Франклін Ю.

3

Спробуйте launchctl setenv NAME VALUE. Я не знаю, чи / чим він відрізняється від редагування launchd.conf, але він працює для мене як у терміналах, так і в GUI-програмах. Детальніше.

Зауважте, це не переживає при перезавантаженні. Ось спосіб це виправити .


3
Це досить довга сторінка, на яку ви посилаєтесь тут. Де саме знаходиться відповідна частина? Чи можете ви включити його безпосередньо у свою відповідь, щоб полегшити всім?
— nohillside

2
На жаль, я вважаю, що я включив більше фрагменту в цю URL-адресу. фіксований.
— ryan

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.