Exploratory コミュニティ

ライブラリ「openrouteservice-r」がインポートできない

#1

ライブラリ「openrouteservice-r」をexploratoryにインポートをするため、この記事を参考に、スクリプトで

devtools::install_github("GIScience/openrouteservice-r",upgrade="never")

を実行すると

Failed to install 'openrouteservice' from GitHub: (converted from warning) installation of package ‘/Users/ユーザー名/.exploratory/tmp/フォルダ名/file1455760707f6c/openrouteservice_0.4.1.tar.gz’ had non-zero exit status

というエラーが表示され実行できません。
R-studioでも同様の現象がみられるようです。解決策を教えてもらえますでしょうか。どうぞよろしくお願いします。

#2

@Yokota_Manabu さん

開発元のGithubの記載によると、install_github()devtoolsパッケージからではなくremotesパッケージからよびだしているようなので、開発元の手順で試すのはいかがでしょうか?

install_github関数によってエラーが起きないように、また、Exploratoryが正常に機能し続けるために、このように設定することを推奨します。

この記事には上記の記載がありますので、upgrade引数をつけるつけないは、ご自身の環境に合わせて決定いただければよいかと思います。

もしかすると、openrouteservice-rパッケージが依存しているパッケージが、Explratoryのコアパッケージのバージョンと合わず、コアパッケージのバージョンをあげないことには、使えないのかもしれないですし、devtoolsパッケージでコケている可能性もあるのかもしれません。

# install.packages("remotes")
remotes::install_github("GIScience/openrouteservice-r")

49

Rstudioを含め、私の環境では問題なく動作しました(このパッケージに詳しくないので、関数が何をしているのかわかりませんが)。

22

Exploratory Version 6.3.3.1_PUBLIC (Production)
MacOS 10.15.7
2 Likes
#3

早速の回答ありがとうございます。
なるほど、こういう場合は開発元の手順なりで進めるのが良いのですね。

で、早速試してみました結果は変わらずでした。。(エラーメッセージなどはそのまま)

>コアパッケージのバージョン
>devtoolsパッケージ

ここあたりで調べてみます。共有いただいたOSないしexploratoryのバージョンはまったく同じでしたので後者なのですかね。

取り急ぎ報告と御礼のご連絡をいたします。

1 Like
#4

先の件に続報しますと、古いPCで試してみたところインストールできました。。状況絞り込んで調べて行きます。

1 Like
#5

横田さん、わさびさん

こちら手元のMac (macOS Big Sur)で試したところ、ソースからのビルドもできなかったので、以下のissueをGIScience/openrouteservice-rに対して入れておきました。

どうぞよろしくお願いいたします。

2 Likes
#6

ありがとうございます。助かります。
周囲にも、インストールできている人、できていない人がいるようです。

こちらも大したことはできませんが、調べつつ環境を整えながら試してみます。
引き続きよろしくです

#7

@Yokota_Manabu
@hide_kojima

あまり役に立たないかもですが、いつか誰かの役に立つかもしれないので、ワークアラウンドとして・・・とりあえず投稿しておきます!

前回の私の投稿は、ローカルのExploratory、Rstudioのものだったので、Dockerで構築しているRstudio Serverの方で試したらエラーが出ました。
ということで、下記のイメージを新たに取得して、Dockerで新たに環境構築をしました。

docker pull rocker/tidyverse:4.0.3

そして、Rstudio Serverにログインして、とりあえずopenrouteservice-rパッケージをインストール。

remotes::install_github("GIScience/openrouteservice-r")

やはりエラーがでました。インストールの結果を見るとV8パッケージでエラーが起こっているっぽいので、

** byte-compile and prepare package for lazy loading
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/local/lib/R/site-library/V8/libs/V8.so':
libnode.so.64: cannot open shared object file: No such file or directory
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted

さきに依存しているRパッケージのバージョンをあげました。

# 下記はinstall.packages()でバージョン上げました
pkgbuild (1.1.0 -> 1.2.0) [CRAN]
jsonlite (1.7.1 -> 1.7.2) [CRAN]
vctrs (0.3.5 -> 0.3.6) [CRAN]
testthat (3.0.0 -> 3.0.1) [CRAN]
htmlwidgets (1.5.2 -> 1.5.3) [CRAN]

V8パッケージに必要なライブラリを調べると、予め下記の操作が必要らしく、コンテナに入って、下記を行いました。

sudo apt-get install -y libv8-dev

必要ないのかもしれないですが、パッケージを削除して、入れ直しました。

remove.packages('V8')
install.packages('V8')

そして、openrouteservice-rパッケージをインストールしました。

remotes::install_github("GIScience/openrouteservice-r")

インストールの結果を見ると、keyringでエラーが起こっているっぽい

** byte-compile and prepare package for lazy loading
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/usr/local/lib/R/site-library/keyring/libs/keyring.so':
libsecret-1.so.0: cannot open shared object file: No such file or directory
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted

keyringに必要なライブラリをコンテナに入って、インストールしました。

sudo apt-get install -y libssl-dev libsodium-dev libsecret-1-dev

必要ないのかもしれないですが、パッケージを削除して、入れ直しました。

remove.packages('keyring')
install.packages('keyring')

そして、openrouteservice-rパッケージをインストールしたら無事にいきました。

remotes::install_github("GIScience/openrouteservice-r")
library(openrouteservice)
# Errorなし

packageVersion('openrouteservice')
[1] ‘0.4.1’

些細な事ですが、このパッケージは、GIScience/openrouteservice-rでインストールするのに、パッケージ名はopenrouteserviceなんですね。ややこしい・・・。

2 Likes
#8

わさびさん

ありがとうございます。内容はあまりわかりませんが、自分の学習も含めたものとして参考にしてみます!

1 Like