Почему каждая создаваемая мной среда проекта не содержит правильных переменных (например, PATH)? Неправильно унаследованная среда? - PullRequest
0 голосов
/ 25 апреля 2020

Я не эксперт и не очень разбираюсь в командах ОС и оболочки. Я успешно сохранял свои API-ключи для своего проекта Flutter как переменные среды, пока у меня не возникли проблемы (не связанные с env), и мне не пришлось переустанавливать Flutter SDK. Flutter SDK теперь находится в другой папке, и я изменил свой PATH, чтобы включить его, чтобы не было проблем при создании и запуске проекта.

Если я вызываю printenv в любом терминальном сеансе или даже через простое выполнение файла дротика В рамках моего проекта Flutter, он печатает это как следует (исключая некоторые пары, но все значения по умолчанию есть):

BEAR_TOKEN=********* SDKMAN_CURRENT_API=https://api.sdkman.io/2 USER= SDKMAN_LEGACY_API=https://api.sdkman.io/1 PATH=/Users//.sdkman/candidates/kotlin/current/bin:/Users//Dev/Flutter/flutter/bin:/Users//.pub-cache/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users//Desktop/android: PWD=/Users/ LANG=en_US.UTF-8 SDKMAN_VERSION=5.6.1+290 XPC_FLAGS=0x0 HOME=/Users/ SDKMAN_DIR=/Users//.sdkman SDKMAN_CANDIDATES_DIR=/Users//.sdkman/candidates RAPID_API_KEY=***************

Однако теперь, когда я печатаю моя среда с помощью любой флаттерной программы:

PATH:/sbin:/system/sbin:/product/bin:/apex/com.android.runtime/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin, ANDROID_BOOTLOGO: 1, ANDROID_ROOT: /system, ANDROID_ASSETS: /system/app, ANDROID_DATA: /data, ANDROID_STORAGE: /storage, ANDROID_RUNTIME_ROOT: /apex/com.android.runtime, ANDROID_TZDATA_ROOT: /apex/com.android.tzdata, EXTERNAL_STORAGE: /sdcard, ASEC_MOUNTPOINT: /mnt/asec, BOOTCLASSPATH: /apex/com.android.runtime/javalib/core-oj.jar:/apex/com.android.runtime/javalib/core-libart.jar:/apex/com.android.runtime/javalib/okhttp.jar:/apex/com.android.runtime/javalib/bouncycastle.jar:/apex/com.android.runtime/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/android.test.base.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar, DEX2OATBOOTCLASSPATH: /apex/com.android.runtime/javalib/cor

Так что это, очевидно, очень разные среды, поэтому я даже не могу получить доступ к своим API-ключам в моем приложении Flutter. Похоже, это влияет только на проекты Flutter. Может ли кто-нибудь помочь мне вроде «перенаправить» или исправить мою среду? Я понятия не имею, как это произошло, но я исчерпал все варианты, насколько мне известно. Я использую MacOS High Sierra 10.13.6.

Спасибо!

1 Ответ

0 голосов
/ 25 апреля 2020

Flutter SDK теперь находится в другой папке, и я изменил свой PATH, чтобы включить его, чтобы не было проблем при создании и запуске проекта.

Где вы изменили значение PATH ENV var? Обратите внимание, что существуют файлы .rc и .sh, которые создаются только при создании оболочки входа в систему. Я не знаю, как вы запускаете Flutter, но я предполагаю, что он запускается как демон под своим собственным пользователем, а не из оболочки входа в систему. Вы начинаете это с systemd или используете сценарий инициализации в стиле POSIX? Под каким пользователем он запускается?

...