[R] Basic package structure question

Duncan Murdoch murdoch at stats.uwo.ca
Thu Jun 22 19:30:51 CEST 2006

Jay Emerson wrote:
> At the encouragement of many at UseR, I'm trying to build my first real
> package. I have no C/Fortran code, just plain old R code, so it should be
> rocket science.  On a Linux box, I used package.skeleton() to create a basic
> package containing just one "hello world" type of function.  I edited the
> DESCRIPTION file, changin the package name appropriately.  I edited the
> hello.Rd file.  Upon running R CMD check hello, the only warning had to do
> with the fact that src/ was empty (obviously I had no source in such a
> simple package).  I doubt this is a problem.
> I was able to install and use the package successfully on the Linux system
> from the .tar.gz file, so far so good!  Next, on to Windows, where the
> problem arose:
> I created a zip file from inside the package directory: zip -r ../hello.zip
> ./*
Which package directory, the source or the installed copy?  I think this 
might work in the installed copy, but would not work on the source.  
It's not the documented way to build a binary zip, though.
> When I moved this to my Windows machine and tried to install the package, I
> received the following error:
>> utils:::menuInstallLocal()
> Error in unpackPkg(pkgs[i], pkgnames[i], lib, installWithVers) :
>         malformed bundle DESCRIPTION file, no Contains field
> I only found one mention of this in my Google search, with no reply to the
> thread.  The Contains field appears to be used for bundles, but I'm trying
> to create a package, not a bundle.  This leads me to believe that a simple
> zipping of the package directory structure is not the correct format for
> Windows.
> Needless to say, there appears to be wide agreement that making packages
> requires precision, but fundamentally a package should (as described in the
> documentation) just be a collection of files and folders organized a certain
> way.  If someone could point me to documentation I may have missed that
> explains this, I would be grateful.

I think the "organized in a certain way" part is actually important.  
Using R CMD install --build is the documented way to achieve this.  It's 
not trivial to do this on Windows, because you need to set up a build 
environment first, but it's not horribly difficult.

Duncan Murdoch
> Regards,
> Jay

More information about the R-help mailing list