Na Slackware użycie sbopkg
pozwala zbudować pakiet ze źródła. Repos nie jest duży jak Debian, ale jest fajny.
Niektóre oprogramowanie może wykorzystywać zmienne środowiskowe, na przykład na emulatorze VICE c64, jeśli zmienna
FFMPEG
jest ustawiona na yes
, umożliwia ffmpeg
rejestrowanie emulatora.
Próbowałem użyć
$ export FFMPEG=yes; sudo sbopkg -B -i vice
ale ffmpeg
jest wyłączone.
Zamiast tego musiałem użyć
$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice
który działa.
Jak używać zmiennych środowiskowych sudo
?
źródło
sudo
dezynfekuje zmienne w środowisku przed wywołaniem danego polecenia. Będziesz musiał poprosić go o zachowanie zmiennych w środowisku, aby twoje polecenie działało.Dodatkowo, trzeba będzie
export
wFMPEG
zmiennej przed użyciemsudo
(export FMPEG=yes; sudo
), przypisać go w tej samej podróży, jak wywoływaniesudo
(FMPEG=yes sudo
) lub zastosowanieenv
(env FMPEG=yes sudo
).Aby zachować zmienne środowiskowe, użyj
-E
(lub--preserve-env
):Możliwe jest również ustawienie określonych zmiennych środowiskowych, takich jak to:
Jeśli to się nie powiedzie ze względu na obowiązującą politykę bezpieczeństwa, uruchom powłokę root i ustaw tam zmienną:
źródło
zwróć uwagę, że:
(export a=b; command)
jest równoważne za=b command
. Zwróć uwagę na nawiasy.Jeśli zastosujemy zmienną nie do,
sudo
ale bezpośrednio dosbopkg
, zamiast tegoFFMPEG=yes sudo sbopkg -B -i vice
możemy to zrobićsudo FFMPEG=yes sbopkg -B -i vice
Jeśli policja bezpieczeństwa temu zapobiegnie, wówczas:
sudo bash -c "FFMPEG=yes sbopkg -B -i vice"
(Nie używaj
-E
, jest to niepewne, ponieważ wycieknie nieoczekiwane zmienne).źródło