11# Build Environment
22We build CodeCompass in a Linux environment. Currently, Ubuntu Long-Term
3- Support releases are the main targets: Ubuntu 20.04 LTS and Ubuntu 22.04 LTS.
3+ Support releases are the main targets: Ubuntu 22.04 LTS (and Ubuntu 24.04 LTS
4+ is planned).
45
56We also provide a Docker image that can be used as developer environment to
67CodeCompass. See its usage [ in a seperate document] ( /docker/README.md ) .
@@ -50,16 +51,6 @@ be installed from the official repository of the given Linux distribution.
5051The following command installs the packages except for those which have some
5152known issues.
5253
53- #### Ubuntu 20.04 ("Focal Fossa") LTS
54-
55- ``` bash
56- sudo apt install git cmake make g++ libboost-all-dev \
57- llvm-11-dev clang-11 libclang-11-dev \
58- odb libodb-dev \
59- default-jdk libssl-dev libgraphviz-dev libmagic-dev libgit2-dev ctags doxygen \
60- libldap2-dev libgtest-dev
61- ```
62-
6354#### Ubuntu 22.04 ("Jammy Jellyfish") LTS
6455
6556``` bash
@@ -73,17 +64,7 @@ sudo apt install git cmake make g++ libboost-all-dev \
7364#### Database engine support
7465
7566Depending on the desired database engines to be supported, the following
76- packages should be installed:
77-
78- ##### Ubuntu 20.04 ("Focal Fossa") LTS
79-
80- ``` bash
81- # For SQLite database systems:
82- sudo apt install libodb-sqlite-dev libsqlite3-dev
83-
84- # For PostgreSQL database systems:
85- sudo apt install libodb-pgsql-dev postgresql-server-dev-12
86- ```
67+ packages should be installed.
8768
8869##### Ubuntu 22.04 ("Jammy Jellyfish") LTS
8970
@@ -157,46 +138,6 @@ time (depending on the machine one is using).
157138> ** Note:** now you may delete the * Build2* toolchain installed in the
158139> ` <build2_install_dir> ` folder, if you do not need any longer.
159140
160- ### Thrift (for Ubuntu 20.04)
161- CodeCompass needs [ Thrift] ( https://thrift.apache.org/ ) which provides Remote
162- Procedure Call (RPC) between the server and the client. A suitable version of
163- Thrift is, unfortunately, not part of the official Ubuntu repositories for
164- this version (only an older version is available), so you should download and
165- build from source.
166-
167- Thrift can generate stubs for many programming languages. The configure
168- script looks at the development environment and if it finds the environment
169- for a given language then it'll use it. For example in the previous step npm
170- was installed which requires NodeJS. If NodeJS can be found on your machine
171- then the corresponding stub will also compile. If you don't need it then you
172- can turn it off: ` ./configure --without-nodejs ` .
173-
174- In certain cases, installation may fail if development libraries for
175- languages are not installed on the target machine. E.g. if Python is
176- installed but the Python development headers are not, Thrift will unable to
177- install. Python, PHP and such other Thrift builds are NOT required by
178- CodeCompass, and can significantly increase compile time so it is advised to
179- avoid using them if it's not necessary.
180-
181- ``` bash
182- # Download and uncompress Thrift:
183- wget " http://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=thrift/0.16.0/thrift-0.16.0.tar.gz" \
184- -O thrift-0.16.0.tar.gz
185- tar -xvf ./thrift-0.16.0.tar.gz
186- cd thrift-0.16.0
187-
188- ./configure --prefix=< thrift_install_dir> --silent --without-python \
189- --enable-libtool-lock --enable-tutorial=no --enable-tests=no \
190- --with-libevent --with-zlib --without-nodejs --without-lua \
191- --without-ruby --without-csharp --without-erlang --without-perl \
192- --without-php --without-php_extension --without-dart \
193- --without-haskell --without-go --without-rs --without-haxe \
194- --without-dotnetcore --without-d --without-qt4 --without-qt5 \
195- --without-java
196-
197- make install -j $( nproc)
198- ```
199-
200141### Node.js and NPM
201142Make sure you are using at least version 18.17 of [ Node.js] ( https://nodejs.org/en/ ) .
202143Unfortunately only older versions are available in the official Ubuntu repositories
0 commit comments