On Wed, Sep 7, 2016 at 1:50 PM, Paweł Piątkowski <co...@tlen.pl> wrote:
> > | Is there a way to overcome this problem? Precompiled versions of R can > be installed on various system configurations, so I guess that there should > be a way to compile it in a version-agnostic manner. > > > > Yes, for example by > > > > -- using a Docker container which is portable across OSs (!!) and > versions > > Docker R containers are north of 250 MB. I have checked experimentally > that you can trim R down to 16 MB (!) and you'll still be able to execute > it (though with warnings). That *is* quite a difference, especially when > deploying small applications. ... I would guesstimate the libraries required to run R with any useful set of libraries is quite a bit bigger than the cited 16M ....... > > -- relying on package management which is what every Linux distro does > > > > (...) > > > > PS For the latter point, our .deb based R package currently shows this: > > > > (...) > > > > Depends: zip, unzip, libpaper-utils, xdg-utils, libblas3 | libblas.so.3, > libbz2-1.0, libc6 (>= 2.23), libcairo2 (>= 1.6.0), libcurl3 (>= 7.28.0), > libglib2.0-0 (>= 2.12.0), libgomp1 (>= 4.9), libjpeg8 (>= 8c), liblapack3 | > liblapack.so.3, liblzma5 (>= 5.1.1alpha+20120614), libpango-1.0-0 (>= > 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpcre3, libpng12-0 (>= > 1.2.13-4), libreadline6 (>= 6.0), libtcl8.6 (>= 8.6.0), libtiff5 (>= > 4.0.3), libtk8.6 (>= 8.6.0), libx11-6, libxt6, zlib1g (>= 1:1.1.4), ucf (>= > 3.0), ca-certificates > > Sure, package dependencies would be great as well - at least you'd be sure > that users of, say, Debian-based distros will be able to run this portable > R, as long as they've installed the required libraries. But notice that in > your example package versions equal *or greater* than listed are required - > so if someone has upgraded their system, they still will be able to run > that R. With a version built from source you need *exactly* the same > version as on the machine where R was compiled. Hence my question: how come > the precompiled distribution of R has "less strict" library requirements > than manually compiled versions? > Package managers don't usually cite 'less than' versions for packages - because how do you assert a version that won't work when it hasn't been released yet? You could go on a tear and build statically linked versions of R-with-everything-you-need, and maybe avoid the library madness... but this is sort of a fool's errand and a huge consumer of time. OS vendors and compiler developers have stopped doing things that way for reasons.... it's much simpler to reduce duplication and make everything work - while allowing for patching out security issues - when you are *just slightly* more flexible. ABI compatibility and library versioning are, I think, fairly well understood.... Doing this stuff with a container is very much the easiest route, if you actually want it to be completely portable. You're certainly welcome to start with an Alpine Linux base and add R on top and then start paring... but I start to not understand the point, somewhere in there.... it's a lot of time spent on something that doesn't seem that beneficial when you've got (even fairly reasonably modern) hardware that can deal with a tiny bit of extra bloat. SD cards and USB sticks are pretty cheap everywhere, now, aren't they? I could say, maybe, putting time into this as some kind of retrocomputing project... but probably not otherwise. best, --e [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel