Как просмотреть переменные среды?

Я пытаюсь подключиться к моему серверу-толкателю, но получаю ошибку:

Отсутствует конфигурация клиента: проверьте, что настроены ключ, секрет и app_id.

Я хочу проверить свои переменные среды, но пока не могу найти какой-либо четкий способ сделать это в Stack Overflow.

Ответ 1

Печать среды из командной оболочки

Как указывали другие ответы, можно использовать /usr/bin/env или /usr/bin/printenv из командной строки, чтобы увидеть, что среда находится в оболочке перед запуском Rails или в подоболочке после ее запуска. Например:

  • rails s RETURN
  • CTRL-Z
  • env RETURN
  • fg RETURN

Отображение ENV из уровня просмотра

В Ruby ENV является "хэш-подобным" доступом для переменных среды; на самом деле это не Хэш. Вы можете достаточно легко ввести ENV из консоли Rails, набрав env или ENV['foo'], но иногда вам может понадобиться посмотреть, что Rails считает среду во время рендеринга. В этом случае вы хотите Rails debug helper. Например:

# ERB
<%= debug ENV.to_h.to_yaml %>

# HAML
= debug ENV.to_h.to_yaml

Вызов #to_yaml для сериализации объекта ENV облегчит чтение вывода, но вам нужно сначала преобразовать ENV в хэш или массив. Вы также можете просто вызвать debug ENV без привязки; это просто тяжелее на глазах.

Ответ 2

Используйте команду ENV в консоли rails. Это вернет хэш ваших экологических ценностей, к которым вы можете получить доступ. Кроме того, вы можете получить доступ к своим переменным окружения из корневого пути приложений, используя ту же команду, и переменные будут возвращены в формате.

Ответ 3

Или используйте оболочку O/S, в Ubuntu используйте

printenv

Ответ 4

Я также использовал в слое вида следующее:

<% request.env.each do |key, value| %>
  <strong><%= key %></strong> => <%= value %><br/>
<% end %>

Мне было очень полезно отлаживать проблемы, вызванные переменными env, установленными на уровне пассажира /nginx, которые не отображались, когда я использовал консоль rails.

Ответ 5

Обе эти команды будут печатать для вывода переменных среды:

env

printenv