Jako przykład mojego pytania mój ~/.bashrc
plik zawiera następujące wiersze:
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/ia32:$LD_LIBRARY_PATH
export LD_PRELOAD=/opt/intel/mkl/lib/ia32/libmkl_core.so
aby Numpy (Python) mógł znaleźć biblioteki, które musi uruchomić, ponieważ jest budowany z kompilatorami MKL i Intel. Ten przepływ pracy nie jest najlepszy, ale to już inna historia.
Moje pytanie brzmi: w jaki sposób mogę przekazać dowolne zmienne (takie jak te w ~/.bashrc
), kiedy uruchamiam program z 'sudo' (ale nie rootem)?
Obecnie, jeśli uruchomię:
sudo python -c "import numpy"
Dostaję błąd:
ImportError: libimf.so: cannot open shared object file: No such file or directory*
Niektóre sugestie co sudo -i
albo sudo -E
nie robi nic tu zmienić.
Edytować:
Nie mogę odpowiedzieć na moje pytanie (za mało punktów: D), ale skomentuję tutaj, mając nadzieję, że inni początkujący użytkownicy Linuksa zastanawiają się nad sudo
pułapkami.
[Tylko tymczasowo!] To działa dla mnie ( ~/.bashrc
):
alias sudo='sudo env PATH=$PATH VAR1=SOME_VALUE VAR2=SOME_VALUE...'