问题很简单。第一:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )
ssh.connect(ip, username='root', password="password")
chan = ssh.invoke_shell()
while not chan.exit_status_ready()
buff = ''
while not buff.endswith('\x1b[2J'):
resp = chan.recv(1) # tweak, bigger chunks, use select.
buff += resp
# buff hold data up to clear-screen
# evaluate screen, send keystrokes to navigate
chan.send('\x1b\r') # ESC
文件等以使其合法并通过CRAN检查?具体来说,我问的是曾经是CRAN包的 openNLPmodels.en 。它非常有用,并希望包含它的功能。我可以在示例中进行解决而不是实际使用 openNLPmodels.en 或为其创建单元测试,并在函数使用时安装它(类似于性别 package安装它需要的数据集但是我更喜欢一种允许我运行检查,文本和示例的方法。
这是下载并安装 openNLPmodels.en
的方法DESCRIPTION
答案 0 :(得分:1)
现有答案很好,但是没有详细解释整个过程,因此发布此答案。
是否可以在CRAN程序包中包含非CRAN(或生物导体或omega hat)程序包,并在示例中实际使用该程序包中的工具。
是的,有可能。像 Suggests 中的其他任何软件包一样,必须避免使用此类非CRAN的任何使用(软件包代码,示例,测试,小插图),最好使用
if (requireNamespace("non.cran.pkg", quietly=TRUE)) {
non.cran.pkg::fun()
} else {
cat("skipping functionality due to missing Suggested dependency")
}
如果是,如何设置说明文件等使其合法并通过CRAN检查?
您需要使用DESCRIPTION文件中的Additional_repositories
字段。在该字段中提供的位置必须包含期望的目录结构,在适当目录中的PACKAGES
文件,并且PACKAGES
文件必须列出非CRAN软件包。
现在转到您的openNLPmodels.en
软件包的特定示例。
根据下载和安装此软件包的方式,将无法将其用作依赖项并传递CRAN。 openNLPmodels.en
必须以R存储库中预期的结构发布。否则,您将没有有效的位置可放入Additional_repositories
字段中。
您可以做的是下载非CRAN程序包,然后将其发布到R存储库中,然后在CRAN程序包的Additional_repositories
字段中使用该位置。
这是一个如何做的例子:
dir.create("src/contrib", recursive=TRUE)
download.file("http://datacube.wu.ac.at/src/contrib/openNLPmodels.en_1.5-1.tar.gz", "src/contrib/openNLPmodels.en_1.5-1.tar.gz")
tools::write_PACKAGES("src/contrib")
我们只是将软件包源放在期望的目录src/contrib
中,其余的由write_PACKAGES
函数很好地处理了。为了确保正确创建存储库,您可以列出该存储库中可用的软件包:
available.packages(repos=file.path("file:/",getwd()))
它应该在那里列出您的非CRAN软件包。
然后,在R存储库中发布非CRAN软件包,则应将存储库放置在CRAN软件包的Additional_repositories
字段中。在这种情况下,位置将是file.path("file:/",getwd())
表达式返回的位置。
请注意,它使用本地计算机上的位置,您可能希望将其置于联机状态,以便任何检查CRAN程序包的计算机都可以访问url,包括检查CRAN本身。为此,只需将您的src
目录移动到将要在线托管的 public 目录中,并使用该服务器的位置即可。
现在再次查看您的非CRAN程序包,我们可以看到它的URL中有 src / contrib ,因此我们可以假定它已经存在正确的R存储库,而我们没有创建和发布新的。 因此,您的安装说明可能类似于
install.packages(
"openNLPmodels.en",
repos="http://datacube.wu.ac.at",
type="source"
)
然后,您的CRAN软件包所需的就是使用现有的可用存储库
Additional_repositories http://datacube.wu.ac.at
答案 1 :(得分:0)
可能,但是! ...
DESCRIPTION
文件中有一个字段可供您使用:
Additional_repositories: http://ghrr.github.io/drat
但是!
一切取决于附加存储库中来自包的功能 ,这些都是绝对可选的。
因此,此仓库中的软件包应放在Suggests
下。
我不确定100%是否将BioConductor和OmegaHat视为主流。