Я недавно установил Julia и понял, что по умолчанию используется предварительно скомпилированный двоичный файл.Прочитав об этом, я понял, что могу скомпилировать его с помощью модуля PackageCompiler
.Действительно, после загрузки модуля я получаю это сообщение:
julia> using PackageCompiler
WARNING: Your Julia system image is not compiled natively for this CPU architecture.
Please run `PackageCompiler.force_native_image!()` for optimal Julia performance
Поэтому я продолжаю использовать PackageCompiler.force_native_image!()
.Тем не менее, это дает мне эту ошибку после некоторой компиляции:
julia> PackageCompiler.force_native_image!()
INFO: Copying system image: /home/user/.julia/v0.6/PackageCompiler/sysimg/backup/native/sys.o to /usr/lib/julia/sys.o
ERROR: open: permission denied (EACCES)
Stacktrace:
[1] uv_error at ./libuv.jl:68 [inlined]
[2] open(::String, ::UInt16, ::UInt16) at ./filesystem.jl:81
[3] sendfile(::String, ::String) at ./file.jl:523
[4] #cp#10(::Bool, ::Bool, ::Function, ::String, ::String) at ./file.jl:227
[5] (::Base.Filesystem.#kw##cp)(::Array{Any,1}, ::Base.Filesystem.#cp, ::String, ::String) at ./<missing>:0
[6] copy_system_image(::String, ::String, ::Bool) at /home/user/.julia/v0.6/PackageCompiler/src/PackageCompiler.jl:49
[7] force_native_image!() at /home/user/.julia/v0.6/PackageCompiler/src/api.jl:116
[8] macro expansion at ./REPL.jl:97 [inlined]
[9] (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:73
Таким образом, в основном он пытается скопировать что-то в каталог только для корневого доступа: /usr/lib/
.
Исходя из Python, у меня никогда не было подобных проблем, и когда я делал это, я делал что-то не так.Так что я устал от запуска Джулии с sudo
и выполнения тех же шагов (что, я думаю, решит эту проблему, но, возможно, создаст другие проблемы с разрешениями в будущем).
Мой вопрос: как правильно это сделать?Действительно ли правильный путь запуска Юлии от имени root ?!(Документы не помогли с этим.)