5

Rscriptviaを使用して R スクリプトを実行しようとすると問題が発生しcrontabます。

コマンドラインで実行すると、次のコマンドは正常に機能します

Rscript /var/www/html/sent/sentiment/code/parse.r

しかし、内部の次の行crontab

*/5 * * * * Rscript /var/www/html/sent/sentiment/code/parse.r > /var/www/html/sent/sentiment/code/backup.log 2>&1

ログに次のエラーが返されます

Error in library(twitteR) : there is no package called 'twitteR'
Execution halted

cron を使用して実行しているときに、Rscript がパッケージを見つけられない可能性があるのはなぜですか? crontab に R パッケージを「表示」させるにはどうすればよいですか。

どんなヒントでも大歓迎です。

4

2 に答える 2

4

コメントで示唆されているように、問題は、あなたとあなたの crontab が異なる R インストールを使用している可能性があります。

which Rscriptそうであるかどうかを確認するには、自分自身および crontab として実行します。

Rscriptそれらが異なる場合(私はそう思う)、 crontabから呼び出すときに適切なものへのフルパスを使用できます。より恒久的な解決策として、環境変数を設定する必要があります。

于 2013-02-10T02:19:44.877 に答える
1

それはおそらくあなたの.libPath()設定です-これが、ユーザーごとではなくシステム全体の設定を使用するために Debian/Ubuntu パッケージにインストルメント化する理由です。

確認するには、同じcrontabからだけでなく、あなたと同じように実行します

 print(.libPaths())
 print(installed.packages())

違いが明確になるはずです。以前、ここでほぼ同じ質問に答えたと思います。

于 2013-02-10T02:19:57.430 に答える