[R] How to pack my stuff into a package (library, collection)?
murdoch at stats.uwo.ca
Mon Apr 7 16:09:23 CEST 2008
On 4/7/2008 9:33 AM, Tribo Laboy wrote:
> Hi Duncan,
> Thanks for your reply. I checked the Rtools and the other relevant
> tools. I will most probably install them, although unwillingly.
> Unwillingly, because I like my current setup very much, which is a
> portable installation of R. I run it on the 5 different machines that
> I use and it is very easy to sync no mater where I install new or
> updated packages. I will probably have to designate one of the
> machines as a development machine and the others will be run-only, but
> this is very similar to compiled languages. Is there any way to set
> them up inside the main R directory structure, independent of the
> operating system, variables, etc.?
I don't think it will ever be possible to share installed packages
across different platforms. The issue is that the different operating
systems have different requirements for an installed package. For
example, Unix-alikes have soft links and make use of them; Windows
installs don't. (Recent Windows versions have something similar, but
they are so rarely used that I think it would be a bad idea to use
them.) There are also differences in what functions are available in R
in the different platforms (e.g. there's no windows() graphics device
except on Windows), and some packages may install different things
depending on the target platform.
So to do what you want to do, I'd suggest setting up a mini-repository
for source packages, and updating from there whenever necessary.
> Once again, it would be very helpful to clarify what is it that is
> needed to run my R-files and what INSTALL does (I did ?INSTALL, but I
> am none the wiser).
I think the best thing to do is to look at the source code. The
documentation will necessarily be a little general and abstract; if you
want to know exactly what it does, just look.
As a user I can do without all the bells and
> whistles of a HTML or chm-help and just some command line parsing of
> the Rd help files is just fine.
I'm not sure what you mean by "command line parsing" of the help files,
but you can certainly set things up to avoid CHM help, and that makes
package installation easier on Windows. I am inclined to make HTML help
the default in 2.8.0, so that by default you won't need the CHM
compiler: but that won't be until the fall, and there may be objections
to the change.
> Obviously, I can run my functions when
> "sourced" and I do not interface to FORTRAN or C, so I do not
> understand what more is needed.
I agree that we should make it easier to install packages without
compiled code, and I think if you look at the evolution of Rtools over
the years, you'll see that we have. We aren't done yet.
> Is it a namespace issue or just help
> file compilation? Whatever it is, I suspect that this rigid INSTALL
> and package build process is very helpful to enforce good quality
> packages on CRAN with good quality documentation. But isn't it an
> overkill for average Joe Programmer, who will never submit
> 'joes_weighted_mean' package to CRAN?
I don't think so. I think even Joe benefits from the QA support in R.
But if he doesn't want to make use of it, he does have the option of
just source'ing the code.
> Anyway, if you'd have some piece of advice, I'd really appreciate it.
1. Do install Rtools, but read the options carefully. You can get a
smaller install by leaving out some optional components. It's still
likely to be on the order of 50 MB installed, because we rely on Perl,
and it's about 40 MB. Now, 50 MB sounds like a lot (it's more than
twice the size of the hard drive on my first PC), but it's just 2.5% of
the size of the USB thumb drive in my pocket, and less than 0.02% of the
size of the hard drive in the PC I just bought for my mother. It's
really trivial for most people.
2. Study the install process, and identify ways in which we could make
it easier for people in your circumstances without making it harder for
everyone. Let us know, and contribute documentation or patches that do
More information about the R-help