Unduh & ekstrak • Konfigurasi • Build • Instalasi • Petunjuk build khusus Linux • Petunjuk build khusus macOS • Petunjuk build khusus MinGW • Menangani masalah tak terduga
Bisa jadi Anda tidak ingin repot dengan instalasi tingkat lanjut di Linux atau sistem serupa Linux. Jika demikian, Anda juga punya opsi untuk menginstal rilis biner yang sudah dikompilasi, atau jika tetap ingin menginstal dari source tanpa ribet, lihat petunjuk sederhana Instal dari source. Namun, jika Anda ingin menyesuaikan konfigurasi dan instalasi ImageMagick di Linux atau sistem serupa Linux, mari kita mulai.
Unduh & ekstrak
ImageMagick dapat dibangun (build) pada berbagai sistem operasi Linux dan yang serupa Linux, termasuk Linux, Solaris, FreeBSD, macOS, dan lainnya. Diperlukan kompiler, dan untungnya hampir semua sistem Linux modern sudah memilikinya. Unduh ImageMagick-7.1.2-25.7z dari GitHub.
Ekstrak distribusinya dengan perintah berikut:
tar xvzf ImageMagick.tar.gz
Setelah distribusi source ImageMagick Linux/Linux ini diekstrak, mari kita konfigurasikan.
Konfigurasi
Skrip configure memeriksa lingkungan Anda dan menentukan apa saja yang bisa dirangkai untuk mengompilasi dan menginstal ImageMagick di sistem Anda. Ini mencakup menemukan kompiler, lokasi file header kompiler Anda (misalnya stdlib.h), dan apakah ada pustaka (library) delegate yang tersedia untuk digunakan ImageMagick (misalnya JPEG, PNG, TIFF, dll.). Jika Anda bersedia menerima opsi default configure dan melakukan build dari dalam direktori source, cukup ketik:
cd ImageMagick-7.1.2-25
./configure
Perhatikan output skrip configure untuk memastikan semua yang Anda harapkan benar-benar ditemukan. Perhatikan khususnya baris-baris terakhir dari output skrip tersebut. Sebagai contoh, berikut laporan terbaru dari sistem kami:
ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.
Host system type: x86_64-unknown-linux-gnu
Build system type: x86_64-unknown-linux-gnu
Option Value
-------------------------------------------------------------------------------
Shared libraries --enable-shared=yes yes
Static libraries --enable-static=yes yes
Module support --with-modules=yes yes
GNU ld --with-gnu-ld=yes yes
Quantum depth --with-quantum-depth=16 16
High Dynamic Range Imagery
--enable-hdri=no no
Delegate Configuration:
BZLIB --with-bzlib=yes yes
Autotrace --with-autotrace=yes yes
DJVU --with-djvu=yes no
DPS --with-dps=yes no
FlashPIX --with-fpx=yes no
FontConfig --with-fontconfig=yes yes
FreeType --with-freetype=yes yes
GhostPCL None pcl6 (unknown)
GhostXPS None gxps (unknown)
Ghostscript None gs (8.63)
result_ghostscript_font_dir='none'
Ghostscript fonts --with-gs-font-dir=default
Ghostscript lib --with-gslib=yes no (failed tests)
Graphviz --with-gvc=yes yes
JBIG --with-jbig= no
JPEG v1 --with-jpeg=yes yes
JPEG-2000 --with-jp2=yes yes
LCMS --with-lcms=yes yes
LQR --with-lqr=yes no
Magick++ --with-magick-plus-plus=yes yes
OpenEXR --with-openexr=yes yes
PERL --with-perl=yes /usr/bin/perl
PNG --with-png=yes yes
RSVG --with-rsvg=yes yes
TIFF --with-tiff=yes yes
result_windows_font_dir='none'
Windows fonts --with-windows-font-dir=
WMF --with-wmf=yes yes
X11 --with-x= yes
XML --with-xml=yes yes
ZLIB --with-zlib=yes yes
X11 Configuration:
X_CFLAGS =
X_PRE_LIBS = -lSM -lICE
X_LIBS =
X_EXTRA_LIBS =
Options used to compile and link:
PREFIX = /usr/local
EXEC-PREFIX = /usr/local
VERSION = 6.4.8
CC = gcc -std=gnu99
CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
MAGICK_CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
CPPFLAGS = -I/usr/local/include/ImageMagick
PCFLAGS = -fopenmp
DEFS = -DHAVE_CONFIG_H
LDFLAGS = -lfreetype
MAGICK_LDFLAGS = -L/usr/local/lib -lfreetype
LIBS = -lMagickCore-Q16 -llcms -ltiff -lfreetype -ljpeg -lfontconfig -lXext
-lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl
CXX = g++
CXXFLAGS = -g -O2 -Wall -W -pthread
Anda dapat memengaruhi pilihan kompiler, flag kompilasi, atau pustaka dari skrip configure dengan menetapkan nilai awal untuk variabel pada baris perintah configure. Variabel tersebut antara lain:
- CC
- Nama kompiler C (misalnya cc -Xa) yang akan digunakan.
- CXX
- Nama kompiler C++ yang akan digunakan (misalnya CC).
- CFLAGS
- Flag kompiler (misalnya -g -O2) untuk mengompilasi kode C.
- CXXFLAGS
- Flag kompiler (misalnya -g -O2) untuk mengompilasi kode C++.
- CPPFLAGS
- Path include (misalnya -I/usr/local) untuk mencari file header.
- LDFLAGS
- Path pustaka (misalnya -L/usr/local) untuk mencari pustaka. Pada sistem yang mendukung konsep run-path pustaka, mungkin diperlukan argumen tambahan agar pustaka bersama dapat ditemukan saat run time. Misalnya, linker Solaris memerlukan argumen berbentuk -R/path. Sebagian sistem Linux bekerja dengan -rpath /usr/local/lib, sedangkan sebagian sistem Linux lain yang gcc-nya tidak meneruskan -rpath ke linker memerlukan argumen berbentuk -Wl,-rpath,/usr/local/lib.
- LIBS
- Pustaka tambahan (misalnya -l/usr/local/lib) yang diperlukan untuk linking.
Berikut contoh menetapkan variabel configure dari baris perintah:
configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix
Variabel apa pun (misalnya CPPFLAGS atau LDFLAGS) yang memerlukan path direktori harus menyebutkan path absolut, bukan path relatif.
Biasanya configure dapat menemukan file include dan pustaka X secara otomatis, tetapi jika tidak, Anda dapat menggunakan opsi --x-includes=path dan --x-libraries=path untuk menentukan lokasinya.
Skrip configure menyediakan sejumlah opsi khusus ImageMagick. Saat menonaktifkan sebuah opsi, --disable-something setara dengan menetapkan --enable-something=no, dan --without-something setara dengan --with-something=no. Opsi configure adalah sebagai berikut (jalankan configure --help untuk melihat semua opsi).
Opsi ImageMagick mewakili fitur yang bisa diaktifkan atau dinonaktifkan, atau paket yang disertakan dalam build. Saat fitur diaktifkan (lewat --enable-something), kode yang sudah ada di ImageMagick akan diaktifkan. Saat paket diaktifkan (lewat --with-something), skrip configure akan mencarinya, dan jika sudah terinstal dengan benar serta siap digunakan (header dan pustaka hasil build ditemukan oleh kompiler), paket tersebut akan disertakan dalam build. Skrip configure disediakan dengan semua fitur dalam keadaan nonaktif dan semua paket dalam keadaan aktif. Secara umum, satu-satunya alasan menonaktifkan sebuah paket adalah jika paket tersebut ada tetapi tidak cocok untuk build (mungkin versinya lama atau tidak dikompilasi dengan flag kompilasi yang tepat).
Berikut fitur opsional yang dapat Anda konfigurasikan:
--enable-shared
membangun pustaka bersama dan dukungan untuk memuat modul coder dan proses. Pustaka bersama lebih disukai karena memungkinkan program saling berbagi kode umum, sehingga masing-masing program menjadi jauh lebih kecil. Selain itu, pustaka bersama diperlukan agar PerlMagick dapat dimuat secara dinamis oleh PERL yang terinstal (jika tidak, PERL tambahan (PerlMagick) harus diinstal).
ImageMagick yang dibangun dengan delegate (lihat MAGICK PLUG-INS di bawah) dapat menimbulkan tantangan tambahan. Jika ImageMagick dibangun menggunakan pustaka statis (default tanpa --enable-shared), maka pustaka delegate boleh dibangun sebagai pustaka statis maupun pustaka bersama. Namun, jika ImageMagick dibangun menggunakan pustaka bersama, semua pustaka delegate juga harus dibangun sebagai pustaka bersama. Pustaka statis biasanya berekstensi .a, sedangkan pustaka bersama umumnya berekstensi seperti .so, .sa, atau .dll. Kode dalam pustaka bersama normalnya harus dikompilasi menggunakan opsi kompiler khusus untuk menghasilkan Position Independent Code (PIC). Hal ini tidak diperlukan hanya jika platform mengompilasi kode sebagai PIC secara default.
Flag kompilasi PIC berbeda-beda antar vendor (untuk gcc adalah -fPIC). Namun, Anda harus mengompilasi semua source pustaka bersama dengan flag yang sama (untuk gcc gunakan -fPIC, bukan -fpic). Pustaka statis biasanya dibuat menggunakan alat arsip seperti ar, sedangkan pustaka bersama dibangun menggunakan opsi linker atau kompiler khusus (misalnya -shared untuk gcc).
Jika --enable-shared tidak ditentukan, interpreter PERL baru (PerlMagick) dibangun dengan tertaut statis ke ekstensi PerlMagick. Interpreter baru ini diinstal ke direktori yang sama dengan utilitas ImageMagick. Jika --enable-shared ditentukan, ekstensi PerlMagick dibangun sebagai objek yang dapat dimuat secara dinamis, yang dimuat ke interpreter PERL Anda saat ini pada run time. Penggunaan ekstensi yang dimuat secara dinamis lebih disukai daripada ekstensi yang tertaut statis, jadi gunakan --enable-shared jika memungkinkan (perhatikan bahwa semua pustaka yang digunakan bersama ImageMagick harus berupa pustaka bersama!).
--disable-static
pustaka arsip statis (berekstensi .a) tidak dibangun. Jika Anda membangun pustaka bersama, membangun pustaka statis hampir tidak ada gunanya. Alasan untuk membangun pustaka statis antara lain: 1) lebih mudah di-debug; 2) klien tidak memiliki dependensi eksternal (misalnya libMagick.so); 3) membangun versi PIC dari pustaka delegate mungkin memerlukan keahlian dan upaya tambahan; 4) Anda tidak dapat membangun pustaka bersama.
--disable-installed
menonaktifkan pembangunan ImageMagick yang terinstal (default aktif).
Secara default, build ImageMagick dikonfigurasikan untuk diinstal secara resmi ke dalam struktur direktori. Ini adalah cara paling aman dan andal untuk menginstal ImageMagick. Gunakan opsi ini untuk mengonfigurasi ImageMagick agar tidak menggunakan path yang di-hardcode, dan menemukan file pendukung dengan menghitung path offset dari executable (atau dari lokasi yang ditentukan oleh variabel lingkungan MAGICK_HOME). Konfigurasi tanpa instalasi ini ideal untuk distribusi biner yang diharapkan dapat diekstrak dan dijalankan di lokasi mana pun.
--enable-ccmalloc
mengaktifkan dukungan debug memori 'ccmalloc' (default nonaktif).
--enable-prof
mengaktifkan dukungan profiling 'prof' (default nonaktif).
--enable-gprof
mengaktifkan dukungan profiling 'gprof' (default nonaktif).
--enable-gcov
mengaktifkan dukungan profiling 'gcov' (default nonaktif).
--disable-openmp
menonaktifkan OpenMP (default aktif).
Algoritme ImageMagick tertentu, misalnya konvolusi, dapat memperoleh percepatan yang signifikan dengan bantuan API OpenMP saat berjalan pada prosesor dual-core dan quad-core modern.
--disable-largefile
menonaktifkan dukungan untuk offset file besar (64 bit).
Secara default, ImageMagick dikompilasi dengan dukungan untuk file besar (> 2GB pada CPU 32-bit) jika sistem operasi mendukung file besar. Sebagian aplikasi yang menggunakan pustaka ImageMagick mungkin juga memerlukan dukungan untuk file besar. Dengan menonaktifkan dukungan file besar lewat --disable-largefile, aplikasi yang bergantung padanya tidak memerlukan opsi kompilasi khusus untuk file besar guna menggunakan pustaka tersebut.
Berikut paket opsional yang dapat Anda konfigurasikan:
--with-quantum-depth
jumlah bit dalam satu quantum piksel (default 16).
Gunakan opsi ini untuk menentukan jumlah bit yang dipakai per quantum piksel (ukuran komponen piksel merah, hijau, biru, dan alfa). Misalnya, --with-quantum-depth=8 membangun ImageMagick menggunakan quantum 8-bit. Sebagian besar adaptor tampilan komputer menggunakan quantum 8-bit. Argumen yang saat ini didukung adalah 8, 16, atau 32. Kami merekomendasikan nilai default 16 karena sebagian format gambar mendukung 16 bit per piksel. Namun, opsi ini penting dalam menentukan performa run-time ImageMagick secara keseluruhan.
Jumlah bit dalam satu quantum menentukan berapa banyak nilai yang dapat ditampungnya. Setiap level quantum mendukung nilai 256 kali lebih banyak daripada level sebelumnya. Tabel berikut menunjukkan rentang yang tersedia untuk berbagai ukuran quantum.
Quantum Depth Valid Range (Decimal) Valid Range (Hex)
8 0-255 00-FF
16 0-65535 0000-FFFF
32 0-4294967295 00000000-FFFFFFFF
Quantum piksel yang lebih besar dapat membuat ImageMagick berjalan lebih lambat dan memerlukan lebih banyak memori. Misalnya, penggunaan quantum piksel 16-bit dapat membuat ImageMagick berjalan 15% hingga 50% lebih lambat (dan memakan memori dua kali lipat) dibandingkan saat dibangun untuk mendukung quantum piksel 8-bit.
Jumlah memori virtual yang dikonsumsi oleh sebuah gambar dapat dihitung dengan rumus (5 * Quantum Depth * Rows * Columns) / 8. Ini adalah pertimbangan penting saat sumber daya terbatas, terutama karena pemrosesan sebuah gambar mungkin memerlukan beberapa gambar berada di memori pada saat yang sama. Tabel berikut menunjukkan nilai konsumsi memori untuk gambar berukuran 1024x768:
Quantum Depth Virtual Memory
8 3MB
16 8MB
32 15MB
--enable-hdri
merepresentasikan rentang level intensitas yang luas secara akurat.
--enable-osx-universal-binary
membangun universal binary pada OS X.
--without-modules
menonaktifkan dukungan untuk modul yang dapat dimuat secara dinamis.
Coder gambar dan modul proses dibangun sebagai modul yang dapat dimuat, yang diinstal di bawah direktori [prefix]/lib/ImageMagick-X.X.X/modules-QN (di mana 'N' bernilai 8, 16, atau 32 tergantung kedalaman quantum) masing-masing di subdirektori coders dan filters. Opsi build modul hanya tersedia jika digunakan bersama --enable-shared. Jika --enable-shared tidak turut ditentukan, dukungan untuk membangun modul dinonaktifkan. Perhatikan bahwa jika --enable-shared dan --disable-modules ditentukan, pemuat modul (module loader) tetap aktif (memungkinkan perluasan ImageMagick yang sudah terinstal cukup dengan menyalin sebuah modul ke tempatnya), tetapi ImageMagick sendiri tidak dibangun menggunakan modul.
--with-cache
menetapkan ambang batas (threshold) cache piksel (default mengikuti memori yang tersedia).
Tentukan ambang batas cache piksel gambar yang berbeda dengan opsi ini. Opsi ini menetapkan jumlah maksimum memori heap yang boleh dikonsumsi ImageMagick sebelum beralih menggunakan file sementara yang di-memory-map untuk menyimpan data piksel mentah.
--without-threads
menonaktifkan dukungan thread.
Secara default, pustaka ImageMagick dikompilasi dengan dukungan multi-thread. Jika ini tidak diinginkan, tentukan --without-threads.
--with-frozenpaths
mengaktifkan path delegate yang dibekukan (frozen).
Normalnya, nama program eksternal disisipkan ke file konfigurasi delegates.xml tanpa path lengkap. Tentukan opsi ini untuk mengaktifkan penyimpanan path lengkap ke program menggunakan lokasi yang ditentukan oleh configure. Ini berguna untuk lingkungan tempat program disimpan di berbagai path, dan pengguna mungkin memakai pengaturan PATH yang berbeda dari orang yang membangun ImageMagick.
--without-magick-plus-plus
menonaktifkan build/instalasi Magick++.
Menonaktifkan pembangunan Magick++, antarmuka pemrograman aplikasi (API) C++ untuk ImageMagick. Diperlukan kompiler C++ yang sesuai untuk membangun Magick++. Tentukan variabel configure CXX untuk memilih kompiler C++ yang digunakan (default g++), dan CXXFLAGS untuk memilih flag optimisasi dan debug kompiler yang diinginkan (default -g -O2). Kompiler C++ yang sudah usang biasanya akan ditolak oleh pengujian configure, sehingga menentukan opsi ini seharusnya hanya diperlukan jika Magick++ gagal dikompilasi.
--without-perl
menonaktifkan build/instalasi PerlMagick, atau
Secara default, PerlMagick dikompilasi dan diinstal secara praktis sebagai bagian dari proses configure, make, sudo make install normal ImageMagick. Jika --without-perl ditentukan, Anda harus terlebih dahulu menginstal ImageMagick, mengunduh distribusi source PerlMagick, membangunnya, dan terakhir menginstal PerlMagick. Perhatikan, PerlMagick tetap dikonfigurasikan meskipun --without-perl ditentukan. Jika argumen --with-perl=/path/to/perl diberikan, /path/to/perl akan dipakai sebagai interpreter PERL yang digunakan. Ini penting jika executable perl pada PATH Anda bukan PERL5, atau bukan PERL yang ingin Anda gunakan.
--with-perl=PERL
menggunakan binary Perl yang ditentukan untuk mengonfigurasi PerlMagick.
--with-perl-options=OPTIONS
opsi yang diteruskan pada baris perintah saat membuat Makefile PerlMagick dari Makefile.PL.
Modul PerlMagick biasanya diinstal menggunakan PREFIX instalasi interpreter Perl, bukan milik ImageMagick. Jika prefix instalasi ImageMagick tidak sama dengan PREFIX PERL, Anda mungkin akan mendapati bahwa langkah sudo make install PerlMagick mencoba menginstal ke struktur direktori yang tidak Anda miliki izin tulisnya. Hal ini umum terjadi ketika PERL disertakan bersama sistem operasi atau pada server web Internet Service Provider (ISP). Jika Anda ingin PerlMagick diinstal di tempat lain, berikan opsi PREFIX pada langkah konfigurasi PERL lewat "--with-perl-options=PREFIX=/some/place". Opsi lain yang diterima MakeMaker adalah 'LIB', 'LIBPERL_A', 'LINKTYPE', dan 'OPTIMIZE'. Lihat halaman manual ExtUtils::MakeMaker(3) untuk informasi lebih lanjut tentang mengonfigurasi ekstensi PERL.
--without-bzlib
menonaktifkan dukungan BZLIB.
--without-dps
menonaktifkan dukungan Display Postscript.
--with-fpx
mengaktifkan dukungan FlashPIX.
--without-freetype
menonaktifkan dukungan TrueType.
--with-gslib
mengaktifkan dukungan pustaka Ghostscript.
--without-jbig
menonaktifkan dukungan JBIG.
--without-jpeg
menonaktifkan dukungan JPEG.
--without-jp2
menonaktifkan dukungan JPEG v2.
--without-lcms
menonaktifkan dukungan LCMS.
--without-lzma
menonaktifkan dukungan LZMA.
--without-png
menonaktifkan dukungan PNG.
--without-tiff
menonaktifkan dukungan TIFF.
--without-wmf
menonaktifkan dukungan WMF.
--with-fontpath
menambahkan di awal path pencarian font default.
--with-gs-font-dir
direktori yang berisi font Ghostscript.
Tentukan direktori yang berisi file font Postscript Type 1 Ghostscript (misalnya n022003l.pfb) agar dapat di-render menggunakan pustaka FreeType. Jika file font diinstal menggunakan path instalasi default Ghostscript (${prefix}/share/ghostscript/fonts), file tersebut seharusnya otomatis ditemukan oleh configure dan penentuan opsi ini tidak diperlukan. Tentukan opsi ini jika font Ghostscript gagal ditemukan secara otomatis, atau lokasinya perlu ditimpa (override).
--with-windows-font-dir
direktori yang berisi font MS-Windows.
Tentukan direktori yang berisi font yang kompatibel dengan MS-Windows. Ini tidak diperlukan saat ImageMagick berjalan di bawah MS-Windows.
--without-xml
menonaktifkan dukungan XML.
--without-zlib
menonaktifkan dukungan ZLIB.
--without-x
tidak menggunakan X Window System.
Secara default, ImageMagick menggunakan pustaka delegate X11 jika tersedia. Jika --without-x ditentukan, penggunaan X11 dinonaktifkan. Subperintah display, animate, dan import tidak disertakan. Subperintah lainnya memiliki fungsionalitas yang berkurang, seperti tidak adanya akses ke font X11 (pertimbangkan menggunakan font Postscript atau TrueType sebagai gantinya).
--with-share-path=DIR
Path alternatif ke direktori share (default share/ImageMagick).
--with-libstdc=DIR
menggunakan libstdc++ di DIR (untuk GNU C++).
Meskipun configure dirancang untuk mempermudah instalasi ImageMagick, configure sering menemukan masalah yang jika tidak akan baru dijumpai kemudian saat mengompilasi ImageMagick. Skrip configure menguji header dan pustaka dengan menjalankan kompiler (CC) menggunakan flag kompilasi (CFLAGS), flag pre-processor (CPPFLAGS), dan flag linker (LDFLAGS) yang ditentukan. Semua error dicatat ke file config.log. Jika configure gagal menemukan sebuah header atau pustaka, periksa file log ini untuk mengetahui penyebabnya. Namun, perlu diketahui bahwa error dalam config.log itu wajar karena configure bekerja dengan mencoba sesuatu dan melihat apakah gagal. Error dalam config.log hanya menjadi masalah jika pengujian tersebut seharusnya berhasil di sistem Anda.
Penyebab umum kegagalan configure adalah: 1) header delegate tidak berada di path include header (opsi CPPFLAGS -I); 2) pustaka delegate tidak berada di path pencarian/run linker (opsi LDFLAGS -L/-R); 3) pustaka delegate kehilangan sebuah fungsi (versi lama?); atau 4) lingkungan kompilasi bermasalah.
Jika semua tindakan perbaikan yang wajar sudah dicoba dan masalahnya tampak disebabkan oleh cacat pada skrip configure, kirimkan laporan bug ke ImageMagick Defect Support Forum. Semua laporan bug sebaiknya mencantumkan jenis sistem operasi (seperti yang dilaporkan oleh uname -a) serta kompiler/versi kompiler. Salinan output skrip configure dan/atau bagian file config.log yang relevan dapat sangat membantu untuk menemukan masalahnya. Jika Anda memposting sebagian dari config.log, sertakan juga rekaman output configure dan deskripsi apa yang Anda harapkan terlihat (dan mengapa), agar kegagalan yang Anda amati dapat diidentifikasi dan diselesaikan.
ImageMagick sekarang sudah dikonfigurasikan dan siap untuk di-build
Build
Setelah ImageMagick dikonfigurasikan, target build standar berikut tersedia dari file make yang dihasilkan:
- make
- Membangun ImageMagick.
- sudo make install
- Menginstal ImageMagick.
- make check
- Menjalankan pengujian menggunakan ImageMagick yang sudah terinstal (sudo make install harus dilakukan terlebih dahulu). Ghostscript dan Freetype adalah prasyarat; jika tidak, unit test tertentu yang me-render teks serta format EPS, PS, dan PDF kemungkinan besar akan gagal. Unit test ini memerlukan kebijakan keamanan open agar dapat lulus.
- make clean
- Menghapus semua isi dalam direktori build yang dibuat oleh make.
- make distclean
- menghapus semua isi dalam direktori build yang dibuat oleh configure dan make. Ini berguna jika Anda ingin memulai dari awal.
- make uninstall
- Menghapus semua file dari sistem yang terinstal (atau akan terinstal) oleh sudo make install menggunakan konfigurasi saat ini. Perhatikan bahwa target ini tidak sempurna untuk PerlMagick karena Perl tidak lagi mendukung target uninstall.
Dalam kebanyakan kasus, Anda cukup ingin mengompilasi ImageMagick dengan perintah berikut:
make
Setelah dibangun, Anda dapat secara opsional menginstal ImageMagick di sistem Anda seperti dibahas di bawah ini.
Instalasi
Setelah ImageMagick dikonfigurasikan dan dibangun, ketik:
make install
untuk menginstalnya.
Secara default, ImageMagick menginstal biner di /usr/local/bin, pustaka di /usr/local/lib, file header di /usr/local/include, dan dokumentasi di /usr/local/share. Anda dapat menentukan prefix instalasi alternatif selain /usr/local dengan memberikan opsi --prefix=PATH ke configure. Ini berguna jika Anda tidak memiliki izin untuk menginstal di path default, atau jika Anda ingin menginstal ke direktori sistem sebagai gantinya.
Untuk memastikan instalasi distribusi ImageMagick Anda berhasil, pastikan direktori instalasi berada dalam path pencarian executable Anda, lalu ketik:
magick logo: logo.gif
identify logo.gif
Logo ImageMagick ditampilkan pada display X11 Anda.
Untuk memverifikasi konfigurasi build ImageMagick, ketik:
magick identify -list configure
Untuk menampilkan daftar format gambar yang didukung, ketik:
magick identify -list format
Untuk pengujian yang lebih menyeluruh, jalankan test suite ImageMagick dengan mengetik:
make check
Ghostscript adalah prasyarat; jika tidak, pengujian EPS, PS, dan PDF akan gagal. Perhatikan bahwa karena perbedaan antara lingkungan developer dan lingkungan Anda, ada kemungkinan beberapa pengujian gagal meskipun hasilnya sebenarnya baik-baik saja. Perbedaan antara lingkungan developer dan lingkungan Anda dapat mencakup kompiler, jenis CPU, dan versi pustaka yang digunakan. Developer ImageMagick menggunakan rilis terbaru dari semua pustaka dependensi.
Petunjuk build khusus Linux
Unduh ImageMagick.src.rpm dari imagemagick.org atau mirror-nya.
Bangun ImageMagick dengan perintah berikut:
rpmbuild --rebuild ImageMagick.src.rpm
Setelah build selesai, cari direktori RPMS dan instal distribusi RPM biner ImageMagick:
rpm -ivh ImageMagick-7.1.2.-?.*.rpm
Petunjuk build khusus macOS
Lakukan langkah-langkah berikut sebagai administrator atau dengan perintah sudo:
Instal MacPorts. Unduh dan instal MacPorts, lalu ketik perintah berikut:
sudo port -v install freetype +bytecode
sudo port -v install librsvg
sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
Ini akan menginstal banyak pustaka delegate yang akan digunakan ImageMagick, seperti JPEG dan FreeType.
Instal Xcode terbaru dari Apple.
Gunakan perintah port untuk menginstal pustaka delegate apa pun yang Anda perlukan, misalnya:
sudo port install jpeg
Sekarang mari kita bangun ImageMagick:
Unduh distribusi source ImageMagick dan verifikasi distribusi tersebut terhadap provenance-nya.
Ekstrak dan masuk ke direktori tingkat atas ImageMagick:
tar xvzf ImageMagick-7.1.2-25.tar.gz
cd ImageMagick-7.1.2-25
Konfigurasikan ImageMagick:
./configure --prefix=/opt --with-quantum-depth=16 \
--disable-dependency-tracking --with-x=yes \
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
--without-perl"
Bangun ImageMagick:
make
Instal ImageMagick:
sudo make install
Untuk memverifikasi instalasi Anda, ketik
/opt/local/bin/identify -list font
untuk menampilkan daftar semua font yang dikenali ImageMagick.
Untuk menguji GUI ImageMagick, pada shell baru, ketik:
display -display :0
Petunjuk build khusus MinGW
Meskipun Anda dapat mengunduh dan menginstal sendiri pustaka delegate, banyak di antaranya sudah tersedia dalam distribusi GnuWin32. Unduh dan instal pustaka delegate apa pun yang Anda perlukan, seperti JPEG, PNG, TIFF, dll. Pastikan Anda menyertakan header development saat menginstal sebuah paket. Selanjutnya, ketik,
tar jxvf ImageMagick-7.1.2-?.tar.bz2
cd ImageMagick-7.1.2-25
export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
./configure --without-perl
make
sudo make install
Menangani masalah tak terduga
Kemungkinan besar proses unduh, configure, build, dan instal ImageMagick berjalan mulus sesuai rencana. Namun, sistem dan lingkungan tertentu dapat menyebabkan satu atau lebih langkah gagal. Kami membahas beberapa masalah yang pernah kami temui dan cara mengambil tindakan perbaikan agar Anda memiliki rilis ImageMagick yang berfungsi
Masalah build
Jika build mengeluhkan dependensi yang hilang (misalnya .deps/source.PLO), tambahkan --disable-dependency-tracking ke baris perintah configure Anda.
Sebagian sistem mungkin gagal melakukan link saat build karena simbol yang tidak terselesaikan (unresolved symbols). Coba tambahkan LDFLAGS ke baris perintah configure:
configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
Binding runtime dynamic linker
Pada sebagian sistem, ImageMagick mungkin tidak menemukan pustaka bersamanya, libMagick.so. Coba jalankan ldconfig dengan path pustaka:
/sbin/ldconfig /usr/local/lib
Sistem Solaris dan Linux memiliki perintah ldd yang berguna untuk melacak pustaka apa saja yang menjadi dependensi ImageMagick:
ldd `which convert`
Pustaka Delegate
Sesekali Anda mungkin menerima peringatan berikut:
no decode delegate for this image format
no encode delegate for this image format
Pengecualian ini menunjukkan bahwa pustaka delegate eksternal atau header-nya tidak tersedia saat ImageMagick dibangun. Untuk menambahkan dukungan format gambar tersebut, unduh dan instal pustaka delegate yang diperlukan beserta file header-nya, lalu konfigurasikan, bangun, dan instal ulang ImageMagick. Sebagai contoh, mari kita tambahkan dukungan untuk format gambar JPEG. Pertama, kita instal JPEG RPMS:
yum install libjpeg libjpeg-devel
Sekarang konfigurasikan, bangun, dan instal ulang ImageMagick. Untuk memverifikasi bahwa JPEG kini didukung dengan benar dalam ImageMagick, gunakan perintah ini:
magick identify -list format
Anda akan melihat mode rw- yang terkait dengan tag JPEG. Mode ini berarti gambar dapat dibaca atau ditulis, dan hanya dapat mendukung satu gambar per file gambar.
PerlMagick
Jika PerlMagick gagal melakukan link dengan pesan yang mirip dengan libperl.a is not found, jalankan ulang configure dengan opsi --enable-shared atau --enable-shared --with-modules.