[ 
https://issues.apache.org/jira/browse/ARROW-6793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16991094#comment-16991094
 ] 

Kouhei Sutou commented on ARROW-6793:
-------------------------------------

> R packages are not allowed to install system dependencies

Why? Because root privilege isn't supplied?

Ruby packages uses {{sudo}} automatically if it's needed.

Another approach: How about extracting .deb/.rpm contents for each distribution 
instead of creating new "manylinux"-ish binary? We already have binaries for 
Debian/Ubuntu/CentOS. We can use them.

We can extract .deb by {{dpkg -x}}. It doesn't require root privilege. We can 
download a package by {{apt download ${PACKAGE_NAME}}. We can collect depended 
packages by {{apt depends ${PACKAGE_NAME}}}.

We can extract .rpm by {{rpm2cpio}} and {{cpio}}. It doesn't require root 
privilege. We can download a package by {{dnf download ${PACKAGE_NAME}}}/{{yum 
download ${PACKAGE_NAME}}} but we need to install additional packages by {{dnf 
install 'dnf-command(download)'}}.

(We can provide pre-extracted binaries instead of extracting on user 
environment.)

We'll be able to use the extracted binaries by setting suitable 
{{LD_LIBRARY_PATH}}.



> [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)

Reply via email to