В Slackware использование sbopkg
позволяет создавать пакет из исходного кода. Репо не такой большой, как Debian, но это приятно.
Некоторое программное обеспечение может использовать переменные среды, например, в эмуляторе VICE c64, если для переменной
FFMPEG
задано значение yes
, это позволит ffmpeg
записывать эмулятор.
Я пытался использовать
$ export FFMPEG=yes; sudo sbopkg -B -i vice
но ffmpeg
отключен.
Вместо этого я должен был использовать
$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice
который работает.
Как использовать переменные окружения с sudo
?
источник
sudo
очищает переменные в среде перед вызовом данной команды. Вам нужно будет попросить его сохранить переменные в среде, чтобы ваша команда работала.Кроме того, вы должны будете
export
вFMPEG
переменной перед использованиемsudo
(export FMPEG=yes; sudo
), назначать его в том же ходу , как вызовsudo
(FMPEG=yes sudo
), или использованиеenv
(env FMPEG=yes sudo
).Чтобы сохранить переменные среды, используйте
-E
(или--preserve-env
):Также возможно установить определенные переменные среды как это:
Если это не удается из-за установленной политики безопасности, вызовите корневую оболочку и установите переменную там:
источник
обратите внимание, что:
(export a=b; command)
эквивалентноa=b command
. Обратите внимание на скобки.Тогда, если мы применим переменную не к,
sudo
а к прямойsbopkg
, то вместо того,FFMPEG=yes sudo sbopkg -B -i vice
чтобы сделатьsudo FFMPEG=yes sbopkg -B -i vice
Если полиция безопасности препятствует этому, то:
sudo bash -c "FFMPEG=yes sbopkg -B -i vice"
(Не используйте
-E
, это нам небезопасно, так как это приведет к утечке всевозможных неожиданных переменных.)источник