Compilation 如何为我的CPU本机编译Julia?

Compilation 如何为我的CPU本机编译Julia?,compilation,julia,packagecompiler.jl,Compilation,Julia,Packagecompiler.jl,我不久前安装了Julia,我意识到它默认使用预编译的二进制文件。阅读了相关内容后,我意识到我可以使用PackageCompiler模块以本机方式编译它。事实上,在加载模块时,我收到以下消息: julia> using PackageCompiler WARNING: Your Julia system image is not compiled natively for this CPU architecture. Please run `PackageCompiler.f

我不久前安装了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\u native\u 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
julia>PackageCompiler.force\u native\u image!()
信息:正在将系统映像:/home/user/.julia/v0.6/PackageCompiler/sysimg/backup/native/sys.o复制到/usr/lib/julia/sys.o
错误:打开:权限被拒绝(EACCES)
堆栈跟踪:
[1] uv_错误位于./libuv.jl:68[内联]
[2] 在./filesystem.jl:81处打开(::字符串,::UInt16,::UInt16)
[3] sendfile(::String,::String)位于./file.jl:523
[4] #cp#10(::Bool,::Bool,::函数,::字符串,::字符串)位于./file.jl:227
[5] (::Base.Filesystem.#kw##cp)(::数组{Any,1},::Base.Filesystem.#cp,::String,::String)at./:0
[6] 复制/home/user/.julia/v0.6/PackageCompiler/src/PackageCompiler.jl中的系统映像(::字符串,::字符串,::Bool)
[7] 强制使用本地图像!()位于/home/user/.julia/v0.6/PackageCompiler/src/api.jl:116
[8] 宏扩展位于./REPL.jl:97[内联]
[9] (::Base.REPL.##1#2{Base.REPL.replbend})在./event.jl:73
因此,基本上,它试图将某些内容复制到根目录中,该目录仅限访问:
/usr/lib/

来自Python,我从来没有遇到过这样的问题,当我这么做的时候,意味着我做错了什么。因此,我厌倦了用
sudo
运行Julia,并执行相同的步骤(我认为这将解决此问题,但可能会产生其他权限问题)


我的问题是:正确的方法是什么?让茱莉亚当根真的是正确的方式吗?!(文档对此没有任何帮助。)

我想这取决于您将julia安装在何处(我假设这是在Linux上)。显然,要替换julia安装,您需要处于对julia安装目录具有写访问权限的状态。在我的linux机器上,我只需将julia放在我的主文件夹中,并按照安装说明进行符号链接。@MichaelK.Borregaard这是一个选项,但我是通过软件包管理器(我使用的是Arch linux)安装的,默认情况下,它会安装在
/usr/
目录中。我想应该有一种方法可以做到这一点,而不必手动将其安装到我的主文件夹中。你能给我指一下你看到符号链接的文档吗?我不记得在文件里看到过。