2015-08-14 2 views
1

У меня возникли проблемы с получением переменных envrionment на моем Ubuntu insance на EC2.System.getenv не находит переменные envrionment

Вот что в моем /etc/environment файле:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" 
DATABASE_URL="postgres://postgres:[email protected]:5432/suredbitsweb" 

теперь, когда я загрузить интерпретатор Scala, когда я пытаюсь и сделать следующее:

^[email protected]:~/suredbits-web$ sudo sbt console 
[info] Loading project definition from /home/ubuntu/suredbits-web/project 
[info] Set current project to suredbits-web (in build file:/home/ubuntu/suredbits-web/) 
[info] Downloading Bower dependencies for suredbits-web 
[info] https://github.com/MrRio/jsPDF.git#1.0.272 
[info] 1.0.272 against https://github.com/MrRio/jsPDF.git#~1.0.272 
[info] git://github.com/bitpay/bitcore-ecies.git#0.10.2 
[info] 0.10.2 against git://github.com/bitpay/bitcore-ecies.git#^0.10.0 
[info] git://github.com/bitpay/bitcore.git#0.10.4 
[info] 0.10.4 against git://github.com/bitpay/bitcore.git#^0.10.4 
[info] git://github.com/bitpay/bitcore-explorers.git#0.10.4 
[info] 0.10.4 against git://github.com/bitpay/bitcore-explorers.git#~0.10.4 
[info] git://github.com/bitpay/bitcore-message.git#0.10.1 
[info] 0.10.1 against git://github.com/bitpay/bitcore-message.git#~0.10.1 
[info] Starting scala interpreter... 
[info] 
Welcome to Scala version 2.11.4 (OpenJDK 64-Bit Server VM, Java 1.7.0_79). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> System.getenv("PATH"); 
res0: String = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

scala> System.getenv("DATABASE_URL"); 
res1: String = null 

scala> 

Я «перезагружается» мой экземпляр EC2 надеясь, что это поможет подобрать новую переменную среды. Я также попытался добавить переменную окружения к моему ~/.bashrc, который не сработал.

+1

Ваш DATABASE_URL видна из обычной оболочки с командой эхо $ DATABASE_URL? – Niemand

+0

Да, он доступен –

ответ

2

Я вижу, что проблема связана с командой sudo. Это приводит к переопределению ваших переменных окружающей среды. Для того, чтобы сохранить переменные окружения, запустить его с флагом -E, т.е.

sudo -E sbt console

+0

Я добавил больше к OP о том, как я запускаю интерпретатор Scala. Я использую команду 'sbt console', если это вообще имеет значение. Это для проекта Scala Playframework –

+0

См. Мои правки и попробуйте sudo -E. Похоже, ваш sudo переопределяет ваши переменные env. – Niemand

+0

Это была проблема. Благодаря! Пожалуйста, отформатируйте свой ответ, чтобы показать, что проблема 'sudo -E sbt console' была исправлена. –

0

Сначала проверьте выходы на echo $PATH и echo $DATABASE_URL.

Во-вторых, убедитесь, что вы запускаете scala-интерпретатор от нужного пользователя.

FYI: точка с запятой не требуется в scala.

+0

, если он помещает его в/etc/environment, тогда переменные должны быть общесистемными, а не конкретными пользователями. – Niemand

+0

Справа. Таким образом, этот совет не имеет значения. – Everv0id

+0

ubuntu @ ip-172-31-35-31: ~/suredbits-web $ echo $ PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games ubuntu @ ip-172-31-35-31: ~/suredbits-web $ echo $ DATABASE_URL postgres: // postgres: postgres @ localhost: 5432/suredbitsweb ubuntu @ ip-172-31-35-31: ~/suredbits-web $ –

Смежные вопросы