首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Julia + Centos - Arpack无法构建

Julia + Centos - Arpack无法构建
EN

Stack Overflow用户
提问于 2019-07-17 16:09:33
回答 3查看 528关注 0票数 2

我使用yum和epel在我的CentOS机器上安装了julia (v1.1.1),如[platform specific instructions(https://julialang.org/downloads/platform.html) ]中所述。

Julia工作得很好,但是在预编译包(例如using DataFrames)时,我得到

代码语言:javascript
运行
复制
[ Info: Precompiling GLM [38e38edf-8417-5370-95a0-9cbb8c7f171a]
ERROR: LoadError: No deps.jl file could be found. Please try running Pkg.build("Arpack").
Currently, the build command might fail when Julia has been built from source
and the recommendation is to use the official binaries from julialang.org.
For more info see https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/5.

我不太了解编译、从源代码构建等方面的知识,无法解决这个问题。我想如果我只是从主页下载Julia并在该文件夹中使用它,它会工作得很好。但我更喜欢通过包管理器使用它来自动接收更新。

我该如何解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2019-08-04 00:47:06

不幸的是,这是意料之中的,因为Arpack.jl希望OpenBLAS被称为libopenblas64_.so.0,而在Fedora/CentOS中它是libopenblasp64_.so.0。您可以使用sudo ln -s /lib64/libopenblas64p_.so.0 ~/.julia/packages/Arpack/*/deps/lib/libopenblas64_.so.0解决此问题。我将尝试与Arpack.jl开发人员一起寻找解决方案。

票数 2
EN

Stack Overflow用户

发布于 2019-07-23 19:59:03

所以我最终通过原始的julialang页面解决了这个问题。出于某些原因,如果您通过# yum install julia安装julia (启用了epel ),则无法构建Arpack

如果您从官方页面下载julia并将其添加到path,它仍然会抛出相同的错误消息。但是,如果你事先启动julia并运行Pkg.build("Arpack"),它会工作的很好!

票数 0
EN

Stack Overflow用户

发布于 2019-08-08 18:25:51

我确认@MilanBouchet-Valat解决方案有效。以下是Debian发行版的一些细节。

我使用Debian 4.19.37-5包管理器(例如synaptic)安装了Julia。我有过

代码语言:javascript
运行
复制
julia> versioninfo()

打印

代码语言:javascript
运行
复制
Julia Version 1.0.4
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2603 v3 @ 1.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, haswell)

  • The symptoms

在Julia下,当我试图安装Arpack包时,我得到了“预期的”错误:

代码语言:javascript
运行
复制
(v1.0) pkg> add Arpack

打印

代码语言:javascript
运行
复制
 Resolving package versions...
  Updating `~/.julia/environments/v1.0/Project.toml`
  [7d9fca2a] + Arpack v0.3.1
  Updating `~/.julia/environments/v1.0/Manifest.toml`
 [no changes]

然后

代码语言:javascript
运行
复制
julia> using Arpack

打印

代码语言:javascript
运行
复制
[ Info: Precompiling Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97]
ERROR: LoadError: No deps.jl file could be found. Please try running 
Pkg.build("Arpack").

Currently, the build command might fail when Julia has been built from source
and the recommendation is to use the official binaries from julialang.org.
For more info see https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/5.

Stacktrace:
 [1] top-level scope at /home/picaud/.julia/packages/Arpack/cu5By/src/Arpack.jl:19
 [2] include at ./boot.jl:317 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1044
 [4] include(::Module, ::String) at ./sysimg.jl:29
 [5] top-level scope at none:2
 [6] eval at ./boot.jl:319 [inlined]
 [7] eval(::Expr) at ./client.jl:393
 [8] top-level scope at ./none:3
in expression starting at /home/picaud/.julia/packages/Arpack/cu5By/src/Arpack.jl:16
ERROR: Failed to precompile Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97] to /home/picaud/.julia/compiled/v1.0/Arpack/X5VZL.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1203
 [3] _require(::Base.PkgId) at ./loading.jl:960
 [4] require(::Base.PkgId) at ./loading.jl:858
 [5] require(::Module, ::Symbol) at ./loading.jl:853

然而,

代码语言:javascript
运行
复制
 pkg> build Arpack

打印

代码语言:javascript
运行
复制
  Building Arpack → `~/.julia/packages/Arpack/cu5By/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/picaud/.julia/packages/Arpack/cu5By/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/picaud/.julia/packages/BinaryProvider/TcAwt/src/Products.jl:414
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1044
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:392
│  [9] top-level scope at none:0
│ in expression starting at /home/picaud/.julia/packages/Arpack/cu5By/deps/build.jl:74
└ @ Pkg.Operations /build/julia-gbfU8y/julia-1.0.4+dfsg/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1096

  • The diagnostic

您可以使用以下命令检查这是否存在依赖关系问题:

代码语言:javascript
运行
复制
ldd ~/.julia/packages/Arpack/cu5By/deps/usr/lib/libarpack.so

打印

代码语言:javascript
运行
复制
    linux-vdso.so.1 (0x00007ffc179a1000)
    libopenblas64_.so.0 => not found            <----
    libgfortran.so.5 => /usr/lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007feea073d000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007feea05ba000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007feea05a0000)
    libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007feea0557000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feea0396000)
    /lib64/ld-linux-x86-64.so.2 (0x00007feea0c67000)

Debian发行版:

代码语言:javascript
运行
复制
find /usr/lib/ -name libopenblas\*

打印

代码语言:javascript
运行
复制
/usr/lib/x86_64-linux-gnu/libopenblas.so
/usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.6.a
/usr/lib/x86_64-linux-gnu/libopenblas64_.so.0
/usr/lib/x86_64-linux-gnu/julia/libopenblas.so
/usr/lib/x86_64-linux-gnu/libopenblas.so.0
/usr/lib/x86_64-linux-gnu/libopenblas.a
/usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.6.so

  • The "fix"

使用root权限(su)创建符号链接

代码语言:javascript
运行
复制
ln -s /usr/lib/x86_64-linux-gnu/libopenblas.so /usr/lib/x86_64-linux-gnu/libopenblas64_.so.0

现在它可以工作了

代码语言:javascript
运行
复制
pkg> build Arpack
Building Arpack → `~/.julia/packages/Arpack/cu5By/deps/build.log`

然后

代码语言:javascript
运行
复制
using Arpack
[ Info: Precompiling Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97]

都没问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57071338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档