2017-12-28 15:13:23 +00:00
# How to build ClickHouse on Mac OS X
Build should work on Mac OS X 10.12. If you're using earlier version, you can try to build ClickHouse using Gentoo Prefix and clang sl in this instruction.
With appropriate changes, it should also work on any other Linux distribution.
## Install Homebrew
```bash
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
## Install required compilers, tools, and libraries
```bash
2018-07-25 15:27:31 +00:00
brew install cmake ninja gcc icu4c mariadb-connector-c openssl unixodbc libtool gettext readline
2017-12-28 15:13:23 +00:00
```
## Checkout ClickHouse sources
To get the latest stable version:
```bash
git clone -b stable --recursive --depth=10 git@github.com:yandex/ClickHouse.git
# or: git clone -b stable --recursive --depth=10 https://github.com/yandex/ClickHouse.git
cd ClickHouse
```
For development, switch to the `master` branch.
For the latest release candidate, switch to the `testing` branch.
## Build ClickHouse
```bash
mkdir build
cd build
2018-05-25 18:13:48 +00:00
cmake .. -DCMAKE_CXX_COMPILER=`which g++-8` -DCMAKE_C_COMPILER=`which gcc-8`
2018-06-08 16:18:07 +00:00
ninja
2017-12-28 15:13:23 +00:00
cd ..
```
## Caveats
2018-07-18 10:00:53 +00:00
If you intend to run clickhouse-server, make sure to increase the system's maxfiles variable.
2018-07-20 17:35:34 +00:00
!!! info "Note"
You'll need to use sudo.
2018-07-18 10:00:53 +00:00
To do so, create the following file:
/Library/LaunchDaemons/limit.maxfiles.plist:
``` xml
<?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
< plist version = "1.0" >
< dict >
< key > Label< / key >
< string > limit.maxfiles< / string >
< key > ProgramArguments< / key >
< array >
< string > launchctl< / string >
< string > limit< / string >
< string > maxfiles< / string >
< string > 524288< / string >
< string > 524288< / string >
< / array >
< key > RunAtLoad< / key >
< true / >
< key > ServiceIPC< / key >
< false / >
< / dict >
< / plist >
```
Execute the following command:
``` bash
$ sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
```
Reboot.
To check if it's working, you can use `ulimit -n` command.
2017-12-28 15:13:23 +00:00