Skip to main content
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.
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.

Installer les prérequis

Commencez par consulter la documentation générale sur les prérequis. Ensuite, installez Homebrew et exécutez Puis exécutez :
Comme llvm, le paquet rustup de Homebrew est keg-only : son répertoire bin n’est donc pas ajouté automatiquement au PATH. Exportez-le de la même manière que le PATH de llvm dans Construire ClickHouse :
ClickHouse fixe également la version de la chaîne d’outils Rust utilisée par le module contrib corrosion. Installez-la et sélectionnez-la en suivant la section Installer le compilateur Rust du guide de construction sous Linux. Sans cela, cmake échoue sur le module contrib corrosion avec l’erreur Cannot find nightly-<date> Rust toolchain.
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.

Construction de ClickHouse

Pour la construction, vous devez utiliser le compilateur Clang de Homebrew :
Une simple commande brew install llvm installe toujours la dernière version de LLVM proposée par Homebrew, qui peut être plus récente que la version de Clang figée pour l’intégration continue et les constructions Linux (voir Installer le compilateur Clang). Une version plus récente de Clang peut activer des diagnostics -Weverything qui ne sont pas encore neutralisés dans la construction et faire échouer celle-ci avec -Werror. Dans ce cas, plutôt que de désactiver les avertissements, installez la version majeure figée, par exemple via une formule versionnée (brew install llvm@<version>) si Homebrew la propose encore.
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.

Points à retenir

Si vous prévoyez d’exécuter clickhouse-server, veillez à augmenter la variable système maxfiles.
Vous devrez utiliser sudo.
Pour cela, créez le fichier /Library/LaunchDaemons/limit.maxfiles.plist avec le contenu suivant :
Attribuez au fichier les permissions appropriées :
Vérifiez que le fichier est correct :
Rechargez le fichier (ou redémarrez) :
Pour vérifier que cela fonctionne, utilisez les commandes ulimit -n ou launchctl limit maxfiles.