[
https://issues.apache.org/jira/browse/ARROW-6793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16990340#comment-16990340
]
Kouhei Sutou commented on ARROW-6793:
-------------------------------------
Generally, I don't like manylinux approach, one binary for multiple Linux
environments. Because it requires static linking or bundling many shared
libraries.
Static linking isn't good for security. If there is a static linked library in
our dependency, we need to release a new version with fixed bundled library as
soon as possible. It's difficult because we need to vote for official release.
Bundling many shared libraries has the same security problem. It also has
conflict problem. If X library is bundled in A library and B library, X library
in A and B must be the same version. If X in A and X in B are different
version, it may be cause some errors.
How about installing our official deb/rpm packages automatically at install
time? Ruby (Red Arrow) does so.
Which Linux distributions should we support? Here are supported distributions
for now:
* Debian GNU/Linux 9
* Debian GNU/Linux 10
* Ubuntu 16.04
* Ubuntu 18.04
* Ubuntu 19.10
* CentOS/RHEL 6
* CentOS/RHEL 7
* CentOS/RHEL 8
> [R] Arrow C++ binary packaging for Linux
> ----------------------------------------
>
> Key: ARROW-6793
> URL: https://issues.apache.org/jira/browse/ARROW-6793
> Project: Apache Arrow
> Issue Type: Improvement
> Components: R
> Reporter: Neal Richardson
> Assignee: Neal Richardson
> Priority: Major
> Fix For: 1.0.0
>
>
> Our current installation experience on Linux isn't ideal. Unless you've
> already installed the Arrow C++ library, when you install the R package, you
> get a shell that tells you to install the C++ library. That was a useful
> approach to allow us to get the package on CRAN, which makes it easy for
> macOS and Windows users to install, but it doesn't improve the installation
> experience for Linux users. This is an impediment to adoption of arrow not
> only by users but also by package maintainers who might want to depend on
> arrow.
> macOS and Windows have a better experience because at installation time, the
> configure scripts download and statically link a prebuilt C++ library. CRAN
> bundles the whole thing up and delivers that as a binary R package.
> Python wheels do a similar thing: they're binaries that contain all external
> dependencies. And there are pyarrow wheels for Linux. This suggests that we
> could do something similar for R: build a generic Linux binary of the C++
> library and download it in the R package configure script at install time.
> I experimented with using the Arrow C++ binaries included in the Python
> wheels in R. See discussion at the end of ARROW-5956. This worked on macOS
> (not useful for R, but it proved the concept) and almost worked on Linux, but
> it turned out that the "manylinux2010" standard is too archaic to work with
> contemporary Rcpp.
> Proposal: do a similar workflow to what the manylinux2010 pyarrow build does,
> just with slightly more modern compiler/settings. Publish that C++ binary
> package to bintray. Then download it in the R configure script if a
> local/system package isn't found.
> Once we have a basic version working, test against various distros on
> [R-hub|https://builder.r-hub.io/advanced] to make sure we're solid everywhere
> and/or ensure the current fallback behavior when we encounter a distro that
> this doesn't work for. If necessary, we can make multiple flavors of this C++
> binary for debian, centos, etc.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)