メインコンテンツまでスキップ
メインコンテンツまでスキップ

macOS上でClickHouseをビルドする方法

自分でClickHouseをビルドする必要はありません!

クイックスタートで説明されているように、事前にビルドされたClickHouseをインストールできます。

ClickHouseは、macOS 10.15(Catalina)以降のmacOS x86_64(Intel)およびarm64(Apple Silicon)上でコンパイルできます。

コンパイラとしては、HomebrewからのClangのみがサポートされています。

前提条件をインストールする

まず、一般的な前提条件のドキュメントを参照してください。

次に、Homebrewをインストールし、次のコマンドを実行します。

その後、次のコマンドを実行します:

brew update
brew install ccache cmake ninja libtool gettext llvm lld binutils grep findutils nasm bash rust rustup
注記

Appleはデフォルトで大文字と小文字を区別しないファイルシステムを使用しています。通常、これはコンパイルに影響を与えません(特にscratch makesは機能します)が、git mvのようなファイル操作に混乱を招くことがあります。 macOSで本格的な開発を行う場合は、ソースコードが大文字と小文字を区別するディスクボリュームに保存されていることを確認してください。たとえば、これらの手順を参照してください。

ClickHouseをビルドする

ビルドするには、HomebrewのClangコンパイラを使用する必要があります:

cd ClickHouse
mkdir build
export PATH=$(brew --prefix llvm)/bin:$PATH
cmake -S . -B build
cmake --build build

# The resulting binary will be created at: build/programs/clickhouse
注記

リンク中にld: archive member '/' not a mach-o file in ...エラーが発生する場合は、フラグ-DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-arを設定してllvm-arを使用する必要があるかもしれません。

注意事項

clickhouse-serverを実行する予定がある場合は、システムのmaxfiles変数を増加させる必要があります。

注記

sudoを使用する必要があります。

そのためには、次の内容を持つ/Library/LaunchDaemons/limit.maxfiles.plistファイルを作成します。

<?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>

ファイルに適切な権限を与えます:

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist

ファイルが正しいかどうかを検証します:

plutil /Library/LaunchDaemons/limit.maxfiles.plist

ファイルをロードする(または再起動します):

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

動作しているか確認するには、ulimit -nまたはlaunchctl limit maxfilesコマンドを使用します。