我目前正在CRAN上发布这个GITHUB包:
https://github.com/lbusett/MODIStsp ,但我遇到了一些问题,希望有人能帮我克服! (很抱歉这条信息很长,但问题很难简单解释。我希望你能愿意读到最后...... )
我从使用包gWidgetsRGtk2
创建GUI这一事实中得出的问题。但是,gWidgetsRGtk2
依赖于包RGtk2
,它本身需要一些外部库才能工作。这导致了CRAN发布的以下问题:
如果我将gWidgetsRGtk2
保留在我的包的依赖项列表中,那么在RStudio中检查它会很顺利。我没有NOTES和WARNINGS(假设我安装了所有依赖项)。
R CMD检查结果0错误| 0警告| 0注释R CMD检查 成功
build_win
也没有问题
但是,如果我尝试从github 安装软件包,即使我的库中已安装gWidgetsRGtk2
,安装也会失败。所以,例如:
devtools::install_github("lbusett/MODIStsp", ref = 'feature/cran_rel_candidate')
总是给我以下错误:
警告:无法加载RGtk2动态库,尝试安装 它。请从中安装GTK + http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/gtk+-bundle_2.22.1-20101229_win64.zip 如果包仍未加载,请确保GTK + 安装并且它在您的PATH环境变量IN ANY中 案例,重新启动R之前尝试再次加载包装错误 inDL(x,as.logical(local),as.logical(now),...):无法加载 共享对象 ' C:/Users/lb/Documents/R/win-library/3.3/RGtk2/libs/x64/RGtk2.dll' ;: LoadLibrary失败:无法找到.....
,我得到一个信息窗口,告诉我" libaptk-1.0-0.dll""不见了。按"确定"在消息向我发送无限循环尝试安装RGTk2
,我必须强行关闭RStudio。
我设法正确安装软件包的唯一方法是:
gWidgetsRGtk2
依赖关系; gWidgetsRGtk2
并至少加载一次。 (在这种情况下,在" libaptk-1.0-0.dll缺失"消息之后,此信息面板打开,允许我安装GTK +库)所以,例如,这个:
install.packages("gWidgetsRGtk2")
library("gWidgetsRGtk2")
install_github("lbusett/MODIStsp", ref = 'devel') # In devel, 'gWidgetsRGtk2'is not a dependency
没有任何问题。
要求用户事先安装有问题的软件包没什么大不了的,但我不知道CRAN软件包是否可以接受,这也是因为在删除依赖项后检查软件包给了我以下警告:
检查R代码中的依赖关系......警告' loadNamespace'要么 ' requireNamespace'来电未声明:'gWidgetsRGtk2'R CMD check 结果0错误| 1警告| 0注释
R CMD检查成功
所以,最后我的问题是:你知道是否有办法解决这个问题,或者我应该如何在发布CRAN的过程中处理它?</ strong>
在Linux上,问题是相关的,但有点不同。
设置以下YAML文件允许我通过TRAVIS-CI(https://travis-ci.org/lbusett/MODIStsp/builds/168603035)的检查:
language: r cache: packages warnings_are_errors: false matrix: include: - os: linux dist: trusty sudo: required env: global: - R_BUILD_ARGS=" " - R_CHECK_ARGS="--no-build-vignettes --no-manual --timings" - R_CHECK_TIMINGS_="0" - BOOTSTRAP_LATEX="1" addons: apt: packages: - libgdal-dev - libproj-dev - libcurl4-openssl-dev - libgtk-3-dev r_binary_packages: - cairoDevice - RGtk2
我不知道 if / how / where我应该为CRAN提交指定这些依赖项。任何人都可以向我解释/给我一些参考吗?
gWidgetsRGtk2
依赖关系有关。如果我保留了依赖项,则构建将失败并显示此消息(https://travis-ci.org/lbusett/MODIStsp/builds/168600394):安装源包'gWidgetsRGtk2'...包 'gWidgetsRGtk2'成功解压缩并且MD5总和检查了R inst 测试准备延迟装载包R会议无头; GTK + 没有初始化。 (R:15669):Gtk-WARNING **:gtk_disable_setlocale() 必须在gtk_init()之前调用错误:.onLoad失败 loadNamespace()用于&#39; cairoDevice&#39;,详情:
call:fun(libname,pkgname)错误:找不到GDK显示 - 请 确保X11正在运行错误:包'cairoDevice'不能 加载错误:包'gWidgetsRGtk2'
的延迟加载失败删除'/ home / travis / R / Library / gWidgetsRGtk2'
错误:命令失败(1)
执行暂停
命令&#34; Rscript -e&#39; deps&lt; - devtools :: dev_package_deps(dependencies = NA); devtools :: install_deps(dependencies = TRUE); if(!all(deps $ package。) %in%installed.packages())){message(&#34; missing:&#34;, paste(setdiff(deps $ package,installed.packages()),collapse =&#34;,&#34;)); q(状态= 1,保存=&#34;否&#34;)}&#39;&#34;失败并在1期间退出。
与在Windows情况下一样,如果我删除gWidgetsRGtk2
依赖项,问题就会消失,但之后我会在构建/安装中获得警告。
所以,在这种情况下:有谁知道如何解决这个问题?
提前感谢您的帮助! (感谢阅读!)
洛伦佐