2012-01-18 4 views
1

コマンドラインからpgfSweaveを実行する際に問題が発生しています。だから私は使用してインストールMacで「R CMD pgfSweave」を使用するとRcmdエラーが発生する

R CMD pgfSweave myfile.Rnw 

install.packages("pgfSweave", type = "source") 

を、パッケージが滞りなくインストールするために登場しpgfSweaveマニュアルでは、パッケージのように実行するために、ソースからインストールしなければならないことを述べています。私は、上記のR CMD(直接bashシェルからとも、メイクファイル内から)を実行しようとしたと、次のエラーを受け取りました:

/Library/Frameworks/R.framework/Resources/bin/Rcmd: line 61: exec: pgfSweave: not found 

私はマニュアルを読んだが、これを言及誰に遭遇していません問題。私はRのバージョン2.14.0、OSX 10.5.8、およびpgfSweaveバージョン1.2.1

を実行している(ところで、私は問題はないとRの中から次のコマンドを使用できることに注意してください。

pgfSweave(file = "myfile.Rnw", compile.tex = FALSE) 

しかし、私は

答えて

2

pgfSweaveマニュアルは、あなたが起動して、コマンドラインインターフェイスを取得する方法についていくつかの素晴らしい方向性を提供します)メイクファイルを使用して、コマンドラインからすべてを行うにしたいと思います。ここでは、マニュアル(warning: pdf)の13ページから、キーのビットです:

In versions 0.7.0, pgfSweave got an R CMD command line interface. On Unix alikes (including Mac OS X) a symbolic link $R HOME/bin/pgfsweave to $R HOME/library/pgfSweave/exec/pgfsweave-script.R. On Windows a copy of the script is made instead. This script is only installed if pgfSweave is installed from source.

ので、Mac OSのために、あなただけの$R_HOME/library/pgfSweave/exec/pgfsweave-script.Rを指し、$R_HOME/bin/pgfsweaveという名前のシンボリックリンクを配置する必要があります。 ($R_HOMEは、RコマンドラインでR.home()を入力して得たディレクトリのパスです。)


あなたは、これはパッケージのインストール時に実装されることになっている方法の詳細を望んで顔をしている場合スクリプトinstall-script.R$R_HOME/library/pgfSweave/exec/にします。これは、オペレーティングシステムの種類に応じて実行されるように、別々の枝を含み、かつ(シンボリックリンクのインストールが失敗した場合に、印刷される)、この心強いメッセージで締めくくら:ヘッドアップのための

cat('\n***********************\n') 
cat('Failed to install custom pgfsweave script:\n') 
cat(' Thats ok! You can manually install it later.\n') 
cat('***********************\n\n') 
+0

おかげで多くのことを - I手動でシンボリックリンクを作成するようになった。しかし、ソース3から別々のパッケージを再インストールしたにもかかわらず、上記の「インストールに失敗しました」というメッセージが表示されませんでした。 – Steve

+0

それがうまく聞こえてうれしいです。私はあなたがエラーメッセージを言及していたと思っていて、なぜあなたがそれを得ていないのか不思議です。 –

+0

さらに、私は、コマンドラインから 'R CMD INSTALL ...'を使ってパッケージをインストールしようとすると、メッセージを見ることができると思います。あなたが使用した 'install.packages()'呼び出しは、 'R CMD INSTALL'への呼び出しを組み立ててラップして、現在のRセッションに戻ってくるすべてのメッセージを渡すことを拒否します。 (私はまた、より冗長にするオプションがいくつかあると思いますが、それについてはわかりません)。 –