Я пытался использовать rocksdb внутри пакета R. Я использовал следующее src/Makevars
:
CXX_STD = CXX11
PKG_CPPFLAGS = -I./rocksdb/include/
PKG_LIBS = rocksdb/librocksdb.a -lbz2 -lz -lzstd -llz4 -lsnappy
$(SHLIB): rocksdb/librocksdb.a
rocksdb/librocksdb.a: rocksdb/Makefile
CFLAGS="$(CFLAGS) $(CPICFLAGS)" AR="$(AR)" RANLIB="$(RANLIB)" LDFLAGS="$(LDFLAGS)" \
$(MAKE) -d --jobs=3 --directory=rocksdb static_lib
clean:
$(MAKE) --directory=rocksdb clean
Установка пакета не удалась со многими ошибками (см. Журнал сборки ниже).
Вы можете воспроизвести этот случай, используя контейнер Docker:
Необходимые команды:
docker run --rm -ti rocker/r-ver:latest bash
Выполнить в контейнере:
apt-get update
# install system deps
apt-get install -y libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev
apt-get install -y git-core
# install R deps
install2.r Rcpp checkmate R6 tinytest
cd /tmp
git clone https://gitlab.com/artemklevtsov/rocksdb
cd rocksdb/
git submodule init
git submodule update
R CMD INSTALL .
Но я могу успешно запустить make
непосредственно в исходной директории rocksdb:
cd src/rocksdb/
make static_lib
Как исправить src/Makevars
для сборки rocksdb
во время установки пакета R?
Ссылки: