الانتقال إلى المحتوى الرئيسي
دليل البناء هذا مخصص للمساهمين الذين يجرون تعديلات على ClickHouse نفسه.إذا كنت لا تغيّر الشيفرة المصدرية لـ ClickHouse، فيمكنك تثبيت ClickHouse الجاهز مسبقًا كما هو موضح في Quick Start.
يمكن تجميع ClickHouse على macOS x86_64 ‏(Intel) وarm64 ‏(Apple Silicon) على macOS 10.15 ‏(Catalina) أو أحدث. أما المصرّف، فالمعتمد فقط هو Clang من Homebrew.

تثبيت المتطلبات الأساسية

أولًا، راجع وثائق المتطلبات الأساسية. بعد ذلك، ثبّت Homebrew ثم شغّل ثم شغّل:
brew update
brew install ccache cmake ninja libtool gettext llvm lld binutils grep findutils nasm bash rust rustup
تستخدم Apple نظام ملفات غير حساس لحالة الأحرف افتراضيًا. ورغم أن هذا لا يؤثر عادةً في التجميع (خصوصًا أن عمليات البناء من الصفر ستعمل)، فقد يسبب التباسًا في عمليات مثل git mv. إذا كنت تعمل بجدية على التطوير في macOS، فتأكد من تخزين الشيفرة المصدرية على وحدة تخزين حساسة لحالة الأحرف، وراجع مثلًا هذه التعليمات.

بناء ClickHouse

لبناء ClickHouse، يجب استخدام مصرّف Clang الخاص بـ Homebrew:
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 ... أثناء مرحلة الربط، فقد تحتاج إلى استخدام llvm-ar عبر ضبط الوسيط -DCMAKE_AR=/opt/homebrew/opt/llvm/bin/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.
آخر تعديل في ٢٩ يونيو ٢٠٢٦