استخدام ServBay لإعادة تجميع الحزم البرمجية
يقدم ServBay لمستخدمي macOS وWindows بيئة تطوير ويب محلية قوية وشاملة، مزودة بحزم برمجية وأدوات متعددة. إلى جانب النسخ المثبتة مسبقاً، قد يحتاج المطور أحياناً لإعادة تجميع الحزم لتلبية احتياجات معينة، مثل:
- تفعيل خيارات تجميع مخصصة لحزمة معينة.
- إضافة وحدات أو امتدادات غير متضمنة افتراضياً في ServBay (مثل امتدادات PHP أو وحدات PostgreSQL الجديدة).
- استخدام مكتبات بتواريخ إصدار أو مواصفات مختلفة عن النسخ الافتراضية في ServBay.
- تعديل الحزم البرمجية لتناسب احتياجات خاصة.
يوفر ServBay بيئة البرمجة المطلوبة وسلاسل الأدوات الضرورية لتسهيل تنفيذ هذه المهام.
لكي تتمكن من القيام بعملية إعادة التجميع بسلاسة، يجب أن يكون لديك معرفة أساسية بعملية بناء البرامج على نظام التشغيل المناسب:
- macOS/Linux: أدوات يونكس مثل
configure,make,make install - Windows: أنظمة البناء Visual Studio، MSBuild، cmake وغيرها.
الشروط المسبقة
قبل البدء، يرجى التأكد من استيفاء الشروط التالية:
تثبيت مكتبة ServBay Development Library: هذه هي العنصر الأساسي لإعادة التجميع، حيث توفر جميع ملفات المكتبات والملفات الرأسية الضرورية أثناء البرمجة. يمكن تثبيتها من خلال لوحة الحزم البرمجية في تطبيق ServBay.

تثبيت أدوات المطورين:
macOS
تثبيت أدوات سطر الأوامر Xcode: وهي الأدوات الأساسية للبرمجة على macOS وتحتوي على المترجم (Clang) والروابط وغيرها. يمكن تثبيت الأدوات بتنفيذ الأمر التالي في الطرفية:
bashxcode-select --install1إذا كانت الأدوات مثبتة بالفعل، سيظهر لك تنبيه بذلك.
تثبيت أدوات البرمجة الإضافية: لتجميع معظم البرمجيات مفتوحة المصدر، ستحتاج كذلك إلى
autoconf،automake،libtoolوغيرها. يفضل التثبيت باستخدام مدير الحزم Homebrew:bashbrew install autoconf automake libtool cmake1إذا لم تقم بتثبيت Homebrew، راجع تعليمات موقع Homebrew لتثبيته أولاً.
Windows
تثبيت Visual Studio Build Tools أو Visual Studio Community: تحتاج منصة Windows إلى مترجم Microsoft Visual C++ وأدوات البناء. لديك خياران:
الخيار 1: Visual Studio Build Tools (الموصى به لصغر الحجم)
- قم بتنزيل وتثبيت Visual Studio Build Tools
- أثناء التثبيت، اختر حمل "أدوات بناء C++"
- تأكد من إضافة المكونات التالية:
- MSVC v143 - أدوات بناء VS2022 C++ x64/x86
- Windows 11 SDK (أحدث إصدار)
- أداة CMake
الخيار 2: Visual Studio Community
- قم بتنزيل وتثبيت Visual Studio Community
- أثناء التثبيت، اختر حمل "تطوير سطح المكتب باستخدام C++"
- تأكد من إضافة أداة CMake و Windows SDK
تثبيت أدوات إضافية: لبعض المشاريع مفتوحة المصدر، ستحتاج كذلك إلى:
- Git for Windows: لتنزيل الشيفرة المصدرية
- MSYS2 أو vcpkg: لإدارة التبعيات الخاصة بمكتبات C/C++
- Python: بعض نصوص البناء تتطلب Python
powershell# تثبيت الأدوات الإضافية عن طريق chocolatey (اختياري) choco install git cmake python msys21
2
إعداد بيئة البرمجة
بعد تثبيت مكتبة ServBay Development والأدوات الأساسية الأخرى، يجب تهيئة بيئة البرمجة. وهي بشكل أساسي إعداد المتغيرات البيئية التي تحدد للمترجم وأدوات البناء مواقع مكتبات ServBay والملفات الرأسية والبرمجيات التنفيذية، ما يسمح له بالعثور على التبعيات والربط بشكل صحيح.
تختلف التهيئة حسب النظام والتصميم المعماري للجهاز:
macOS
بيئة العمل في ServBay تعتمد على معمارية وحدة المعالجة المركزية لجهازك: Intel (x86_64) أو Apple Silicon (Arm64). عليك اختيار أوامر التهيئة المناسبة حسب بنية نظام ServBay Runtime لديك.
Windows
نسخة Windows من ServBay تدعم بنية x64، وتثبت بشكل افتراضي في مجلد C:\ServBay.
تحديد بنية المعالج في ServBay Runtime
macOS
يمكنك تحديد بنية البرامج التنفيذية بفحص أي ملف تنفيذي من دليل bin في ServBay. على سبيل المثال، افحص ملف bison:
bash
# نفّذ الأمر التالي في الطرفية للتحقق
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm641
2
3
2
3
bash
# نفّذ الأمر التالي في الطرفية للتحقق
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_641
2
3
2
3
Windows
يدعم ServBay في Windows حالياً بنيّة x64 فقط. يمكنك التحقق من ذلك عبر PowerShell:
powershell
# نفّذ هذا الأمر في PowerShell للتحقق
PS> Get-Command "C:\ServBay\bin\bison.exe" | Select-Object -ExpandProperty FileVersionInfo | Select-Object ProductName, FileDescription1
2
2
أو عبر خصائص الملف مباشرةً.
بعد التأكد من البنية، اختر تهيئة المتغيرات البيئية المناسبة لها.
تهيئة متغيرات بيئة البرمجة
حسب النظام والمعمارية، اختر نص تهيئة البيئة المناسب:
macOS
افتح نافذة طرفية جديدة وانسخ/نفذ النص المناسب لمعمارية جهازك لضبط المتغيرات البيئية المطلوبة لتجميع الحزم.
bash
# تعيين عدد الأنوية للاستفادة من التجميع المتوازي
CPU_NUMBER=$(sysctl -n hw.ncpu)
# مسار تثبيت ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# اسم مجلد الحزم
SERVBAY_PACKAGE_DIR_NAME="package"
# المسار الكامل للحزم
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# مسارات الملفات التنفيذية
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# مسارات ملفات الإعدادات والمعطيات
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# مسارات مكتبة ServBay Development
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# مجلد البناء الحالي
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# إعدادات OpenSSL
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# تحديد الحد الأدنى لإصدار نظام التشغيل
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey أو أحدث
# إعدادات المعمارية
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # لا حاجة لوسم -target غالباً
# إعداد الرايات البرمجية للمترجم والرابط
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # مسار Homebrew الافتراضي
# إضافة مسارات مكتبات وملفات الرأس الخاصة بـ OpenSSL
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
# بعد تهيئة البيئة، يمكنك الآن بدء عمليات التجميع
echo "تم ضبط بيئة التجميع الخاصة بـ ServBay Arm64."1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
bash
# تعيين عدد الأنوية للاستفادة من التجميع المتوازي
CPU_NUMBER=$(sysctl -n hw.ncpu)
# مسار تثبيت ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# اسم مجلد الحزم
SERVBAY_PACKAGE_DIR_NAME="package"
# المسار الكامل للحزم
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# مسارات الملفات التنفيذية
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# مسارات ملفات الإعدادات والمعطيات
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# مسارات مكتبة ServBay Development
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
SERVBAY_COMMON_LIB_PATH="${SERVBAY_COMMON_PATH}/lib"
SERVBAY_COMMON_LIBEXEC_PATH="${SERVBAY_COMMON_PATH}/libexec"
SERVBAY_COMMON_SHARE_PATH="${SERVBAY_COMMON_PATH}/share"
SERVBAY_COMMON_MAN_PATH="${SERVBAY_COMMON_PATH}/man"
SERVBAY_COMMON_DOC_PATH="${SERVBAY_COMMON_PATH}/doc"
# مجلد البناء الحالي
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# إعدادات OpenSSL
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# تحديد الحد الأدنى لإصدار نظام التشغيل
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey أو أحدث
# إعدادات المعمارية
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export LDFLAGS="-Wl,-rpath -Wl,${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_COMMON_LIB_PATH} -L${SERVBAY_PACKAGE_FULL_PATH} -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/"
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR}:${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib/pkgconfig"
echo "تم ضبط بيئة التجميع الخاصة بـ ServBay x86_64."1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Windows
على منصة Windows، قم بضبط المتغيرات البيئية في PowerShell أو Developer Command Prompt. النص التالي مخصص لبنية x64:
powershell
# تعيين عدد الأنوية للتجميع المتوازي
$CPU_NUMBER = (Get-WmiObject -Class Win32_Processor).NumberOfLogicalProcessors
# مسارات التثبيت والإعدادات الخاصة بـ ServBay (Windows)
$SERVBAY_BASE_FULL_PATH = "C:\ServBay"
$SERVBAY_PACKAGE_DIR_NAME = "package"
$SERVBAY_PACKAGE_FULL_PATH = "${SERVBAY_BASE_FULL_PATH}\${SERVBAY_PACKAGE_DIR_NAME}"
$SERVBAY_BIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\bin"
$SERVBAY_SBIN_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\sbin"
$SERVBAY_ETC_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\etc"
$SERVBAY_VAR_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\var"
$SERVBAY_COMMON_PATH = "${SERVBAY_PACKAGE_FULL_PATH}\common"
$SERVBAY_COMMON_INCLUDE_PATH = "${SERVBAY_COMMON_PATH}\include"
$SERVBAY_COMMON_LIB_PATH = "${SERVBAY_COMMON_PATH}\lib"
$SERVBAY_COMMON_LIBEXEC_PATH = "${SERVBAY_COMMON_PATH}\libexec"
$SERVBAY_COMMON_SHARE_PATH = "${SERVBAY_COMMON_PATH}\share"
$SERVBAY_COMMON_DOC_PATH = "${SERVBAY_COMMON_PATH}\doc"
$SERVBAY_BUILD_DIR = Get-Location
$SERVBAY_BUILD_SRC_DIR = "${SERVBAY_BUILD_DIR}\src"
# إعدادات OpenSSL (Windows)
$OPENSSL_SELECTED_VERSION = "3.2"
$OPENSSL_VERSION = "3.2.1"
# إعدادات البناء لـ Windows
$BUILD_PLATFORM = "x64"
$BUILD_CONFIG = "Release"
# ضبط المتغيرات البيئية
$env:SERVBAY_BASE_FULL_PATH = $SERVBAY_BASE_FULL_PATH
$env:SERVBAY_COMMON_PATH = $SERVBAY_COMMON_PATH
$env:SERVBAY_COMMON_INCLUDE_PATH = $SERVBAY_COMMON_INCLUDE_PATH
$env:SERVBAY_COMMON_LIB_PATH = $SERVBAY_COMMON_LIB_PATH
$env:PATH = "${SERVBAY_BIN_PATH};${SERVBAY_SBIN_PATH};$env:PATH"
$env:INCLUDE = "${SERVBAY_COMMON_INCLUDE_PATH};$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_LIB_PATH};$env:LIB"
$env:LIBPATH = "${SERVBAY_COMMON_LIB_PATH};$env:LIBPATH"
$env:PKG_CONFIG_PATH = "${SERVBAY_COMMON_LIB_PATH}\pkgconfig"
$env:INCLUDE = "${SERVBAY_COMMON_PATH}\openssl\${OPENSSL_SELECTED_VERSION}\include;$env:INCLUDE"
$env:LIB = "${SERVBAY_COMMON_PATH}\openssl\${OPENSSL_SELECTED_VERSION}\lib;$env:LIB"
$env:CMAKE_PREFIX_PATH = $SERVBAY_COMMON_PATH
$env:CMAKE_INSTALL_PREFIX = $SERVBAY_COMMON_PATH
Write-Host "تم ضبط بيئة التجميع الخاصة بـ ServBay Windows x64."1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
إذا كنت تستخدم Developer Command Prompt، يمكنك استخدام نص batch التالي:
batch
@echo off
REM تهيئة بيئة التجميع الخاصة بـ ServBay Windows
REM مسار تثبيت ServBay
set SERVBAY_BASE_FULL_PATH=C:\ServBay
set SERVBAY_PACKAGE_FULL_PATH=%SERVBAY_BASE_FULL_PATH%\package
REM إعدادات المسارات
set SERVBAY_BIN_PATH=%SERVBAY_PACKAGE_FULL_PATH%\bin
set SERVBAY_COMMON_PATH=%SERVBAY_PACKAGE_FULL_PATH%\common
set SERVBAY_COMMON_INCLUDE_PATH=%SERVBAY_COMMON_PATH%\include
set SERVBAY_COMMON_LIB_PATH=%SERVBAY_COMMON_PATH%\lib
REM إصدار OpenSSL
set OPENSSL_SELECTED_VERSION=3.2
set PATH=%SERVBAY_BIN_PATH%;%PATH%
set INCLUDE=%SERVBAY_COMMON_INCLUDE_PATH%;%SERVBAY_COMMON_PATH%\openssl\%OPENSSL_SELECTED_VERSION%\include;%INCLUDE%
set LIB=%SERVBAY_COMMON_LIB_PATH%;%SERVBAY_COMMON_PATH%\openssl\%OPENSSL_SELECTED_VERSION%\lib;%LIB%
set CMAKE_PREFIX_PATH=%SERVBAY_COMMON_PATH%
echo تم ضبط بيئة التجميع الخاصة بـ ServBay Windows.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ملاحظة مهمة: هذه المتغيرات البيئية فعالة فقط في الجلسة الحالية للطرفية. عند إغلاق أو فتح نافذة جديدة، ستحتاج لإعادة تنفيذ النص أو ضبط المتغيرات مرة أخرى.
أمثلة على التجميع
بعد ضبط بيئة البرمجة في الطرفية، يمكنك الآن تنزيل الشيفرة المصدرية وتجميعها. فيما يلي بعض الأمثلة:
تجميع ImageMagick
ImageMagick مكتبة معالجة الصور تعتمد عليها امتدادات مثل imagick في PHP. يضم ServBay ImageMagick بشكل افتراضي، وغالباً لا حاجة لتجميعها. المثال التالي للتوضيح فقط:
macOS / Linux
تنزيل وفك ضغط الشيفرة المصدرية لـ ImageMagick:
bash# عدِّل رقم الإصدار حسب الحاجة wget https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz tar zxvf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-331
2
3
4تنفيذ السكريبت
./configure: بإعداد المتغيرات البيئية، حدد خيارات المسارات لتوجيه البناء نحو دليل مكتبة ServBay Development:bash./configure \ --prefix=${SERVBAY_COMMON_PATH} \ --libdir=${SERVBAY_COMMON_LIB_PATH} \ --includedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --oldincludedir=${SERVBAY_COMMON_INCLUDE_PATH} \ --bindir=${SERVBAY_BIN_PATH} \ --sbindir=${SERVBAY_SBIN_PATH} \ --sysconfdir=${SERVBAY_ETC_PATH} \ --datarootdir=${SERVBAY_COMMON_SHARE_PATH} \ --enable-osx-universal-binary=no \ --disable-silent-rules \ --disable-opencl \ --enable-shared \ --enable-static \ --with-freetype=yes \ --with-gvc=no \ --with-modules \ --with-webp=yes \ --with-heic=no \ --without-gslib \ --with-fpx=no \ --without-openexexr \ --with-raw=yes \ --without-lqr \ --without-djvu \ --without-fftw \ --without-pango \ --without-wmf \ --without-x \ --with-gs-font-dir=${SERVBAY_COMMON_SHARE_PATH}/ghostscript/10.02.1/Resource/Font1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30تنفيذ أوامر التجميع والتركيب: استخدم
makeلتجميع الملفات، وmake installلتركيبها في المجلدات المحددة:bashmake -j ${CPU_NUMBER} make install1
2
Windows
في Windows، يوصى باستخدام CMake و Visual Studio بسبب تعقيدات البناء:
تنزيل وفك ضغط الشيفرة المصدرية:
powershell# استخدم curl أو نزِّل من المتصفح curl -O https://imagemagick.org/archive/releases/ImageMagick-7.1.1-33.tar.gz # لفك الضغط، تحتاج 7zip أو أداة مماثلة tar -xzf ImageMagick-7.1.1-33.tar.gz cd ImageMagick-7.1.1-331
2
3
4
5تهيئة المشروع باستخدام CMake:
powershell# إنشاء مجلد البناء mkdir builddir cd builddir # تهيئة المشروع وحمل الخيارات cmake .. ` -DCMAKE_INSTALL_PREFIX="$env:SERVBAY_COMMON_PATH" ` -DCMAKE_BUILD_TYPE=Release ` -DBUILD_SHARED_LIBS=ON ` -DMAGICKCORE_QUANTUM_DEPTH=16 ` -DMAGICKCORE_HDRI_ENABLE=OFF ` -DWITH_BZLIB=ON ` -DWITH_ZLIB=ON ` -DWITH_PNG=ON ` -DWITH_JPEG=ON ` -DWITH_TIFF=ON ` -DWITH_FREETYPE=ON ` -DWITH_WEBP=ON1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18تنفيذ التجميع والتركيب:
powershell# التجميع cmake --build . --config Release --parallel $CPU_NUMBER # التركيب cmake --install . --config Release1
2
3
4
تجميع الحزم باستخدام CMake
للحزم التي تستخدم البناء بواسطة cmake، العملية موحدة إلى حد كبير عبر المنصات. كمثال، سنوضح خطوات بناء protobuf (Protocol Buffers):
- تنزيل شيفرة بروتوبوف والدخول للمجلد.
macOS / Linux
تهيئة المشروع:
bash# داخل مجلد البروتوبوف المصدري cmake -S . -B builddir \ -DCMAKE_INSTALL_PREFIX=${SERVBAY_COMMON_PATH} \ -DCMAKE_INSTALL_LIBDIR=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_INSTALL_INCLUDEDIR=${SERVBAY_COMMON_INCLUDE_PATH} \ -DCMAKE_INSTALL_BINDIR=${SERVBAY_BIN_PATH} \ -DCMAKE_INSTALL_SBINDIR=${SERVBAY_SBIN_PATH} \ -DCMAKE_INSTALL_SYSCONFDIR=${SERVBAY_ETC_PATH} \ -DCMAKE_INSTALL_DATAROOTDIR=${SERVBAY_COMMON_SHARE_PATH} \ -DCMAKE_MACOSX_RPATH=1 \ -DCMAKE_INSTALL_RPATH=${SERVBAY_COMMON_LIB_PATH} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \ -DCMAKE_PREFIX_PATH=${SERVBAY_COMMON_PATH} \ -DBUILD_SHARED_LIBS=ON \ -Dprotobuf_BUILD_LIBPROTOC=ON \ -Dprotobuf_BUILD_SHARED_LIBS=ON \ -Dprotobuf_INSTALL_EXAMPLES=OFF \ -Dprotobuf_BUILD_TESTS=OFF \ -Dprotobuf_ABSL_PROVIDER=package \ -Dprotobuf_JSONCPP_PROVIDER=module \ -DCMAKE_CXX_STANDARD=171
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21تنفيذ أوامر التجميع والتركيب:
bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir1
2
Windows
تهيئة المشروع عبر CMake:
powershell# داخل مجلد البروتوبوف المصدري cmake -S . -B builddir ` -DCMAKE_INSTALL_PREFIX="$env:SERVBAY_COMMON_PATH" ` -DCMAKE_BUILD_TYPE=Release ` -DCMAKE_PREFIX_PATH="$env:SERVBAY_COMMON_PATH" ` -DBUILD_SHARED_LIBS=ON ` -Dprotobuf_BUILD_LIBPROTOC=ON ` -Dprotobuf_BUILD_SHARED_LIBS=ON ` -Dprotobuf_INSTALL_EXAMPLES=OFF ` -Dprotobuf_BUILD_TESTS=OFF ` -Dprotobuf_MSVC_STATIC_RUNTIME=OFF ` -DCMAKE_CXX_STANDARD=171
2
3
4
5
6
7
8
9
10
11
12تنفيذ التجميع والتركيب:
powershell# التجميع cmake --build builddir --config Release --parallel $CPU_NUMBER # التركيب cmake --install builddir --config Release1
2
3
4
تجميع وحدات PHP
إذا كنت تريد تجميع امتدادات إضافية لنسخة PHP في ServBay (مثل swoole, redis, mongodb)، يرجى الرجوع للدليل المخصص:
تجميع وحدات PostgreSQL
إذا كنت بحاجة لتجميع وحدات إضافية خاصة بـ PostgreSQL في ServBay، راجع الدليل المخصص:
خلاصة
بفضل مكتبة ServBay Development وتهيئة البيئة الشاملة، يمكن للمطورين تجميع وتخصيص الحزم البرمجية بسهولة على macOS وWindows، مما يمنحك مرونة عالية لتلبية المتطلبات الخاصة للمشاريع أو استخدام أحدث مكتبات البرامج.
أهم النقاط
- الدعم متعدد المنصات: يدعم ServBay حالياً بيئة التجميع لكل من macOS وWindows.
- اختلاف المسارات: انتبه لمسارات التثبيت المختلفة حسب النظام (macOS:
/Applications/ServBay، Windows:C:\ServBay) - اختلاف الأدوات والسلاسل: يستخدم macOS أدوات بناء Xcode، بينما Windows يستخدم Visual Studio Build Tools.
- تهيئة البيئة: اختر نص تهيئة البيئة المناسب حسب نظامك.
ملاحظات هامة
- راجع دائماً أدلة التجميع الرسمية الخاصة بالحزمة قبل البدء.
- عدّل الخطوات والإعدادات حسب خصائص النظام المستهدف.
- يوصى باستخدام نظام البناء CMake في Windows.
- بعض الحزم مفتوحة المصدر قد تتطلب متطلبات أو إعدادات مختلفة حسب النظام والمنصة.
باتباع تعليمات هذا الدليل، تستطيع إتمام مهام التجميع والتخصيص للحزم البرمجية ضمن بيئة ServBay على كلا النظامين بفاعلية ونجاح.
