尝试将.Rpres和.Rmd文件发布到RStudio中的RPub时,我收到了一些不同的错误消息。除了下面的两个,另一个错误只是一个空白的错误响应。我已经尝试在连接到VPN时发布这两个版本并且在断开连接时无法找到我收到的错误类型的模式。
我过去(大约一个月前)已成功将.Rmd文件发布到RPubs。当我重新发布在RPubs上存在的.Rmd时,它被覆盖并且现在是空白的。
不确定这是一个openssl问题还是其他问题。我不认为错误消息曾经明确提到过SSL,但以防万一我尝试从homebrew重新安装openssl,sudo接受xcodebuild许可证和CRAN;一切看起来都不错(package ‘openssl’ successfully unpacked and MD5 sums checked
)。
我还在我的.RProfile中添加了options(rpubs.upload.method = "internal")
。
我在OSX版本10.13上运行R版本3.3.3和RStudio版本1.1.383。
Error in function (type, msg, asError = TRUE) : Empty reply from server
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>An error occurred.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
<p>If you are the system administrator of this resource then you should check
the <a href="http://nginx.org/r/error_log">error log</a> for details.</p>
<p><em>Faithfully yours, nginx.</em></p>
</body>
</html>
修改:将options(RCurlOptions = list(verbose = TRUE, capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = TRUE))
添加到Rprofile`时的完整回复
* Trying 50.19.223.253...
* TCP_NODELAY set
* Connected to api.rpubs.com (50.19.223.253) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /Users/amanda/Library/R/3.3/library/rsconnect/cert/cacert.pem
CApath: /Users/amanda/Library/R/3.3/library/RCurl/CurlSSL/cacert.pem
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server did not agree to a protocol
* Server certificate:
* subject: CN=rpubs.com
* start date: Oct 30 00:00:00 2017 GMT
* expire date: Nov 30 12:00:00 2018 GMT
* subjectAltName: host "api.rpubs.com" matched cert's "api.rpubs.com"
* issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
* SSL certificate verify ok.
> POST /api/v1/document HTTP/1.1
Host: api.rpubs.com
User-Agent: rsconnect/0.8.5
Accept: */*
Connection: close
Content-Type: application/x-compressed
Content-Length: 10630431
Expect: 100-continue
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
* Empty reply from server
* Connection #0 to host api.rpubs.com left intact
Error in function (type, msg, asError = TRUE) : Empty reply from server
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted
答案 0 :(得分:0)
我建议您将以下几行添加到.RProfile
options(rpubs.upload.method = "internal")
options(RCurlOptions = list(verbose = FALSE, capath = system.file("CurlSSL", "cacert.pem", package = "RCurl"), ssl.verifypeer = TRUE))
(1)创建一个文本文件并在其中输入以下行:
选项(rpubs.upload.method =“internal”)
(2)将文件保存在与knitr项目相同的目录中。文件名应为.Rprofile(或在您的主目录中)
请注意,名称以点(。)
开头(3)现在转到knitr项目目录并编译你的Rmd文件。
(4)打开浏览器并使用您的用户名和密码登录Rpubs。 (这是可选的,但有时它被认为是必要的步骤。)
(5)回到R studio,按“发布”。
如果上述方法无效,请删除并重新安装RCurl
remove.packages("RCurl")
install.packages("RCurl")
然后我会重启RStudio并尝试通过RStudio发布。如果仍然失败,我建议删除RStudio并重新安装。
为什么呢?好吧,第二行解决了RPubs发布的问题: - )
调试你可以设置verbose = TRUE
。
您在Mac OS x上使用的是什么包管理器?
我问,因为问题可能与您的软件包安装的潜在问题有关。即如果您使用的是brew
,那么您可能需要brew doctor
来检查您的配置。
如果您在代理服务器后面运行,则需要配置访问权限。
如果您仍然遇到问题,我建议您查看: