Вопрос или проблема
Прежде всего, я новичок в Linux и не понимаю многих вещей. Я работаю на Raspberry Pi OS, которая основана на Debian.
Есть файл с переменными окружения: “setup-env.sh”.
Выполните код в терминале:
source ~/vulkan/1.x.yy.z/setup-env.sh
И мы в деле.
Кроме того, что после перезагрузки, очевидно.
Итак, как я могу настроить эти переменные окружения автоматически при загрузке?
Я нахожу много ответов, которые говорят: sudo ~/.bashrc
. Но это дает мне ошибку “команда не найдена”. В документации Vulkan они советуют внедрить это в .profile. Но опять же sudo ~/.profile
— команда не найдена в моей Raspberry Pi OS.
И я выяснил трудным путем, что добавление PATH в /etc/environment
определенно не делает вас счастливее. Это кажется таким простым, но большинство людей/учебников пропускают это с упоминанием “вы на Linux, поэтому, вероятно, знаете как.“
Это документация Vulkan, если хотите взглянуть:
https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html
Итак, каков правильный способ настройки переменных окружения VULKAN_SDK из файла setup-env.sh
при загрузке?
Спасибо искренне!
Вот содержимое файла setup-env.sh:
# Copyright (c) 2015-2023 LunarG, Inc.
# source this file into an existing shell to setup your environment.
#
# See docs for in depth documentation:
# https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html
ARCH="$(uname -m)"
VULKAN_SDK="$(dirname "$(readlink -f "${BASH_SOURCE:-$0}" )" )/$ARCH"
export VULKAN_SDK
PATH="$VULKAN_SDK/bin:$PATH"
export PATH
LD_LIBRARY_PATH="$VULKAN_SDK/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH
VK_ADD_LAYER_PATH="$VULKAN_SDK/share/vulkan/explicit_layer.d${VK_ADD_LAYER_PATH:+:$VK_ADD_LAYER_PATH}"
export VK_ADD_LAYER_PATH
if [ -n "${VK_LAYER_PATH-}" ]; then
echo "Unsetting VK_LAYER_PATH environment variable for SDK usage"
unset VK_LAYER_PATH
fi
Когда вы входите в систему, читается ряд файлов. Если вы используете оболочку bash, как и вы, то один из этих файлов обычно ~/.bashrc
Всё, что вы можете напечатать, также может быть добавлено в этот файл. Таким образом, решение вашей текущей проблемы заключается в добавлении строки source ~/vulkan/1.x.yy.z/setup-env.sh
в конец этого файла.
Обратите внимание, что это
- Очень поверхностный ответ. Он дает вам ровно столько информации, сколько нужно, чтобы продолжить.
- Настраивает вещи при входе в систему, а не при загрузке, как вы запросили.
Команда sudo
, найденная вами в другом месте, является неправильным подходом. Я бы посоветовал вам не полагаться на этот источник информации.
Быстрый простой ответ
nano ~/.profile
Затем добавьте:
. /path/to/vulkan/1.x.yy.z/setup-env.sh
Дело закрыто
.
Ответ или решение
Установка переменных окружения для VULKAN_SDK на операционной системе Raspberry Pi OS (основанной на Debian) — это задача, с которой может столкнуться новичок в Linux. Хотя процесс может показаться запутанным, с правильными инструкциями вы сможете успешно настроить вашу систему.
Теоретическая часть
Проблема: Вы хотите, чтобы переменные окружения, необходимые для VULKAN_SDK, автоматически устанавливались при загрузке системы, а не каждый раз вручную с помощью команды source ~/vulkan/1.x.yy.z/setup-env.sh
.
Переменные окружения в Linux — это параметры, которые определяют рабочее окружение для приложений и процессов. Примеры таких переменных — PATH
, LD_LIBRARY_PATH
, и другие, которые вы видите в вашем setup-env.sh
файле.
Некоторые файлы, такие как ~/.bashrc
, ~/.profile
, и /etc/environment
, используются для автоматического задания этих переменных при запуске сеанса. Однако, важно отличать их использование:
~/.bashrc
: Этот файл читается всякий раз, когда вы открываете новый терминал или сеанс оболочки bash.~/.profile
: Этот файл читается при запуске входного сеанса (логина); подходит для однократной установки переменных во время входа в систему./etc/environment
: Этот файл используется для задания переменных окружения для всех пользователей, без спецификации команд оболочки или сложных выражений.
Практическая часть
Пример
Предположим, что ваш setup-env.sh
находится в каталоге ~/vulkan/1.x.yy.z/
. Содержимое этого файла должно быть добавлено в один из файлов для автоматического чтения их при входе в систему.
Применение
Шаг 1: Откройте файл ~/.profile
в вашем любимом текстовом редакторе. Так как вы используете командную строку, рекомендуем воспользоваться nano
, так как интерфейс этого редактора прост для понимания новичку.
nano ~/.profile
Шаг 2: В конец этого файла добавьте следующую строку:
source ~/vulkan/1.x.yy.z/setup-env.sh
Эта команда указывает системе загружать переменные, определенные в setup-env.sh
, каждый раз, когда начинается сеанс пользователя. Это значит, что вам не нужно самостоятельно вручную выполнять эту команду каждый раз.
Шаг 3: Сохраните и выйдите из редактора. В nano
это делается путем нажатия клавиши CTRL + X
, затем Y
для подтверждения сохранения изменений и Enter
для выхода.
После выполнения этих шагов переменные окружения будут автоматически устанавливаться при каждом входе в систему, без необходимости ручного выполнения команды.
Заключение
Настройка переменных окружения в Linux — важный шаг для обеспечения корректной работы программного обеспечения, зависящего от определенных настроек среды. В случае VULKAN_SDK, корректная настройка этих переменных позволяет инструментам, входящим в SDK, правильно работать, что в свою очередь гарантирует стабильность и функциональность ваших приложений, работающих на Vulkan.
Если вы в дальнейшем будете сталкиваться с подобными задачами или необходимостью настройки окружения для других инструментов или библиотек, знание, которое вы приобрели, будет весьма полезно. Не стесняйтесь экспериментировать с другими файлами настроек, такими как ~/.bashrc
или /etc/environment
, но всегда помните о различиях в их применении и последствиях изменений. Однако, как правило, для пользовательских настроек, которые должны применяться по входу пользователя, ~/.profile
— это более чем достаточное решение.