[Rd] In creating a Windows binary package (zip), how do I make the installation configurable

Duncan Murdoch murdoch at stats.uwo.ca
Thu Jul 12 19:39:41 CEST 2007

On 7/12/2007 1:00 PM, rick.jones at sungard.com wrote:
> I would like to create a binary package for Windows which when
> installed will give the user an option of whether to install
> one version or another.
> Here is the problem, I have a package 'FAME' that can run
> in two different modes on Windows. An old mode that uses
> R to connect to a remote linux machine and a new way that
> uses a locally installed database.
> I would allow this decision to be made at run time, but
> the DLL in the later case depends upon the database's DLL
> being on the Windows machine. A runtime solution would 
> require at least one extra level of dynamic loading.
> So I would like something like this to happen:
>  the zip file contains fame-local.dll and fame-remote.dll
>  when the user selects 'install packages from a zip file'
>  the user should be given the option of which DLL 
>  should be renamed to 'fame.dll'.
> Is this possible??
> If so, how would I do it?

I don't think it's possible:  installing from a .zip file basically just 
copies the files to the system, it doesn't execute the code.

It would be possible to do this if installing from a source package 
(just build one DLL), or you could install both and delay the decision 
until you attach the package:  there are hooks to execute code when a 
package is loaded.

> If not, then are there an recommendations for a solution?
>   An alternative I can try is to have 2 separate packages,
>   'fame' and 'fame-remote'.

I'd do it through a load hook.  The rgl package does this when running 
on a Mac, because it's not until load time that it knows if the user is 
using X11 or Aqua.  See the .onLoad function in zzz.R for details.

Duncan Murdoch

More information about the R-devel mailing list