在gentoo上安装rstan所需的V8
Installing V8 required by rstan on gentoo
有没有办法在 Gentoo amd64 系统上安装 rstan? rstan 依赖于 v8-r (https://cran.r-project.org/web/packages/V8/index.html),它依赖于 v8 安装。我还没有找到可用的 v8 ebuild,v8 无法使用 didactic-duck ebuild 进行编译。我也试过nodejs,没有成功。从源代码编译 v8 失败,显示“不支持 linux 发行版”。
谢谢斯文
同样的问题。
恐怕我自己也没有答案。如果有帮助,我所做的最深入的工作就是安装“nodejs”,然后手动尝试从源代码安装 V8:
R CMD INSTALL --configure-vars='INCLUDE_DIR=/usr/include/node/deps/v8/include LIB_DIR=/usr/include/node/libplatform' V8_3.2.0.tar.gz
但是 CRAN 抱怨“找不到 -lv8_libplatform”,并且 INCLUDE_DIR 和 LIB_DIR 的其他组合我没有成功。
我还尝试了 didactic-duck 的几个 ebuild,甚至还有 petkovich 的一个。
此外,从源安装似乎是不可能的。
下面是什么“nodejs”安装,以防其他人有关于如何组合 INCLUDE_DIR 和 LIB_DIR 的想法,或者至少启发是否使用 nodejs 就足够了,或者需要完整的 v8 安装:
/usr/include/node/v8-fast-api-calls.h
/usr/include/node/v8-internal.h
/usr/include/node/v8-platform.h
/usr/include/node/v8-profiler.h
/usr/include/node/v8-util.h
/usr/include/node/v8-value-serializer-version.h
/usr/include/node/v8-version-string.h
/usr/include/node/v8-version.h
/usr/include/node/v8-wasm-trap-handler-posix.h
/usr/include/node/v8-wasm-trap-handler-win.h
/usr/include/node/v8.h
/usr/include/node/v8config.h
/usr/include/node/deps/v8
/usr/include/node/deps/v8/include
/usr/include/node/libplatform/v8-tracing.h
非常感谢。
更新: 从最新版本的 V8 开始,您可以使用:
# For Linux: download libv8 during installation
Sys.setenv(DOWNLOAD_STATIC_LIBV8=1)
install.packages("V8")
这样,您可以在任何 x64 Linux 系统上安装 V8 包,而无需单独的系统要求。另请参阅此 post:https://ropensci.org/technotes/2020/11/12/installing-v8/
原回答
R 包 V8 只需要 libv8 头文件和共享库。最好的解决方案是使用 NodeJS 的 V8 引擎,但这只有在 NodeJS 本身是使用 --shared
选项构建的情况下才能完成。我自己不使用 Gentoo,但从上面我猜目前情况并非如此。
你得和Gentoo中nodejs包的维护者谈谈,让他们启用共享libnode。下面是一些来自 Fedora 和 Debian 的参考资料,可能会让你入门:
- 软呢帽:https://src.fedoraproject.org/rpms/nodejs/pull-request/4 and https://src.fedoraproject.org/rpms/R-V8
- Debian:https://packages.debian.org/bullseye/libnode-dev and https://packages.debian.org/bullseye/r-cran-v8
如果你不能让它工作,你也可以自己构建 libv8,但我必须警告你这非常痛苦,因为上游每隔几周就会更改他们的 API 和构建系统。
一些工作示例是:
有没有办法在 Gentoo amd64 系统上安装 rstan? rstan 依赖于 v8-r (https://cran.r-project.org/web/packages/V8/index.html),它依赖于 v8 安装。我还没有找到可用的 v8 ebuild,v8 无法使用 didactic-duck ebuild 进行编译。我也试过nodejs,没有成功。从源代码编译 v8 失败,显示“不支持 linux 发行版”。
谢谢斯文
同样的问题。
恐怕我自己也没有答案。如果有帮助,我所做的最深入的工作就是安装“nodejs”,然后手动尝试从源代码安装 V8:
R CMD INSTALL --configure-vars='INCLUDE_DIR=/usr/include/node/deps/v8/include LIB_DIR=/usr/include/node/libplatform' V8_3.2.0.tar.gz
但是 CRAN 抱怨“找不到 -lv8_libplatform”,并且 INCLUDE_DIR 和 LIB_DIR 的其他组合我没有成功。
我还尝试了 didactic-duck 的几个 ebuild,甚至还有 petkovich 的一个。
此外,从源安装似乎是不可能的。
下面是什么“nodejs”安装,以防其他人有关于如何组合 INCLUDE_DIR 和 LIB_DIR 的想法,或者至少启发是否使用 nodejs 就足够了,或者需要完整的 v8 安装:
/usr/include/node/v8-fast-api-calls.h
/usr/include/node/v8-internal.h
/usr/include/node/v8-platform.h
/usr/include/node/v8-profiler.h
/usr/include/node/v8-util.h
/usr/include/node/v8-value-serializer-version.h
/usr/include/node/v8-version-string.h
/usr/include/node/v8-version.h
/usr/include/node/v8-wasm-trap-handler-posix.h
/usr/include/node/v8-wasm-trap-handler-win.h
/usr/include/node/v8.h
/usr/include/node/v8config.h
/usr/include/node/deps/v8
/usr/include/node/deps/v8/include
/usr/include/node/libplatform/v8-tracing.h
非常感谢。
更新: 从最新版本的 V8 开始,您可以使用:
# For Linux: download libv8 during installation
Sys.setenv(DOWNLOAD_STATIC_LIBV8=1)
install.packages("V8")
这样,您可以在任何 x64 Linux 系统上安装 V8 包,而无需单独的系统要求。另请参阅此 post:https://ropensci.org/technotes/2020/11/12/installing-v8/
原回答
R 包 V8 只需要 libv8 头文件和共享库。最好的解决方案是使用 NodeJS 的 V8 引擎,但这只有在 NodeJS 本身是使用 --shared
选项构建的情况下才能完成。我自己不使用 Gentoo,但从上面我猜目前情况并非如此。
你得和Gentoo中nodejs包的维护者谈谈,让他们启用共享libnode。下面是一些来自 Fedora 和 Debian 的参考资料,可能会让你入门:
- 软呢帽:https://src.fedoraproject.org/rpms/nodejs/pull-request/4 and https://src.fedoraproject.org/rpms/R-V8
- Debian:https://packages.debian.org/bullseye/libnode-dev and https://packages.debian.org/bullseye/r-cran-v8
如果你不能让它工作,你也可以自己构建 libv8,但我必须警告你这非常痛苦,因为上游每隔几周就会更改他们的 API 和构建系统。
一些工作示例是: