2021-07-13 19:04:49 +00:00
---
toc_priority: 65
toc_title: Сборка на Mac OS X
---
# Как собрать ClickHouse на Mac OS X {#how-to-build-clickhouse-on-mac-os-x}
Сборка должна запускаться с x86_64 (Intel) на macOS версии 10.15 (Catalina) и выше в последней версии компилятора Xcode's native AppleClang, Homebrew's vanilla Clang или в GCC-компиляторах.
## Установка Homebrew {#install-homebrew}
``` bash
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
## Установка Xcode и инструментов командной строки {#install-xcode-and-command-line-tools}
2021-07-29 15:20:55 +00:00
1. Установите из App Store последнюю версию [Xcode ](https://apps.apple.com/am/app/xcode/id497799835?mt=12 ).
2021-07-13 19:04:49 +00:00
2021-07-15 08:06:25 +00:00
2. Запустите е е , чтобы принять лицензионное соглашение. Необходимые компоненты установятся автоматически.
2021-07-13 19:04:49 +00:00
2021-07-15 08:06:25 +00:00
3. Затем убедитесь, что в системе выбрана последняя версия инструментов командной строки:
2021-07-13 19:04:49 +00:00
``` bash
$ sudo rm -rf /Library/Developer/CommandLineTools
$ sudo xcode-select --install
```
2021-07-15 08:06:25 +00:00
4. Перезагрузитесь.
2021-07-13 19:04:49 +00:00
## Установка компиляторов, инструментов и библиотек {#install-required-compilers-tools-and-libraries}
``` bash
$ brew update
$ brew install cmake ninja libtool gettext llvm gcc
```
## Просмотр исходников ClickHouse {#checkout-clickhouse-sources}
``` bash
$ git clone --recursive git@github.com:ClickHouse/ClickHouse.git # or https://github.com/ClickHouse/ClickHouse.git
```
## Сборка ClickHouse {#build-clickhouse}
Чтобы запустить сборку в компиляторе Xcode's native AppleClang:
``` bash
$ cd ClickHouse
$ rm -rf build
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_JEMALLOC=OFF ..
$ cmake --build . --config RelWithDebInfo
$ cd ..
```
Чтобы запустить сборку в компиляторе Homebrew's vanilla Clang:
``` 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 -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 ..
```
Чтобы собрать с помощью компилятора Homebrew's vanilla GCC:
``` bash
$ cd ClickHouse
$ rm -rf build
$ mkdir build
$ cd build
2021-09-08 15:06:15 +00:00
$ cmake -DCMAKE_C_COMPILER=$(brew --prefix gcc)/bin/gcc-11 -DCMAKE_CXX_COMPILER=$(brew --prefix gcc)/bin/g++-11 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_JEMALLOC=OFF ..
2021-07-13 19:04:49 +00:00
$ cmake --build . --config RelWithDebInfo
$ cd ..
```
## Предупреждения {#caveats}
Если будете запускать `clickhouse-server` , убедитесь, что увеличили системную переменную `maxfiles` .
!!! info "Note"
Вам понадобится команда `sudo` .
1. Создайте файл `/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 >
```
2021-07-15 08:06:25 +00:00
2. Выполните команду:
2021-07-13 19:04:49 +00:00
``` bash
$ sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
```
2021-07-15 08:06:25 +00:00
3. Перезагрузитесь.
2021-07-13 19:04:49 +00:00
2021-07-15 08:06:25 +00:00
4. Чтобы проверить, как это работает, выполните команду `ulimit -n` .
2021-07-13 19:04:49 +00:00
[Original article ](https://clickhouse.tech/docs/en/development/build_osx/ ) <!--hide-->