build-linux-alpine.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env bash
  2. # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
  3. set -e
  4. # update Alpine with latest versions
  5. echo '@edge http://nl.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories
  6. echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
  7. apk update
  8. apk upgrade
  9. # install CA certificates
  10. apk add ca-certificates
  11. # install build tools
  12. apk add \
  13. build-base \
  14. coreutils \
  15. file \
  16. git \
  17. perl \
  18. automake \
  19. autoconf \
  20. cmake
  21. # install tool dependencies for building RocksDB static library
  22. apk add \
  23. curl \
  24. bash \
  25. wget \
  26. tar \
  27. openssl
  28. # install RocksDB dependencies
  29. apk add \
  30. snappy snappy-dev \
  31. zlib zlib-dev \
  32. bzip2 bzip2-dev \
  33. lz4 lz4-dev \
  34. zstd zstd-dev \
  35. linux-headers \
  36. jemalloc jemalloc-dev
  37. # install OpenJDK7
  38. apk add openjdk7 \
  39. && apk add java-cacerts \
  40. && rm /usr/lib/jvm/java-1.7-openjdk/jre/lib/security/cacerts \
  41. && ln -s /etc/ssl/certs/java/cacerts /usr/lib/jvm/java-1.7-openjdk/jre/lib/security/cacerts
  42. # cleanup
  43. rm -rf /var/cache/apk/*
  44. # puts javac in the PATH
  45. export JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk
  46. export PATH=/usr/lib/jvm/java-1.7-openjdk/bin:$PATH
  47. # gflags from source
  48. cd /tmp &&\
  49. git clone -b v2.0 --single-branch https://github.com/gflags/gflags.git &&\
  50. cd gflags &&\
  51. ./configure --prefix=/usr && make && make install &&\
  52. rm -rf /tmp/*
  53. # build rocksdb
  54. cd /rocksdb
  55. make jclean clean
  56. PORTABLE=1 make -j8 rocksdbjavastatic
  57. cp /rocksdb/java/target/librocksdbjni-* /rocksdb-build
  58. cp /rocksdb/java/target/rocksdbjni-* /rocksdb-build