Yes, either a copy of CRAN or a repo with local packages is easy to set up. Presumably you want this for Windows so do this:
- Create a top-level directory on your webserver, say
R/
- Create the usual hierarchy in there:
R/bin/windows/contrib/2.11
. If you need to support other (earlier) releases, simply create directories2.10
,2.9
, … next to the2.11
directory. -
Place the packages you need into the directory (say,
2.11
), then change into that directory and run the following command to generatePACKAGES
andPACKAGES.gz
files for the repository:tools::write_PACKAGES(".", type="win.binary")
That is all there is to it — now you can access the repository by pointing to the address given a command such as
update.packages(repos="http://my.local.server/R", ask=FALSE)
which I even do in R/zzz.R
for local packages so that they update themselves.
Edit some five+ years later: And the drat package now automates a lot of this, and shines particularly if you also use GitHub to serve the repository over http/https (but is useful for other or local hosting too).