每天更新R原码 svn R source

在一个特定的目录下,每天checkout开发版的R,并且完成安装,应该怎么做呢?

cd path/to/put/R
svn checkout http://svn.r-project.org/R/trunk/ R-devel
cd R-devel
./configure --without-recommended-packages
make
make install
svn cleanup .

可以把上面的命令写成一个shell文件,然后通过daemons来自动调用。
比如在mac下,shell文件(autoUpdateRdev.sh)可以写成

#!/bin/bash
cd /qiuworld/R
svn checkout http://svn.r-project.org/R/trunk/ R-devel
cd R-devel
./configure --without-recommended-packages
make
make install
svn cleanup .

然后再生成一个plist文件(autoUpdateRdev.plist):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.qiuworld.dailyUpdateR</string>
    <key>ProgramArguments</key>
    <array>
        <string>bash</string>
        <string>/qiuworld/R/autoUpdateRdev.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Minute</key>
        <integer>45</integer>
        <key>Hour</key>
        <integer>1</integer>
        <key>Weekday</key>
        <integer>6</integer>
    </dict>
</dict>
</plist>

这个文件会在每周六晚上1:45自动调用autoUpdateRdev.sh文件。
之后使用launchctl来load这个plist文件。

start
sudo launchctl load /qiuworld/R/autoUpdateRdev.plist

查看一下它是否正确地在deamon list中:

$ launchctl list | grep qiuworld
-	0	com.qiuworld.dailyUpdateR

停止它使用:

stop
sudo launchctl unload /qiuworld/R/autoUpdateRdev.plist

Leave a Reply

  

  

  

%d 博主赞过: