Menyusun Semula dengan ServBay
ServBay menyediakan persekitaran pembangunan Web tempatan yang mantap dan lengkap untuk pengguna macOS, merangkumi pelbagai perisian serta alat-alat. Selain versi pakej perisian yang telah dipasang secara lalai oleh ServBay, kadangkala pembangun mungkin memerlukan penyusunan semula untuk keperluan tertentu, seperti:
- Mengaktifkan pilihan penyusunan khusus untuk sesuatu perisian.
- Menambah modul atau pengembangan yang tidak disediakan secara lalai oleh ServBay (contoh: sambungan PHP baharu atau modul PostgreSQL).
- Menyusun menggunakan perpustakaan yang berbeza daripada versi lalai ServBay.
- Melaku modifikasi khusus pada pakej perisian yang disediakan oleh ServBay.
ServBay membekalkan persekitaran dan rantaian alat yang diperlukan supaya anda boleh melakukan tugas penyusunan semula ini dengan mudah.
Agar proses penyusunan semula berjalan lancar, pengguna perlu memahami asas proses penyusunan perisian di persekitaran Unix/Linux (seperti configure
, make
, make install
).
Prasyarat
Sebelum memulakan penyusunan semula, sila pastikan perkara berikut telah dipenuhi:
Pasang ServBay Development Library: Ini adalah kebergantungan utama untuk penyusunan semula. Pakej ini mengandungi semua fail perpustakaan (
.so
,.a
), fail header (.h
) dan sumber pembangunan lain yang diperlukan dalam persekitaran ServBay. Anda boleh menemuinya di panel Pakej pada antara muka aplikasi ServBay dan pasangkannya di sana.Pasang Xcode Command Line Tools: Ini adalah set alat pembangunan asas yang disediakan oleh macOS, termasuk penyusun (Clang), pemaut dan alat wajib lain. Buka Terminal dan jalankan arahan berikut untuk pemasangan:
bashxcode-select --install
1Jika sudah dipasang, sistem akan memaklumkan anda.
Pasang alat bina tambahan: Untuk menyusun kebanyakan perisian sumber terbuka, anda perlukan juga
autoconf
,automake
,libtool
dan lain-lain. Biasanya boleh dipasang menggunakan pengurus pakej Homebrew:bashbrew install autoconf automake libtool cmake
1Jika anda belum memasang Homebrew, sila rujuk laman rasmi Homebrew untuk arahan pemasangan.
Menyediakan Persekitaran Penyusunan
Selepas anda memasang ServBay Development Library dan alat penting lain, anda perlu menyiapkan persekitaran Terminal untuk penyusunan. Langkah ini melibatkan penetapan pembolehubah persekitaran (seperti PATH
, CFLAGS
, LDFLAGS
, CPPFLAGS
) bagi memberitahu penyusun serta sistem bina di mana untuk mencari perpustakaan, header dan fail binari ServBay supaya binaan serta pautan dapat dilakukan dengan betul.
Persekitaran ServBay berbeza mengikut seni bina CPU Mac anda — sama ada cip Intel (x86_64) atau Apple Silicon (Arm64). Pilih arahan persediaan persekitaran mengikut seni bina runtime ServBay semasa anda.
Periksa Seni Bina CPU ServBay Runtime
Anda boleh menentukan seni bina dengan memeriksa mana-mana fail boleh laksana dalam direktori bin
ServBay. Contohnya, periksa bison
:
bash
# Jalankan arahan ini dalam Terminal untuk pemeriksaan
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable arm64
1
2
3
2
3
bash
# Jalankan arahan ini dalam Terminal untuk pemeriksaan
$ file /Applications/ServBay/bin/bison
/Applications/ServBay/bin/bison: Mach-O 64-bit executable x86_64
1
2
3
2
3
Setelah disahkan, pilih skrip penyediaan persekitaran yang sesuai berdasarkan hasil pemeriksaan.
Inisialisasi Pembolehubah Persekitaran Penyusunan
Buka tetingkap Terminal baharu, salin dan tampal skrip di bawah yang sesuai dengan seni bina CPU anda untuk dijalankan dalam Terminal. Skrip ini akan menyetel laluan serta bendera yang diperlukan untuk persekitaran penyusunan ServBay.
bash
# Tetapkan bilangan teras CPU untuk binaan selari
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Laluan asas pemasangan ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Nama direktori pakej
SERVBAY_PACKAGE_DIR_NAME="package"
# Laluan penuh direktori pakej
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Laluan binari ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Laluan fail konfigurasi ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Laluan data berubah ServBay
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Laluan pemasangan ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# Laluan header ServBay Development Library
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# Laluan perpustakaan ServBay Development Library
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"
# Direktori bina semasa
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# Maklumat versi OpenSSL
OPENSSL_SELECTED_VERSION="3.2"
OPENSSL_VERSION="3.2.1"
# Versi minimum OS sasaran untuk binaan
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey atau lebih tinggi
# Bendera seni bina CPU untuk binaan
BUILD_CPU_ARCH="-arch arm64"
BUILD_CPU_ARCH_CMAKE="arm64"
BUILD_MACOS_TARGET="" # Arm64 biasanya tidak perlukan bendera -target
# Tetapkan bendera penyusun C: tahap optimasi, versi minimum macOS, seni bina
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Tetapkan bendera pemaut: laluan carian rpath dan perpustakaan, minimum macOS, seni bina
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}"
# Tetapkan bendera pra-pemproses dan penyusun CXX: laluan header
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# Tetapkan bendera penyusun C++: sama seperti CFLAGS
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Tetapkan laluan carian boleh laksana: utamakan direktori bin/sbin ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# Tetapkan laluan carian pkg-config
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tetapkan laluan alat pkg-config
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
# Tetapkan direktori perpustakaan pkg-config
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tambah laluan bin/sbin sistem & Homebrew ke PATH sebagai alternatif
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Laluan lalai Homebrew
# Tambah laluan perpustakaan dan header OpenSSL ke LDFLAGS & CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Tambah laluan pkgconfig OpenSSL
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"
# Selepas semua pembolehubah persekitaran diset, anda boleh mula membina dalam tetingkap Terminal ini
echo "Persekitaran penyusunan ServBay Arm64 telah disediakan."
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
56
57
58
59
60
61
62
63
64
65
66
67
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
56
57
58
59
60
61
62
63
64
65
66
67
bash
# Tetapkan bilangan teras CPU untuk binaan selari
CPU_NUMBER=$(sysctl -n hw.ncpu)
# Laluan asas pemasangan ServBay
SERVBAY_BASE_FULL_PATH="/Applications/ServBay"
# Nama direktori pakej
SERVBAY_PACKAGE_DIR_NAME="package"
# Laluan penuh direktori pakej
SERVBAY_PACKAGE_FULL_PATH="${SERVBAY_BASE_FULL_PATH}/${SERVBAY_PACKAGE_DIR_NAME}"
# Laluan binari ServBay
SERVBAY_BIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/bin"
SERVBAY_SBIN_PATH="${SERVBAY_PACKAGE_FULL_PATH}/sbin"
# Laluan fail konfigurasi ServBay
SERVBAY_ETC_PATH="${SERVBAY_PACKAGE_FULL_PATH}/etc"
# Laluan data berubah ServBay
SERVBAY_VAR_PATH="${SERVBAY_PACKAGE_FULL_PATH}/var"
# Laluan pemasangan ServBay Development Library
SERVBAY_COMMON_PATH="${SERVBAY_PACKAGE_FULL_PATH}/common"
# Laluan header ServBay Development Library
SERVBAY_COMMON_INCLUDE_PATH="${SERVBAY_COMMON_PATH}/include"
# Laluan perpustakaan ServBay Development Library
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"
# Direktori bina semasa
SERVBAY_BUILD_DIR=$(pwd)
SERVBAY_BUILD_SRC_DIR=${SERVBAY_BUILD_DIR}/src
# Maklumat versi OpenSSL
OPENSSL_SELECTED_VERSION="1.1.1u"
OPENSSL_VERSION="1.1.1u"
# Versi minimum OS sasaran untuk binaan
BUILD_OS_MIN_VERSION="12.00" # macOS Monterey atau lebih tinggi
# Bendera seni bina CPU untuk binaan
BUILD_CPU_ARCH="-arch x86_64"
BUILD_CPU_ARCH_CMAKE="x86_64"
# Bendera sasaran platform (Intel biasanya perlu ditetapkan)
BUILD_MACOS_TARGET="-target x86_64-apple-macos${BUILD_OS_MIN_VERSION}"
# Tetapkan bendera penyusun C: tahap optimasi, versi minimum macOS, seni bina & platform
export CFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Tetapkan bendera pemaut: laluan carian rpath & perpustakaan, minimum macOS, seni bina & sasaran
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}"
# Tetapkan bendera pra-pemproses dan penyusun CXX: laluan header
export CPPFLAGS="-I${SERVBAY_COMMON_INCLUDE_PATH}"
# Tetapkan bendera penyusun C++: sama seperti CFLAGS
export CXXFLAGS="-Qunused-arguments -O3 -mmacosx-version-min=${BUILD_OS_MIN_VERSION} ${BUILD_CPU_ARCH} ${BUILD_MACOS_TARGET}"
# Tetapkan laluan carian boleh laksana: utamakan direktori bin/sbin ServBay
export PATH="${SERVBAY_BIN_PATH}:${SERVBAY_SBIN_PATH}:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin"
# Tetapkan laluan carian pkg-config
export PKG_CONFIG_PATH="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tetapkan laluan alat pkg-config
export PKG_CONFIG="${SERVBAY_BIN_PATH}/pkg-config"
# Tetapkan direktori perpustakaan pkg-config
export PKG_CONFIG_LIBDIR="${SERVBAY_COMMON_LIB_PATH}/pkgconfig"
# Tambah laluan bin/sbin sistem & Homebrew ke PATH sebagai alternatif
export PATH=$PATH:"/usr/local/bin:/usr/local/sbin"
export PATH=$PATH:"/opt/homebrew/bin/" # Laluan lalai Homebrew
# Tambah laluan perpustakaan dan header OpenSSL ke LDFLAGS & CPPFLAGS
export LDFLAGS="-L${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/lib ${LDFLAGS}"
export CPPFLAGS="-I${SERVBAY_COMMON_PATH}/openssl/${OPENSSL_SELECTED_VERSION}/include ${CPPFLAGS}"
# Tambah laluan pkgconfig OpenSSL
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"
# Selepas semua pembolehubah persekitaran diset, anda boleh mula membina dalam tetingkap Terminal ini
echo "Persekitaran penyusunan ServBay x86_64 telah disediakan."
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
56
57
58
59
60
61
62
63
64
65
66
67
68
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
56
57
58
59
60
61
62
63
64
65
66
67
68
Makluman Penting: Pembolehubah persekitaran ini hanya berkesan untuk sesi Terminal semasa. Jika anda menutup atau membuka Terminal baharu, anda perlu jalankan semula skrip inisialisasi ini untuk menyetel persekitaran penyusunan.
Contoh Penyusunan
Setelah persekitaran penyusunan diatur dalam Terminal, anda kini boleh memuat turun kod sumber dan membinanya. Berikut antara contoh penyusunan yang biasa.
Menyusun ImageMagick
ImageMagick ialah pustaka pemprosesan imej yang mantap, menjadi kebergantungan sambungan PHP imagick
. ServBay sudah menyertakan ImageMagick dalam pemasangan lalai, jadi anda biasanya tidak perlu menyusunnya sendiri. Contoh di sini hanya untuk memaparkan prosedur penyusunan projek biasa Autotools (configure/make) menggunakan persekitaran ServBay.
Muat turun kod sumber ImageMagick dan ekstrak:
bash# Sila gantikan dengan nombor versi terkini jika perlu 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-33
1
2
3
4Jalankan skrip
./configure
: Gunakan pembolehubah persekitaran yang telah ditetapkan untuk menjalankan skrip configure. Pilihan seperti--prefix
,--libdir
,--includedir
menentukan laluan pemasangan; kita tetapkan ke direktori umum ServBay Development Library${SERVBAY_COMMON_PATH}
dan subdirektorinya — ini memastikan perpustakaan dan header boleh dikesan oleh perisian lain (seperti sambungan PHPimagick
). Pilihan tambahan disesuaikan menurut keperluan ImageMagick.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/Font
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
30Jalankan
make
danmake install
: Perintahmake
membina fail boleh laksana dan perpustakaan mengikut konfigurasi. Pilihan-j ${CPU_NUMBER}
menggunakan CPU berbilang teras untuk mempercepatkan binaan.make install
pula akan memasang fail ke direktori ServBay Development Library yang ditetapkan tadi.bashmake -j ${CPU_NUMBER} make install
1
2
Menyusun Pakej dengan cmake
Untuk perisian yang menggunakan sistem cmake, proses bina sedikit berbeza. Berikut adalah contoh menggunakan protobuf
(Protocol Buffers).
Muat turun kod sumber protobuf dan masuk ke direktorinya.
Jalankan konfigurasi projek dengan
cmake
:-S .
menandakan direktori sumber ialah direktor semasa;-B builddir
bermaksud binaan dilakukan dalam direktoribuilddir
. Pilihan seperti-DCMAKE_INSTALL_PREFIX
dan lain-lain adalah analog kepada--prefix
dalam Autotools, untuk menentukan laluan pemasangan ke ServBay Development Library. Pilihan tambahan disesuaikan untuk keperluan protobuf.-DCMAKE_MACOSX_RPATH=1
serta-DCMAKE_INSTALL_RPATH
memastikan perpustakaan dibina boleh mengesan perpustakaan lain dalam persekitaran ServBay.bash# Anggapkan anda berada dalam direktori sumber protobuf 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=17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Jalankan
cmake --build
dancmake --install
:cmake --build builddir
membina di dalam direktoribuilddir
.cmake --install builddir
memasang hasil binaan ke lokasi-DCMAKE_INSTALL_PREFIX
yang telah ditetapkan (ServBay Development Library).bashcmake --build builddir -j ${CPU_NUMBER} cmake --install builddir
1
2
Menyusun Modul PHP
Jika anda ingin menyusun sambungan tambahan untuk versi PHP tertentu dalam ServBay (contohnya swoole
, redis
, mongodb
dan lain-lain), sila rujuk dokumen khusus:
Menyusun Modul PostgreSQL
Jika anda ingin menyusun modul tambahan untuk PostgreSQL dalam ServBay, sila rujuk dokumen khusus berikut:
Bagaimana Menyusun Modul PostgreSQL
Kesimpulan
Melalui ServBay Development Library serta tetapan pembolehubah persekitaran yang komprehensif, pembangun boleh menjalankan penyusunan semula dan penyesuaian pakej perisian dengan mudah pada macOS. Ini membekalkan fleksibiliti tinggi bagi memenuhi kehendak projek tertentu atau untuk menggunakan versi pustaka terbaharu. Pastikan anda membaca panduan rasmi penyusunan pakej perisian sebelum memulakan, dan sesuaikan konfigurasi serta langkah kerja mengikut keperluan pakej tersebut.