最初にオフ - これは特定のコードの問題ではないことを知っています。今日のこの半分の部分でこの問題に苦しんでいます。私はまた、このスレッドは誰でも私が今日やったことを共有するので、Rで働いているSFTPプロトコルを取得しようとするのに役立つと思う。RCurlを使ったsftpプロトコル - 最後の手順、libcurlへのRパスをusr/libからusr/local/libに変更する方法
私はRCurlがsftpプロトコルをサポートするように更新しようとしています。 Rには、私のプロトコルは(だけでなく、バージョンおよびホストと)などのようになりません:
> library(RCurl)
> curlVersion()$protocols
[1] "dict" "file" "ftp" "ftps" "gopher" "http" "https" "imap" "imaps" "ldap" "ldaps" "pop3" "pop3s" "rtsp" "smb" "smbs"
[17] "smtp" "smtps" "telnet" "tftp"
> curlVersion()$version
[1] "7.43.0"
> curlVersion()$host
[1] "x86_64-apple-darwin15.0"
偉大なし - なしsftpのオプション...
私はこのスレッドに続く - 私のマシン上でカールを更新する - http://andrewberls.com/blog/post/adding-sftp-support-to-curlをそうすることに部分的に成功しました。コマンドラインで次のコマンドを実行すると、成功の部分が反映されます。
curl -V
curl 7.55.1 (x86_64-apple-darwin15.6.0) libcurl/7.55.1 zlib/1.2.5
libssh2/1.8.0
Release-Date: 2017-08-14
Protocols: dict file ftp gopher http imap ldap ldaps pop3 rtsp scp sftp smtp telnet tftp
Features: AsynchDNS IPv6 Largefile libz UnixSockets
私はカールを更新しているので、これは素晴らしいことです。しかし、RCurlをロードしてRでcurlVersion()を実行すると、更新されません。私は私の/ usr /ディレクトリのlibフォルダを調べて、次のような問題があります。/usr/libと/ usr/local/libの両方にlibcurlファイルがあります。具体的に:
は- libcurl.3.dylib、libcurl.4.dylib、およびlibcurl.dylibは/ usr/libに
- libcurl.4.dylib、libcurl.dylib、libcurl.aとlibcurl.la中で/
libには/ usr/local私の/ usr/local/libディレクトリ内のファイルは、私が好きな新しいファイルは、しかし、ここで、使用されている私の主要な頭痛が始まったところです。私は/ usr/local/libから/ usr/libに4つのファイルをコピーし、私は自分のコンピュータを壊しました。私のアプリケーションの多くは読み込みを停止していました。OS Xを再インストールする必要がありました。 OS Xを再インストールすると、ファイルはそれぞれのフォルダに戻されます(上記の箇条書きのように)。
私が推測しなければならないのは、おそらく.aまたは.laファイルを移動していないはずです...わかりません。
最後に一つは - 私は、コンソールでの$の$ PATHを実行したときに、私が取得:
$PATH
-bash: /Users/Home/.rvm/gems/ruby-2.3.3/bin:/Users/Home/.rvm/gems/[email protected]/bin:/Users/Home/.rvm/rubies/ruby-2.3.3/bin:/Users/Home/anaconda2/bin:/usr/local/git/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin:/Users/Home/.rvm/bin: No such file or directory
は/ usr/local/binには、/ usr/binの前にあります。/usr/local/libや/ usr/libには何も表示されません。これを修正するためにこれらのパス(/ usr/local/lib)を自分のパスに追加できますか? Rで.libPaths()は私にこれを与える:
.libPaths()
"/Library/Frameworks/R.framework/Versions/3.4/Resources/library"
...それはすべて
EDITで場合に役立ちます - 私はすべての問題の根本は、ofcourseの、以降 'SFTP' であるということであることに注意してくださいcurlVersionに記載されていない()、両方のために、私はエラーを受け取り、私はRCurlを実行します::のgetURL()、またはRCurl :: ftpUpload()(イムftpUploadを使用することを期待して)というRで$プロトコルは、:
> RCurl::ftpUpload(what = 'myfile.txt', to = 'sftp://userid:[email protected]/'myfile.txt')
Error in function (type, msg, asError = TRUE) :
Protocol "sftp" not supported or disabled in libcurl
ありがとう!