> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Guide de compilation de ClickHouse à partir des sources sur les systèmes macOS

# Compiler sur macOS pour macOS

<Info>
  **Ce guide de compilation s’adresse aux contributeurs qui modifient ClickHouse lui-même.**

  Si vous ne modifiez pas le code source de ClickHouse, vous pouvez installer une version précompilée de ClickHouse comme indiqué dans le [Quick Start](/fr/get-started/setup/install).
</Info>

ClickHouse peut être compilé sur macOS x86\_64 (Intel) et arm64 (Apple Silicon), à partir de macOS 10.15 (Catalina).

Comme compilateur, seul Clang fourni par Homebrew est pris en charge.

<div id="install-prerequisites">
  ## Installer les prérequis
</div>

Commencez par consulter la [documentation générale sur les prérequis](/fr/resources/develop-contribute/introduction/developer-instruction).

Ensuite, installez [Homebrew](https://brew.sh/) et exécutez

Puis exécutez :

```bash theme={null}
brew update
brew install ccache cmake ninja libtool gettext llvm lld binutils grep findutils nasm bash rust rustup
```

<Note>
  Par défaut, Apple utilise un système de fichiers insensible à la casse. Bien que cela n’ait généralement pas d’impact sur la compilation (en particulier, les compilations depuis zéro fonctionneront), cela peut perturber des opérations sur les fichiers comme `git mv`.
  Pour un développement sérieux sur macOS, assurez-vous que le code source est stocké sur un volume de disque sensible à la casse ; consultez par exemple [ces instructions](https://brianboyko.medium.com/a-case-sensitive-src-folder-for-mac-programmers-176cc82a3830).
</Note>

<div id="build-clickhouse">
  ## Compiler ClickHouse
</div>

Pour compiler, vous devez utiliser le compilateur Clang de Homebrew :

```bash theme={null}
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
```

<Note>
  Si vous rencontrez des erreurs `ld: archive member '/' not a mach-o file in ...` lors de l’édition des liens, il peut être nécessaire
  d’utiliser llvm-ar en définissant l’option `-DCMAKE_AR=/opt/homebrew/opt/llvm/bin/llvm-ar`.
</Note>

<div id="caveats">
  ## Points à retenir
</div>

Si vous prévoyez d’exécuter `clickhouse-server`, veillez à augmenter la variable système `maxfiles`.

<Note>
  Vous devrez utiliser sudo.
</Note>

Pour cela, créez le fichier `/Library/LaunchDaemons/limit.maxfiles.plist` avec le contenu suivant :

```xml theme={null}
<?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>
```

Attribuez au fichier les permissions appropriées :

```bash theme={null}
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
```

Vérifiez que le fichier est correct :

```bash theme={null}
plutil /Library/LaunchDaemons/limit.maxfiles.plist
```

Rechargez le fichier (ou redémarrez) :

```bash theme={null}
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
```

Pour vérifier que cela fonctionne, utilisez les commandes `ulimit -n` ou `launchctl limit maxfiles`.
