エラーのログと対処 †エラーの根本的な原因がわからないまま載せることが多いので,役には立たないかも. GMT.jl の precompile error †GMT.jl はコンパイル失敗しやすい. julia> using GMT: GMT [ Info: Precompiling GMT [5752ebe1-31b9-557e-87aa-f909b540aa54] ERROR: LoadError: failed process: Process(`grep libgdal`, ProcessExited(1)) [1] libgdal が探せていない?下は失敗した GMT.jl のソース部分. _GMTver, GMTbyConda, _libgmt, _libgdal, _libproj, _GMT_bindir = get_GMTver() if (!GMTbyConda) # In the other case (the non-existing ELSE branch) lib names already known at this point. _libgmt = haskey(ENV, "GMT_LIBRARY") ? ENV["GMT_LIBRARY"] : string(chop(read(`gmt --show-library`, String))) @static Sys.iswindows() ? (Sys.WORD_SIZE == 64 ? (_libgdal = "gdal_w64.dll") : (_libgdal = "gdal_w32.dll")) : ( Sys.isapple() ? (_libgdal = string(split(readlines(pipeline(`otool -L $(_libgmt)`, `grep libgdal`))[1])[1])) : ( Sys.isunix() ? (_libgdal = string(split(readlines(pipeline(`ldd $(_libgmt)`, `grep libgdal`))[1])[3])) : error("Don't know how to install this package in this OS.") ) ) @static Sys.iswindows() ? (Sys.WORD_SIZE == 64 ? (_libproj = "proj_w64.dll") : (_libproj = "proj_w32.dll")) : ( Sys.isapple() ? (_libproj = string(split(readlines(pipeline(`otool -L $(_libgdal)`, `grep libproj`))[1])[1])) : ( Sys.isunix() ? (_libproj = string(split(readlines(pipeline(`ldd $(_libgdal)`, `grep libproj`))[1])[3])) : error("Don't know how to use PROJ4 in this OS.") ) ) end const GMTver, libgmt, libgdal, libproj, GMT_bindir = _GMTver, _libgmt, _libgdal, _libproj, _GMT_bindir これをもとに下記コマンドで何が出てくるかを確認. ldd /usr/local/gmt/lib/libgmt.so | grep libgdal どうやら,もともと libgmt.so に libgdal が検出できていなかった模様. $ patchelf --add-needed libgdal.so libgmt.so $ ldd libgmt.so | grep libgdal.so libgdal.so => /usr/lib/libgdal.so (0x00007f8e8aae4000)
GMT.jl の makecpt,-D オプション †バージョン using GMT:GMT cpt = GMT.makecpt(C=:polar, T="-1.0/1.0", D=true, V=true) GMT.gmt("write tmp.cpt",cpt); で出力された tmp.cpt を見てみると, -1 blue 0 white 0 white 1 red B black F white N 127.5 となり,B, F に -D オプションの効果が入っていない. cptfile = "tmp.cpt" GMT.gmt("makecpt -Cpolar -T-1.0/1.0 -D -V > $cptfile") cpt = GMT.gmt("read -Tc $cptfile") run(`rm -f $cptfile`) と一旦 gmt コマンドをそのまま実行し,read で読むと良い. registry dirty †環境は Julia v1.0.3, Ubuntu 18.04 LTS. (v1.0) pkg> update をすると warning が出て ┌ Warning: Some registries failed to update: `~/.julia/registries/General` — registry dirty と言われた.何が dirty なのかは不明. cd ~/.julia/registries/General git fetch origin --prune git checkout -- . git reset --hard origin/master curlのエラーによるパッケージのアップデート,ビルドのエラー †バージョン: v1.0.0 curl: (48) An unknown option was passed in to libcurl Ubuntu/curl関係のエラーの修正をしたらビルド成功. (謎) 数値の誤表示? †バージョン: v0.6.2 画像から. 値を変更せず,全く同じことをしているのに, julia> ϕ[24,16,1] 8.099876..... となるはずが1度だけ julia> ϕ[24,16,1] 8.899876..... になっている. Juno 更新,Atom 再起動,Pkg.update の後に precompiling error †バージョン: v0.6.2 Atom で Juno 更新,再起動,さらに Atom の REPL で Pkg.update() を実行した後, using NetCDF などを実行しようとしたら,途中でエラーが出現した.下はエラーメッセージ. WARNING: Module Compat with uuid xxxxxxxxxxxxxx is missing from the cache. This may mean module Compat does not support precompilation but is imported by a module that does. ERROR: LoadError: Declaring __precompile__(false) is not allowed in files that are being precompiled. issue #19017 や discourse.julialang.org にあることと同じようなもの. Atom で Julia の REPL が起動できない †バージョン: v0.6.2 Precompiling の HttpPaser のビルドで curl -f -o /home/miyashita/.julia/v0.6/HttpParser/deps/downloads/v2.7.1.zip -L https://github.com/nodejs/http-parser/archive/v2.7.1.zip が実行できず,Atom で REPL が起動できなかった.エラーは下の通り. curl: (1) Protocol "https" not supported or disabled in libcurl 何かの際に curl を再インストールして,https からダウンロードできなくなっていた. curl -V で https が含まれているのを確認した後,再度 terminal から Julia を起動して julia> Pkg.build("HttpParser") をしたら正常に戻った. |