Slackware에서 를 사용하면 sbopkg
사람들이 소스 코드에서 패키지를 빌드할 수 있습니다. Repos는 데비안만큼 크지는 않지만 여전히 매우 좋습니다.
일부 소프트웨어는 환경 변수를 사용할 수 있습니다(예: VICE c64 에뮬레이터에서 이 변수가
FFMPEG
로 설정 yes
되면 ffmpeg
로깅 에뮬레이터가 활성화됩니다).
나는 사용하려고
$ export FFMPEG=yes; sudo sbopkg -B -i vice
하지만 ffmpeg
비활성화되었습니다.
대신에 나는 사용해야했다
$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice
이것은 작동합니다.
환경변수는 어떻게 사용하나요 sudo
?
답변1
sudo의 옵션을 사용할 수 있습니다 -E
.
FMPEG=yes sudo -E sbopkg -B -i vice
매뉴얼에서:
-E, --preserve-env
사용자가 기존 환경 변수를 유지하기를 원하는 보안 정책을 나타냅니다. 사용자에게 환경을 보호할 권한이 없으면 보안 정책에서 오류가 반환될 수 있습니다.
이번 수출에 참고하세요모두기존 환경 변수.다음 구문을 사용하여 필요한 환경 변수만 내보내는 것이 더 안전합니다.:
sudo FMPEG=yes sbopkg -B -i vice
답변2
sudo
지정된 명령을 호출하기 전에 환경의 변수를 정리합니다. 명령이 제대로 작동하려면 환경에서 변수를 보존하도록 요청해야 합니다.
추가적으로 ()를 사용하기 전에 변수에 값을 할당하거나 export
, ()를 호출할 때와 동일한 과정에서 변수에 값을 할당하거나, ()를 사용해야 합니다.FMPEG
sudo
export FMPEG=yes; sudo
sudo
FMPEG=yes sudo
env
env FMPEG=yes sudo
환경 변수를 보존하려면 -E
(또는 --preserve-env
)을 사용하십시오.
$ env FMPEG=yes sudo -E sbopkg -B -i vice
특정 환경 변수는 다음과 같이 설정할 수도 있습니다.
$ sudo FMPEG=yes sbopkg -B -i vice
보안 정책으로 인해 실패하는 경우 루트 셸을 시작하고 거기에 변수를 설정합니다.
$ sudo -s
# env FMPEG=yes sbopkg -B -i vice
# exit
답변3
참고: 괄호 (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
. 예상치 못한 모든 변수가 유출될 수 있으므로 안전하지 않습니다.)