2020-04-03 13:23:32 +00:00
---
toc_priority: 65
2020-07-20 14:29:13 +00:00
toc_title: Build on Mac OS X
2020-04-03 13:23:32 +00:00
---
2020-03-20 10:10:48 +00:00
# How to Build ClickHouse on Mac OS X {#how-to-build-clickhouse-on-mac-os-x}
2017-12-28 15:13:23 +00:00
2021-04-02 13:38:17 +00:00
Build should work on x86_64 (Intel) based macOS 10.15 (Catalina) and higher with recent Xcode's native AppleClang, or Homebrew's vanilla Clang or GCC compilers.
2017-12-28 15:13:23 +00:00
2020-03-20 10:10:48 +00:00
## Install Homebrew {#install-homebrew}
2017-12-28 15:13:23 +00:00
2020-03-20 10:10:48 +00:00
``` bash
2021-04-02 13:31:20 +00:00
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2017-12-28 15:13:23 +00:00
```
2021-04-02 13:31:20 +00:00
## Install Xcode and Command Line Tools {#install-xcode-and-command-line-tools}
2021-04-02 18:09:12 +00:00
Install the latest [Xcode ](https://apps.apple.com/am/app/xcode/id497799835?mt=12 ) from App Store.
2021-04-02 13:31:20 +00:00
Open it at least once to accept the end-user license agreement and automatically install the required components.
Then, make sure that the latest Comman Line Tools are installed and selected in the system:
``` bash
$ sudo rm -rf /Library/Developer/CommandLineTools
$ sudo xcode-select --install
```
Reboot.
2020-03-20 10:10:48 +00:00
## Install Required Compilers, Tools, and Libraries {#install-required-compilers-tools-and-libraries}
2017-12-28 15:13:23 +00:00
2020-03-20 10:10:48 +00:00
``` bash
2021-04-02 13:31:20 +00:00
$ brew update
$ brew install cmake ninja libtool gettext llvm gcc
2017-12-28 15:13:23 +00:00
```
2020-03-20 10:10:48 +00:00
## Checkout ClickHouse Sources {#checkout-clickhouse-sources}
2017-12-28 15:13:23 +00:00
2020-03-20 10:10:48 +00:00
``` bash
2021-04-02 13:31:20 +00:00
$ git clone --recursive git@github.com:ClickHouse/ClickHouse.git # or https://github.com/ClickHouse/ClickHouse.git
2019-09-23 15:31:46 +00:00
```
2020-03-20 10:10:48 +00:00
2021-04-02 13:31:20 +00:00
## Build ClickHouse {#build-clickhouse}
To build using Xcode's native AppleClang compiler:
2020-03-20 10:10:48 +00:00
``` bash
2019-09-23 15:31:46 +00:00
$ cd ClickHouse
2021-04-02 13:31:20 +00:00
$ rm -rf build
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_JEMALLOC=OFF ..
$ cmake --build . --config RelWithDebInfo
$ cd ..
2017-12-28 15:13:23 +00:00
```
2021-04-02 13:31:20 +00:00
To build using Homebrew's vanilla Clang compiler:
2017-12-28 15:13:23 +00:00
2021-04-02 13:31:20 +00:00
``` bash
$ cd ClickHouse
$ rm -rf build
$ mkdir build
$ cd build
$ cmake -DCMAKE_C_COMPILER=$(brew --prefix llvm)/bin/clang -DCMAKE_CXX_COMPILER==$(brew --prefix llvm)/bin/clang++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_JEMALLOC=OFF ..
$ cmake --build . --config RelWithDebInfo
$ cd ..
```
To build using Homebrew's vanilla GCC compiler:
2020-12-13 08:10:07 +00:00
2020-03-20 10:10:48 +00:00
``` bash
2021-04-02 13:31:20 +00:00
$ cd ClickHouse
$ rm -rf build
2019-09-23 15:31:46 +00:00
$ mkdir build
$ cd build
2021-04-02 13:31:20 +00:00
$ cmake -DCMAKE_C_COMPILER=$(brew --prefix gcc)/bin/gcc-10 -DCMAKE_CXX_COMPILER=$(brew --prefix gcc)/bin/g++-10 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_JEMALLOC=OFF ..
$ cmake --build . --config RelWithDebInfo
2019-09-23 15:31:46 +00:00
$ cd ..
2017-12-28 15:13:23 +00:00
```
2020-03-20 10:10:48 +00:00
## Caveats {#caveats}
2017-12-28 15:13:23 +00:00
2020-07-20 14:29:13 +00:00
If you intend to run `clickhouse-server` , make sure to increase the system’ s maxfiles variable.
2018-07-18 10:00:53 +00:00
2018-07-20 17:35:34 +00:00
!!! info "Note"
2020-03-20 10:10:48 +00:00
You’ ll need to use sudo.
2018-07-18 10:00:53 +00:00
2020-07-20 14:29:13 +00:00
To do so, create the `/Library/LaunchDaemons/limit.maxfiles.plist` file with the following content:
2020-03-20 10:10:48 +00:00
``` xml
2018-07-18 10:00:53 +00:00
<?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:
2020-03-20 10:10:48 +00:00
``` bash
2018-07-18 10:00:53 +00:00
$ sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
```
Reboot.
2020-03-20 10:10:48 +00:00
To check if it’ s working, you can use `ulimit -n` command.
2018-10-16 10:47:17 +00:00
2020-01-30 10:34:55 +00:00
[Original article ](https://clickhouse.tech/docs/en/development/build_osx/ ) <!--hide-->