| Applies to | MindTouch 8.05 to 8.08 | License | All versions |
|---|---|---|---|
| Operating System | Linux | Documentation Types | Setup |
| Community Documentation | |||
This content is contributed by a MindTouch user to OpenGarden community. It has not been reviewed for technical accuracy by MindTouch. If you find an error or would like to comment on the article, please contact to contributor or use the comment field at the bottom of the document.
(1) Build runtime environment to run and up the MindTouch for Sun SPARC Solaris 10 host.
This guide is applicable to:
(2) Following softwares will be installed.
# /usr/bin/showrev * Release: 5.10 * Kernel architecture: sun4u * Application architecture: sparc * Kernel version: SunOS 5.10 Generic_137111-06 # /usr/bin/showrev -w * OpenWindows version: Solaris X11 Version 6.6.2 5 June 2008
(1) Create /.bash_profile file to build the MindTouch world.
# cat /.bash_profile LC_ALL=C LC_MESSAGES=C LANG=C export PATH=/opt/mono/bin:/opt/mysql/bin:/opt/php5/bin:\ /usr/sbin:/usr/bin:/usr/sfw/bin:/usr/sfw/sbin:\ /usr/X/bin:/usr/ucb:/usr/ccs/bin:/opt/sfw/bin:/opt/sfw/sbin:\ /opt/SUNWspro/bin:/opt/subversion-current/bin export LD_LIBRARY_PATH=/opt/mono/lib:/opt/mysql/lib:/opt/sfw/lib:/usr/sfw/lib:/usr/lib export MANPATH=/opt/sfw/man:/usr/man:/opt/mysql/man:/opt/php5/man export PAGER=/usr/bin/less export LDFLAGS="-L/opt/mysql/lib -L/opt/sfw/lib -L/usr/sfw/lib -L/usr/lib -lstdc++" export CPPFLAGS="-I/opt/mysql/include -I/opt/sfw/include -I/opt/mysql/include -I/usr/include" export XFILESEARCHPATH=/opt/sfw/lib/X11/%T/%N%C:/usr/X/lib/X11/%T/%N%C export LESSCHARSET=utf-8
(2) To take effect this configuration reload bash as:
# bash -login
(OPTIONAL)
Create $HOME/.wgetrc to specify wget defaults. For example put proxy definition on corporate network.
# cat /.wgetrc http_proxy=http://proxy.mydomain.com:8080 ftp_proxy=http://proxy.mydomain.com:8080
NOTE:
* Environment variables for the wget command to use corporate proxy service (ex: http_proxy, ftp_proxy) may bring some side effects when run any other command.
I get the Companion package collections ISO image from "ftp.sunfreeware.com" site below, in hope that to get latest packages.
1. Operation-guide
2. Download ISO image to your working directory, for example, /tmp.
# cd /tmp # wget ftp://ftp.sunfreeware.com/pub/freeware/companioncd/iso/companion-sparc-sol10.iso.bz2
3. cd to extract directory and unzip ISO image.
# bunzip2 companion-sparc-sol10.iso.bz2
4. Mount the ISO image file with commands like (as root)
# lofiadm -a `pwd`/companion-sparc-sol10.iso /dev/lofi/1 # mount -F hsfs -o ro /dev/lofi/1 /mnt
5. Now cd to /mnt and you will find the packages, for example, SFWyasr.pkg.bz2. Copy the packages you want to some directory, here just /tmp.
6. In /tmp, run bunzip2 SFWyasr.pkg.bz2.
7. Then run pkgadd -d SFWyasr.pkg and follow the instructions. The files will be installed in /opt/sfw subdirectories.
Installing the Dependency Bundle, which are handling dependencies between packages.
Operation-guide:
1. copy the packages to working directory (for example : /export/home/archives/pkg)
# mkdir /export/home/archives/pkg # cp -pi /mnt/*.pkg.bz2 /export/home/archives/pkg
2. Uncompress the files using the bunzip2 utility.
# bunzip2 /export/home/archives/pkg/*.pkg.bz2
3. Install the Dependency Bundle packages in the following order: SFWgcmn, SFWungif and SFWimlib.
# cd /export/home/archives/pkg/ o SFWgcmn gcmn - Common GNU package # pkgadd -d SFWgcmn.pkg o SFWungif libungif - library used with GIF files # pkgadd -d SFWungif.pkg o SFWimlib imlib - Image loading and rendering library for X11 # pkgadd -d SFWimlib.pkg
4. Install the rest of the Dependency Bundle packages
o SFWaalib aalib - ASCII Art Library # pkgadd -d SFWaalib.pkg o SFWasclk asclock - the AfterStep clock # pkgadd -d SFWasclk.pkg o SFWbdb berkeleyDB - Berkeley Database Library # pkgadd -d SFWbdb.pkg o SFWcoreu coreutils - GNU core utilities # pkgadd -d SFWcoreu.pkg po SFWdb1 Berkeley DB - database library # pkgadd -d SFWdb1.pkg o SFWfnlib fnlib - X11 font rendering library # pkgadd -d SFWfnlib.pkg o SFWlibsane libsane - Scanner libraries and utilities # pkgadd -d SFWlibsane.pkg o SFWlpcap libpcap - A Packet Capture Library # pkgadd -d SFWlpcap.pkg o SFWmpeg MPEG Library - decode MPEG-1 video streams # pkgadd -d SFWmpeg.pkg o SFWncur ncurses - new curses library # pkgadd -d SFWncur.pkg o SFWoggl libogg libao libvorbis - Ogg and Vorbis libraries # pkgadd -d SFWoggl.pkg o SFWpcre PCRE - Perl-compatible regular expression library # pkgadd -d SFWpcre.pkg o SFWrline readline - library for editing command lines # pkgadd -d SFWrline.pkg o SFWslang S-Lang library - for S-Lang language # pkgadd -d SFWslang.pkg o SFWtclx TclX - TCL Extensions # pkgadd -d SFWtclx.pkg o SFWter Freeware Terminal Information - terminfo files # pkgadd -d SFWter.pkg o SFWxaw3d Xaw3d - ThreeD Athena Widgets # pkgadd -d SFWxaw3d.pkg
Installing packages from the same DVD image.
o SFWgawk gawk - pattern scanning and processing language # pkgadd -d SFWgawk.pkg o SFWoldap openldap - Open source Lightweight Directory Access Protocol # pkgadd -d SFWoldap.pkg o SFWsed GNU sed - streaming editor # pkgadd -d SFWsed.pkg o SFWaconf autoconf - GNU autoconf utility # pkgadd -d SFWaconf.pkg o SFWamake automake - GNU automake utility # pkgadd -d SFWamake.pkg o SFWltool libtool - Generic library support script # pkgadd -d SFWltool.pkg o SFWgd gd - GD Graphics Library # pkgadd -d SFWgd.pkg o SFWgtxt GNU gettext - utilities for software localization # pkgadd -d SFWgtxt.pkg o SFWtop top - display information about processes # pkgadd -d SFWtop o SFWfile file - determine file type # pkgadd -d SWFfile # mv -i /usr/bin/file /usr/bin/file.orig # ln -s /opt/sfw/bin/gfile /usr/bin/file NOTE: Remember, you should be create symbolic link "gfile" to "file" as above, for compatibility reason to MindTouch.
You should update Freeware packages on your Solaris box, To avoid link error as below, when build the Mono.
if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../mono -I../../libgc/include \ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DMONO_BINDIR=\"/opt/mono/bin/\" \ -DMONO_ASSEMBLIES=\"/opt/mono/lib\" -DMONO_CFG_DIR=\"/opt/mono/etc\" -I/opt/sfw/include \ -I/usr/sfw/include -I/usr/include -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT \ -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP -DPLATFORM_SOLARIS \ -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -D_XOPEN_SOURCE_EXTENDED=1 \ -DNO_UNALIGNED_ACCESS -g -O2 -fno-strict-aliasing -Wdeclaration-after-statement -g -Wall \ -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes \ -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wcast-align \ -Wwrite-strings -Wno-char-subscripts -Wno-cast-align -mcpu=v9 -MT pedump.o -MD -MP -MF \ ".deps/pedump.Tpo" -c -o pedump.o pedump.c; \ then mv -f ".deps/pedump.Tpo" ".deps/pedump.Po"; else rm -f ".deps/pedump.Tpo"; exit 1; fi /bin/bash ../../libtool --tag=CC --mode=link gcc -g -O2 -fno-strict-aliasing \ -Wdeclaration-after-statement -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations \ -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual \ -Wcast-align -Wwrite-strings -Wno-char-subscripts -Wno-cast-align -mcpu=v9 -L/opt/sfw/lib \ -L/usr/sfw/lib -L/usr/lib -o pedump pedump.o libmonoruntime.la ../io-layer/libwapi.la \ ../utils/libmonoutils.la ../../libgc/libmonogc.la -lgthread-2.0 -lglib-2.0 -lm -lrt \ -lsocket -lnsl -lxnet -lpthread -lm gcc -g -O2 -fno-strict-aliasing -Wdeclaration-after-statement -g -Wall -Wunused \ -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings \ -Wno-char-subscripts -Wno-cast-align -mcpu=v9 -o pedump pedump.o -L/opt/sfw/lib \ -L/usr/sfw/lib -L/usr/lib ./.libs/libmonoruntime.a ../io-layer/.libs/libwapi.a \ ../utils/.libs/libmonoutils.a ../../libgc/.libs/libmonogc.a -ldl -lgthread-2.0 -lglib-2.0 \ -lrt -lsocket -lnsl -lxnet -lpthread -lm ld: fatal: relocation error: R_SPARC_32: file ../../libgc/.libs/libmonogc.a(sparc_mach_dep.o):\ symbol <unknown>: offset 0xfd2ca06d is non-aligned ld: fatal: relocation error: R_SPARC_32: file ../../libgc/.libs/libmonogc.a(sparc_mach_dep.o):\ symbol <unknown>: offset 0xfd2ca073 is non-aligned ld: fatal: relocation error: R_SPARC_32: file ../../libgc/.libs/libmonogc.a(sparc_mach_dep.o):\ symbol <unknown>: offset 0xfd2ca077 is non-aligned ld: fatal: relocation error: R_SPARC_32: file ../../libgc/.libs/libmonogc.a(sparc_mach_dep.o):\ symbol <unknown>: offset 0xfd2ca07b is non-aligned ld: fatal: relocation error: R_SPARC_32: file ../../libgc/.libs/libmonogc.a(sparc_mach_dep.o):\ symbol <unknown>: offset 0xfd3a1c93 is non-aligned ld: fatal: relocation error: R_SPARC_32: file ../../libgc/.libs/libmonogc.a(sparc_mach_dep.o):\ symbol <unknown>: offset 0xfd3cb46e is non-aligned collect2: ld returned 1 exit status gmake[3]: *** [pedump] Error 1 gmake[3]: Leaving directory `/mono-20080223/mono/metadata' gmake[2]: *** [all-recursive] Error 1 gmake[2]: Leaving directory `/mono-20080223/mono' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/mono-20080223' gmake: *** [all] Error 2
(1) Mount the "Solaris 10 5_08 Operating System" DVD image.
(2) Update some packages with latest one.
o SUNWgcc gcc - The GNU C compiler (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWgcc o SUNWbison bison - A YACC Replacement (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWbison o SUNWflexlex Flex Lexer (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWflexlex o SUNWflexruntime Flex Lexer (Runtime Libraries) (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWflexruntime o SUNWgmake gmake - GNU make (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWgmake o SUNWggrp ggrep - GNU grep utilities (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWggrp o SUNWzlib The Zip compression library (sparc) 11.10.0,REV=2005.01.08.05.16 # pkgadd -d /mnt/Solaris_10/Product SUNWzlib
PHP5 requires cURL 7.10.5 or greater, but the SFWcurl package bundled with Solaris 10 was curl 7.10.3. So that, I build latest cURL from source.
# cd /export/home/archives/ # wget http://curl.haxx.se/download/curl-7.18.1.tar.gz # gtar xfz curl-7.18.1.tar.gz # cd curl-7.18.1/ # ./configure --prefix=/opt/sfw \ --with-ssl=/usr/sfw \ --with-zlib=/usr/lib
You will see following configuration messages.
curl version: 7.18.1 Host setup: sparc-sun-solaris2.10 Install prefix: /opt/sfw Compiler: gcc SSL support: enabled (OpenSSL) SSH support: no (--with-libssh2) zlib support: enabled krb4 support: no (--with-krb4*) GSSAPI support: no (--with-gssapi) SPNEGO support: no (--with-spnego) c-ares support: no (--enable-ares) ipv6 support: enabled IDN support: no (--with-libidn) Build libcurl: Shared=yes, Static=yes Built-in manual: enabled Verbose errors: enabled (--disable-verbose) SSPI support: no (--enable-sspi) ca cert bundle: no ca cert path: no LDAP support: enabled (OpenLDAP) LDAPS support: no (--enable-ldaps)
Then compile and install cURL.
# gmake # gmake install
Solaris 10 bundled "convert" command in ImageMagick(SUNWimagick) has no "-thumbnail" option, which required by MindTouch. So that, Install latest ImageMagick from UNIX source as workaround.
(1) Download ImageMagick.tar.gz from ftp.imagemagick.org or its mirrors ( http://www.imagemagick.org/script/download.php ) and unpack it with this command
# cd $HOME # wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz # gtar xvfz ImageMagick.tar.gz
(2) Configure and compile ImageMagick
# cd ImageMagick-6.?.?
# ./configure --prefix=/usr/sfw --with-perl=no
(snip)
ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.
Host system type: sparc-sun-solaris2.10
Build system type: sparc-sun-solaris2.10
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=no no
Quantum depth --with-quantum-depth=16 16
High Dynamic Range Imagery
--enable-hdri=no no
Delegate Configuration:
BZLIB --with-bzlib=yes yes
DJVU --with-djvu=no no
DPS --with-dps=yes yes
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.15.1)
result_ghostscript_font_dir='none'
Ghostscript fonts --with-gs-font-dir=default
Ghostscript lib --with-gslib=yes no
Graphviz --with-gvc=yes no
JBIG --with-jbig=yes no
JPEG v1 --with-jpeg=yes yes
JPEG-2000 --with-jp2=yes no
LCMS --with-lcms=yes no
LQR --with-lqr=no no
Magick++ --with-magick-plus-plus=yes yes
OpenEXR --with-openexr=yes no
PERL --with-perl=no no
PNG --with-png=yes yes
RSVG --with-rsvg=yes no
TIFF --with-tiff=yes yes
result_windows_font_dir='none'
Windows fonts --with-windows-font-dir=
WMF --with-wmf=yes no
X11 --with-x= yes
XML --with-xml=yes yes
ZLIB --with-zlib=yes yes
X11 Configuration:
X_CFLAGS = -I/usr/openwin/include
X_PRE_LIBS = -lSM -lICE
X_LIBS = -L/usr/openwin/lib -R/usr/openwin/lib
X_EXTRA_LIBS = -lsocket -lnsl
Options used to compile and link:
PREFIX = /usr/sfw
EXEC-PREFIX = /usr/sfw
VERSION = 6.4.1
CC = gcc
CFLAGS = -g -O2 -Wall -W -D_REENTRANT -pthreads
MAGICK_CFLAGS = -g -O2 -Wall -W -D_REENTRANT -pthreads
CPPFLAGS = -I/usr/sfw/include/ImageMagick
PCFLAGS =
DEFS = -DHAVE_CONFIG_H
LDFLAGS = -L/opt/mysql/lib -L/opt/sfw/lib -L/usr/sfw/lib -L/usr/lib -lstdc++ -L/usr/openwin/lib \
-R/usr/openwin/lib -L/usr/sfw/lib -R/usr/sfw/lib -lfreetype
MAGICK_LDFLAGS = -L/usr/sfw/lib -L/opt/mysql/lib -L/opt/sfw/lib -L/usr/sfw/lib -L/usr/lib -lstdc++ \
-L/usr/openwin/lib -R/usr/openwin/lib -L/usr/sfw/lib -R/usr/sfw/lib -lfreetype
LIBS = -lMagickCore -ltiff -lfreetype -ljpeg -lfontconfig -lXext -lSM -lICE -lX11 -lsocket -lnsl -\
lXt -lbz2 -lz -lm -lpthread
CXX = g++
CXXFLAGS = -g -O2 -Wall -W -D_REENTRANT -pthreads
# gmake
(3) If ImageMagick configured and compiled without complaint, you are ready to install it on your system.
# gmake install
# ldd /usr/sfw/bin/convert
libMagickCore.so.1 => /usr/sfw/lib/libMagickCore.so.1
libMagickWand.so.1 => /usr/sfw/lib/libMagickWand.so.1
libtiff.so.3 => /usr/lib/libtiff.so.3
libjpeg.so.62 => /usr/lib/libjpeg.so.62
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1
libXext.so.0 => /usr/lib/libXext.so.0
libXt.so.4 => /usr/lib/libXt.so.4
libbz2.so.1 => /usr/lib/libbz2.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libfreetype.so.6 => /usr/sfw/lib/libfreetype.so.6
libSM.so.6 => /usr/lib/libSM.so.6
libICE.so.6 => /usr/lib/libICE.so.6
libX11.so.4 => /usr/lib/libX11.so.4
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libm.so.2 => /usr/lib/libm.so.2
libc.so.1 => /usr/lib/libc.so.1
libz.so.1 => /usr/lib/libz.so.1
libexpat.so.0 => /usr/sfw/lib/libexpat.so.0
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libmd.so.1 => /usr/lib/libmd.so.1
libscf.so.1 => /usr/lib/libscf.so.1
libdoor.so.1 => /usr/lib/libdoor.so.1
libuutil.so.1 => /usr/lib/libuutil.so.1
libgen.so.1 => /usr/lib/libgen.so.1
/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
/platform/SUNW,Sun-Blade-1000/lib/libmd_psr.so.1
# /usr/sfw/bin/convert -h | grep -i thumbnail
-thumbnail geometry create a thumbnail of the image
o Reference
(1) edit /usr/lib/pkgconfig/gthread-2.0.pc and change the last 2 lines
from:
Libs: -L${libdir} -lgthread-2.0 -mt
Cflags: -mt
To:
Libs: -L${libdir} -lgthread-2.0 -D_REENTRANT -lthread
CFlags: -D_REENTRANT
Then:
# mv -i /usr/lib/pkgconfig/gthread-2.0.pc /usr/lib/pkgconfig/gthread-2.0.pc.orig
# cp -pi /usr/lib/pkgconfig/gthread-2.0.pc.orig /usr/lib/pkgconfig/gthread-2.0.pc
# vi /usr/lib/pkgconfig/gthread-2.0.pc
# diff /usr/lib/pkgconfig/gthread-2.0.pc.orig /usr/lib/pkgconfig/gthread-2.0.pc
10,11c10,11
< Libs: -L${libdir} -lgthread-2.0 -mt
< Cflags: -mt
---
> Libs: -L${libdir} -lgthread-2.0 -D_REENTRANT -lthread
> CFlags: -D_REENTRANT
(2) Reference
The Mono daily package can obtain from the Mono-Project site (1).
You should build the Mono from source code as new as possible because 1.2.6-release of Mono doe's not work with MindTouch.
There are two pages to get the Mono sources, but according to my experience, the forefront of (2)"Mono Daily Packages" obtain easy success, but in the latter case (3)"Mono trunk Sources" I failed by core dumped error.
So that I recommend that you should be select (2)"Mono Daily Packages" expect as otherwise your need.
If you intend to build the latest Mono-2.0, refer to later section Build and Install Mono-2.0 from source (Experiment record).
Extract Mono from archive, and run confgure on your working directory.
Please replace the Mono archive name with the latest name.
Before compiling the Mono, please re-setting environment variables as follows.
Therefore, keep required minimum parameter alive.
(NOTE) Rename Solaris original command "mcs" to aviod failuer of build the Mono.
Remember when finish a installation Mono restore "mcs" to normal name.
(NOTE) I need a Mono's patch to avoid next issue. So this guide are applied the patch in the following procedure. BTW, this patch was released for Mono 2.0 but it worked on Mono 1.2.x for me.
# export LDFLAGS="-L/opt/sfw/lib -L/usr/sfw/lib -L/usr/lib -lstdc++" # export CPPFLAGS="-I/opt/sfw/include -I/usr/sfw/include -I/usr/include" # export LD_LIBRARY_PATH=/opt/sfw/lib:/usr/sfw/lib:/usr/lib # export PATH=/usr/sbin:/usr/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/X/bin:/usr/ucb:/usr/ccs/bin:\ /opt/sfw/bin:/opt/sfw/sbin:/opt/SUNWspro/bin:/opt/subversion-current/bin # mv -i /usr/ccs/bin/mcs /usr/ccs/bin/mcs.orig # cd / # wget http://mono.ximian.com/daily/mono-20080223.tar.bz2 # bzip2 -d < mono-20080223.tar.bz2 | gtar xf - # cd mono-20080223/ # find . -name inssel-sparc.brg # cd mono/mini # curl --insecure 'https://bugzilla.novell.com/attachment.cgi?id=241026' > inssel-sparc.brg.diff # cat inssel-sparc.brg.diff # ls -l inssel-sparc.brg* # patch < inssel-sparc.brg.diff # ls -l inssel-sparc.brg* # cd ../../ # MAKE=gmake AR=gar RANLIB=granlib STRIP=gstrip AS=gas CC=gcc CFLAGS="-g -O2" \ ./configure --prefix=/opt/mono \ --with-tls=pthread \ --with-includes=/usr/sfw/include/ \ --with-libs=/usr/sfw/lib/ (snip) mcs source: $(top_srcdir)/mcs olive source: GC: included TLS: pthread SIGALTSTACK: yes Engine: Building and using the JIT 2.0 Beta: yes 2.1 Alpha: yes JNI support: IKVM Native libgdiplus: assumed to be installed zlib: system zlib oprofile: no
Then make the Mono at the top of source tree.
This task take an hour, so you can take a coffee or cup of tea :)
# gmake (snip) sed -e 's,@''bindir@,/opt/mono/bin,g' -e 's,@''plat_bindir@,/opt/mono/bin,g' -e 's,@''mono_instdir@,/opt/mono/lib/mono,g' -e 's,@''gtkdir@,,g' -e 's,@''mono_interp@,mono --debug,g' -e 's,@''framework_version@,1.0,g' -e 's,@''exe_name@,nunit-console,g' ./script.in > nunit-console.tmp mv nunit-console.tmp nunit-console sed -e 's,@''bindir@,/opt/mono/bin,g' -e 's,@''plat_bindir@,/opt/mono/bin,g' -e 's,@''mono_instdir@,/opt/mono/lib/mono,g' -e 's,@''gtkdir@,,g' -e 's,@''mono_interp@,mono --debug,g' -e 's,@''framework_version@,2.0,g' -e 's,@''exe_name@,nunit-console,g' ./script.in > nunit-console2.tmp mv nunit-console2.tmp nunit-console2 gmake[2]: Leaving directory `/mono-20080223/scripts' Making all in man gmake[2]: Entering directory `/mono-20080223/man' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/man' Making all in samples gmake[2]: Entering directory `/mono-20080223/samples' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/samples' Making all in web gmake[2]: Entering directory `/mono-20080223/web' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/web' Making all in msvc gmake[2]: Entering directory `/mono-20080223/msvc' gmake[2]: Nothing to be done for `all'. gmake[2]: Leaving directory `/mono-20080223/msvc' gmake[2]: Entering directory `/mono-20080223' gmake[2]: Leaving directory `/mono-20080223' gmake[1]: Leaving directory `/mono-20080223'
When the gmake leave with avobe message, it seems that your Mono built successfully.
Note: If you see "Segmentation Fault - core dumped" error, please delete created dll in 'class' directory, then try to re-run "gmake" once more.
Then run self tests, if you have enough latency time. ;)
# gmake CC=gcc -k check (snip) Done 1709 test cases passed (92.48%) 1 test(s) ignored 58 known issue(s) Segmentation Fault - core dumped gmake[8]: *** [run-mcs-tests] Error 139 gmake[8]: Target `run-test-local' not remade because of errors. gmake[8]: Leaving directory `/mono-20080223/mcs/errors' gmake[7]: *** [do-run-test] Error 255 gmake[7]: Target `run-test' not remade because of errors. gmake[7]: Leaving directory `/mono-20080223/mcs/errors' gmake[6]: *** [run-test-recursive] Error 1 gmake[6]: Leaving directory `/mono-20080223/mcs' gmake[6]: Entering directory `/mono-20080223/mcs' gmake[6]: Leaving directory `/mono-20080223/mcs' gmake[5]: *** [do-run-test] Error 255 gmake[5]: Target `run-test' not remade because of errors. gmake[5]: Leaving directory `/mono-20080223/mcs' gmake[4]: *** [profiles-do--run-test] Error 255 gmake[4]: Target `run-test-profiles' not remade because of errors. gmake[4]: Leaving directory `/mono-20080223/mcs' gmake[3]: *** [mcs-do-run-test-profiles] Error 2 gmake[3]: Leaving directory `/mono-20080223/runtime' gmake[2]: *** [check-local] Error 2 gmake[2]: Leaving directory `/mono-20080223/runtime' gmake[1]: *** [check-am] Error 2 gmake[1]: Target `check' not remade because of errors. gmake[1]: Leaving directory `/mono-20080223/runtime' Making check in scripts gmake[1]: Entering directory `/mono-20080223/scripts' gmake[1]: Nothing to be done for `check'. gmake[1]: Leaving directory `/mono-20080223/scripts' Making check in man gmake[1]: Entering directory `/mono-20080223/man' gmake[1]: Nothing to be done for `check'. gmake[1]: Leaving directory `/mono-20080223/man' Making check in samples gmake[1]: Entering directory `/mono-20080223/samples' gmake[1]: Nothing to be done for `check'. gmake[1]: Leaving directory `/mono-20080223/samples' Making check in web gmake[1]: Entering directory `/mono-20080223/web' gmake[1]: Nothing to be done for `check'. gmake[1]: Leaving directory `/mono-20080223/web' Making check in msvc gmake[1]: Entering directory `/mono-20080223/msvc' gmake[1]: Nothing to be done for `check'. gmake[1]: Leaving directory `/mono-20080223/msvc' gmake[1]: Entering directory `/mono-20080223' gmake[1]: Leaving directory `/mono-20080223' gmake: *** [check-recursive] Error 1 gmake: Target `check' not remade because of errors.
NOTE: It is more than pobable that some of errors, for example (1)"core dumped" error, (2) abnormal memory consumption, (3) hours of silence, but I can't fix it. Please ignore this, and go ahead !
NOTE: In my experience, there are some problems of self-test with overconsumption of memory possible. If you discovery abnormal memory consumption during self-test, you should kill the mono process correspond to the test, or else virtual memory of Solaris box will be exhaust.
NUnit version 2.2.0 Copyright (C) 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole. Copyright (C) 2000-2003 Philip Craig. All Rights Reserved. OS Version: Unix 5.10.0.0 Mono Version: 1.1.4322.2032 Excluded categories: NotWorking,ValueAdd,CAS,InetAccess ...................................................................... ...................................................................... ...................................................................... ...................................................................... ...................................................................... ............N.N....................................................... ...................................................................... ...................................................................... ............................................................. (snip)
Install the Mono into your Solaris box.
Before installation rename the destination If older version exists.
# mv -i /opt/mono/ /opt/mono-old
# gmake install
# mv -i /usr/ccs/bin/mcs.orig /usr/ccs/bin/mcs
# . /.bash_profile
# ldd /opt/mono/bin/mono
libstdc++.so.6 => /usr/sfw/lib/libstdc++.so.6
libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0
libthread.so.1 => /usr/lib/libthread.so.1
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
librt.so.1 => /usr/lib/librt.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libxnet.so.1 => /usr/lib/libxnet.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libm.so.2 => /usr/lib/libm.so.2
libc.so.1 => /usr/lib/libc.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libmd.so.1 => /usr/lib/libmd.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libscf.so.1 => /usr/lib/libscf.so.1
libdoor.so.1 => /usr/lib/libdoor.so.1
libuutil.so.1 => /usr/lib/libuutil.so.1
libgen.so.1 => /usr/lib/libgen.so.1
/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
/platform/SUNW,Sun-Blade-1000/lib/libmd_psr.so.1
# /opt/mono/bin/mono -V
Mono JIT compiler version 20080223 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Notification: Thread + polling
Architecture: sparc
Disabled: none
# /opt/mono/bin/gmcs --version
Mono C# compiler version 2008.223.0.0
# cd /
If you want to get support for System.Drawing, you can install the libgdiplus as mentioned below, but NO need for run MindTouch in my experience.
# cd / # wget http://go-mono.com/sources/libgdiplus/libgdiplus-1.2.6.tar.bz2 # bzip2 -d < libgdiplus-1.2.6.tar.bz2 | gtar xf - # cd libgdiplus-1.2.6/ # GREP=ggrep MAKE=gmake AR=gar RANLIB=granlib STRIP=gstrip AS=gas CC=gcc \ ./configure --prefix=/opt/mono cairo will be compiled with the following surface backends: image: yes (always builtin) Xlib: yes Xlib Xrender: yes Quartz: no (disabled, use --enable-quartz to enable) XCB: no (disabled, use --enable-xcb to enable) Win32: no (requires a Win32 platform) OS2: no (disabled, use --enable-os2 to enable) PostScript: yes PDF: no (disabled, use --enable-pdf to enable) SVG: no (disabled, use --enable-svg to enable) glitz: no (disabled, use --enable-glitz to enable) BeOS: no (disabled, use --enable-beos to enable) DirectFB: no (disabled, use --enable-directfb to enable) the following font backends: FreeType: yes Win32: no (requires a Win32 platform) ATSUI: no (disabled, use --enable-atsui to enable) the following features: PNG functions: yes and the following debug options: gcov support: no test surfaces: no pdf testing: no svg testing: using CFLAGS: -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/usr/include/libpng12 -I/usr/openwin/include -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold-style-definition -Wno-unused-parameter -fno-strict-aliasing --- Configuration summary * Installation prefix = /opt/mono * Cairo = internal * Text = cairo * EXIF tags = yes * Codecs supported: - TIFF: yes - JPEG: yes - GIF: no (See http://sourceforge.net/projects/libgif) - PNG: yes NOTE: if any of the above say 'no' you may install the corresponding development packages for them, rerun autogen.sh to include them in the build. # gmake # gmake install
I use MySQL (5.0.51a) binary distribution instead of Solaris 10 bundled MySQL (4.0.24).
You can download MySQL for Solaris in tar.gz format from MySQL.COM.
(1) create the mysql user and group
Before installing MySQL, you should create the mysql user and group, for example:
# groupadd -g 900 mysql # useradd -g mysql -u 900 mysql # grep mysql /etc/passwd mysql:x:900:900::/home/mysql:/bin/sh # grep mysql /etc/group mysql::900:
(2) Download MySQL for Solaris 10 (SPARC, 32-bit) of "TAR packages"
# cd /export/home/archives/ # wget -O mysql-5.0.51a-solaris10-sparc.tar.gz \ http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.51a-solaris10-sparc.tar.gz\ /from/http://ftp.iij.ad.jp/pub/db/mysql/
(3) Extracting the "TAR packages"
# cd /opt/ # gtar xfz /export/home/archives/mysql-5.0.51a-solaris10-sparc.tar.gz # mv -i mysql-5.0.51a-solaris10-sparc mysql
(4) Change installation ownership to mysql
# cd mysql # chown -R mysql:mysql .
(5) If you have not installed MySQL before, you must create the MySQL data directory and initialize the grant tables
# /bin/bash scripts/mysql_install_db --user=mysql
Then you will see:
Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: ./bin/mysqladmin -u root password 'new-password' ./bin/mysqladmin -u root -h <hostname> password 'new-password' Alternatively you can run: ./bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd . ; ./bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl Please report any problems with the ./bin/mysqlbug script! The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com
(6) Make MySQL to start automatically
cp -pi support-files/mysql.server /etc/init.d/ ln -s /etc/init.d/mysql.server /etc/rc3.d/S91mysql ln -s /etc/init.d/mysql.server /etc/rc0.d/K01mysql
(7) start the MySQL server
# bin/mysqld_safe --user=mysql & # ps -ef | grep mysqld | grep -v grep root 1810 670 0 14:46:48 pts/2 0:00 /bin/sh bin/mysqld_safe --user=mysql mysql 1828 1810 2 14:46:48 pts/2 0:00 /opt/mysql/bin/mysqld --basedir=/opt/mysql \ --datadir=/opt/mysql/data --user=mys
(8) Set a password for the MySQL "root" user
./bin/mysqladmin -u root password <secret> ./bin/mysqladmin -u root -h <hostname> password <secret>
(8) connect to MySQL server from the mysql client, if you want.
# bin/mysql -uroot -p<secret> -hlocalhost Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.0.51a MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> exit Bye
(1) create new logs directory
# mkdir /opt/mysql/logs # chown mysql:mysql /opt/mysql/logs
(2) create MySQL configuration file named "/etc/my.cnf"
# touch /etc/my.cnf # chown mysql:mysql /etc/my.cnf # vi /etc/my.cnf # cat /etc/my.cnf basedir = /opt/mysql port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M #log = /opt/mysql/logs/mysql.log log-error = /opt/mysql/logs/error.log #log-bin = /opt/mysql/logs/log-bin query_cache_limit =1M query_cache_size =32M max_connections = 254
(3) start the mysql instance
# /etc/rc3.d/S91mysql reload SUCCESS! Reloading service MySQL
cp -pi /opt/mysql/bin/mysql_config /opt/mysql/bin/mysql_config.orig vi /opt/mysql/bin/mysql_config diff /opt/mysql/bin/mysql_config.orig /opt/mysql/bin/mysql_config 96c96,97 < ldflags='-xarch=v8' --- > # ldflags='-xarch=v8' > ldflags='' 105c106,107 < cflags="-I$pkgincludedir -xO3 -Xa -xstrconst -mt -D_FORTEC_ -xarch=v8 -xc99=none " #note: end space! --- > # cflags="-I$pkgincludedir -xO3 -Xa -xstrconst -mt -D_FORTEC_ -xarch=v8 -xc99=none " #note: end space! > cflags="-I$pkgincludedir -xO3 -Xa -xstrconst -mt -D_FORTEC_ -xc99=none " #note: end space!
(1) Reference
(2) Create Apache2 configuration file from sample one
# cd /etc/apache2 # cp -pi httpd.conf-example httpd.conf
Then edit file '/etc/apache2/httpd.conf' as below, to set PHP files Apache will serve if a directory is requested.
From: DirectoryIndex index.html index.html.var To: DirectoryIndex index.html index.html.var index.cgi index.php index.xhtml
Here is a sample operation for me.
# cd /etc/apache2 # cp -pi httpd.conf httpd.conf.01-fine-for-8052 # vi httpd.conf # diff -u httpd.conf.01-fine-for-8052 httpd.conf --- httpd.conf.01-fine-for-8052 Thu May 15 06:36:12 2008 +++ httpd.conf Sun Aug 17 18:32:03 2008 @@ -450,7 +450,8 @@ # negotiated documents. The MultiViews Option can be used for the # same purpose, but it is much slower. # -DirectoryIndex index.html index.html.var +# DirectoryIndex index.html index.html.var +DirectoryIndex index.html index.html.var index.cgi index.php index.xhtml # # AccessFileName: The name of the file to look for in each directory
(3) Create directory to store the pid file
# mkdir /var/run/apache2
(4) Start Apache2 server
o To check configuration # /usr/apache2/bin/apachectl configtest o To start the server: # /usr/apache2/bin/apachectl -k start o To stop the server: # /usr/apache2/bin/apachectl -k stop
If you run into trouble check the logs under "/var/apache2/logs"
To connect your Web-browser to Apache2 server http://<hostname>/
(5) Setting up SMF for Apache2
Stop the Apache2 server process
/usr/apache2/bin/apachectl -k stop
Enable Apache2 service provided by smf (svc:/network/http:apache2)
# svcadm clear svc:/network/http:apache2 svcadm: Instance "svc:/network/http:apache2" is not in a maintenance or degraded state. # svcadm enable svc:/network/http:apache2 Check the status with : # svcs -xv svc:/network/http:apache2 svc:/network/http:apache2 (Apache 2 HTTP server) State: online since Sun May 04 16:06:45 2008 See: man -M /usr/apache2/man -s 8 httpd See: /var/svc/log/network-http:apache2.log Impact: None. # svcs -v apache2 STATE NSTATE STIME CTID FMRI online - 16:06:45 97 svc:/network/http:apache2 # svcadm disable svc:/network/http:apache2 # svcs -v apache2 STATE NSTATE STIME CTID FMRI disabled - 16:09:52 - svc:/network/http:apache2
(6) setting environment-variables for Apache HTTP server
# mv -i /lib/svc/method/http-apache2 /lib/svc/method/http-apache2.orig # cp -pi /lib/svc/method/http-apache2.orig /lib/svc/method/http-apache2 # vi /lib/svc/method/http-apache2 (Change the first line to /bin/bash) from: #!/sbin/sh to: #!/bin/bash (insert the next line to beginning of script) . /.bash_profile # diff /lib/svc/method/http-apache2.orig /lib/svc/method/http-apache2 1c1 < #!/sbin/sh --- > #!/bin/bash 8a9 > . /.bash_profile
(1) Compile and Installing PHP5
# cd /export/home/archives/ # wget -O php-5.2.6.tar.gz http://jp2.php.net/get/php-5.2.6.tar.gz/from/this/mirror # gtar xfz php-5.2.6.tar.gz # cd php-5.2.6/ # gmake clean # ./configure \ --prefix=/opt/php5 \ --with-apxs2=/usr/apache2/bin/apxs \ --with-libxml-dir=/usr/local \ --with-config-file-path=/etc/apache2 \ --with-mysql=shared,/opt/mysql \ --with-mysqli=shared,/opt/mysql/bin/mysql_config \ --with-curl=shared,/opt/sfw \ --with-xpm-dir=/usr \ --with-gd \ --with-bz2=/usr/lib \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib \ --enable-mbstring \ --enable-calendar \ --enable-bcmath \ --enable-ftp \ --enable-exif \ --enable-dbase \ --with-openssl=shared,/usr/sfw \ --with-ldap=shared,/usr \ --with-exec-dir=/opt/php5/bin \ --with-pdo-mysql=shared,/opt/mysql \ --with-gettext=shared,/opt/sfw \ --with-readline=shared,/opt/sfw # gmake # gmake test Build complete. Don't forget to run 'make test'. ===================================================================== PHP : /export/home/archives/php-5.2.6/sapi/cli/php PHP_SAPI : cli PHP_VERSION : 5.2.6 ZEND_VERSION: 2.2.0 PHP_OS : SunOS - SunOS <hostname> 5.10 Generic_127111-11 sun4u INI actual : /export/home/archives/php-5.2.6/tmp-php.ini More .INIs : CWD : /export/home/archives/php-5.2.6 Extra dirs : ===================================================================== (snip) PASS Test copy() function: usage variations - destination file names(special chars) [ext/standard/tests/file/copy_variation2.phpt] SKIP Test copy() function: usage variations - destination file names(white spaces) [ext/standard/tests/file/copy_variation3-win32.phpt] reason: only run on Windows PASS Test copy() function: usage variations - destination file names(white spaces) [ext/standard/tests/file/copy_variation3.phpt] SKIP Test copy() function: usage variations - destination file names(empty string, nulls & bools) [ext/standard/tests/file/copy_variation4-win32.phpt] reason: Run only on Windows ERROR: Cannot open file '/export/home/archives/php-5.2.6/ext/standard/tests/file/copy_variation4.clean.php' (save_text) gmake: [test] Error 1 (ignored) # gmake install Installing PHP SAPI module: apache2handler /var/apache2/build/instdso.sh SH_LIBTOOL='/var/apache2/build/libtool' libphp5.la /usr/apache2/libexec /var/apache2/build/libtool --mode=install cp libphp5.la /usr/apache2/libexec/ cp .libs/libphp5.so /usr/apache2/libexec/libphp5.so chmod +x /usr/apache2/libexec/libphp5.so cp .libs/libphp5.lai /usr/apache2/libexec/libphp5.la libtool: install: warning: remember to run `libtool --finish /export/home/archives/php-5.2.6/libs' chmod 755 /usr/apache2/libexec/libphp5.so [activating module `php5' in /etc/apache2/httpd.conf] Installing PHP CLI binary: /opt/php5/bin/ Installing PHP CLI man page: /opt/php5/man/man1/ Installing shared extensions: /opt/php5/lib/php/extensions/no-debug-non-zts-20060613/ Installing build environment: /opt/php5/lib/php/build/ Installing header files: /opt/php5/include/php/ Installing helper programs: /opt/php5/bin/ program: phpize program: php-config Installing man pages: /opt/php5/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /opt/php5/lib/php/ [PEAR] Console_Getopt - installed: 1.2.3 [PEAR] Archive_Tar - installed: 1.3.2 [PEAR] Structures_Graph- installed: 1.0.2 pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0) [PEAR] PEAR - installed: 1.7.1 Wrote PEAR system config file at: /opt/php5/etc/pear.conf You may want to add: /opt/php5/lib/php to your php.ini include_path Installing PDO headers: /opt/php5/include/php/ext/pdo/ # cp -pi php.ini-dist /etc/apache2/php.ini
(2) Install PEAR and MindTouch required modules
# pear config-set http_proxy http://proxy.mydomain.com:8080 config-set succeeded # pear channel-update pear.php.net Updating channel "pear.php.net" Channel "pear.php.net" is up to date # cd /tmp # wget http://pear.php.net/go-pear.phar # /opt/php5/bin/php go-pear.phar Below is a suggested file layout for your new PEAR installation. To change individual locations, type the number in front of the directory. Type 'all' to change all of them or simply press Enter to accept these locations. 1. Installation base ($prefix) : /opt/php5 2. Temporary directory for processing : /tmp/pear/install 3. Temporary directory for downloads : /tmp/pear/install 4. Binaries directory : /opt/php5/bin 5. PHP code directory ($php_dir) : /opt/php5/lib/php 6. Documentation directory : /opt/php5/docs 7. Data directory : /opt/php5/data 8. User-modifiable configuration files directory : /opt/php5/cfg 9. Public Web Files directory : /opt/php5/www 10. Tests directory : /opt/php5/tests 11. Name of configuration file : /opt/php5/etc/pear.conf 1-11, 'all' or Enter to continue: (hit a [Return] key) (snip) # pear install XML_RPC # pear install Cache_Lite # pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.2 stable Cache_Lite 1.7.3 stable Console_Getopt 1.2.3 stable PEAR 1.7.1 stable Structures_Graph 1.0.2 stable XML_RPC 1.5.1 stable
(OPTIONAL but RECOMMENDED)
Update your PHP error reporting level to show all errors, except for notices and coding standards warnings
# cp -pi /etc/apache2/php.ini /etc/apache2/php.ini.orig # vi /etc/apache2/php.ini (edit as follows) from: error_reporting = E_ALL allow_call_time_pass_reference = Off to: error_reporting = E_ALL & ~E_NOTICE allow_call_time_pass_reference = On
(3) enabling extension
# vi /etc/apache2/php.ini from: extension_dir = "./" to: ; extension_dir = "./" extension_dir = "/opt/php5/lib/php/extensions/no-debug-non-zts-20060613/" (add next lines under the "Dynamic Extensions" section) ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; extension=curl.so extension=gettext.so extension=ldap.so extension=mysql.so extension=mysqli.so extension=openssl.so extension=pdo_mysql.so extension=readline.so
(4) modifing PHP for MindTouch
# vi /etc/apache2/php.ini from: ;session.save_path = "/tmp" to: session.save_path = "/tmp"
(5) Restart Apache2 to take effect
# svcadm restart svc:/network/http:apache2
If any errors was show in error.log check it.
# tail -f /var/apache2/logs/error_log [Sat May 10 19:57:20 2008] [notice] caught SIGTERM, shutting down [Sat May 10 19:57:24 2008] [notice] Digest: generating secret for digest authentication ... [Sat May 10 19:57:24 2008] [notice] Digest: done [Sat May 10 19:57:24 2008] [notice] Apache/2.0.63 (Unix) DAV/2 PHP/5.2.6 configured -- resuming normal operations
(6) Testing PHP configuration
You can confirm PHP configuration by the phpinfo() function. All required extensions should be enabled at this point.
# php -i o mysql section are: MySQL Support => enabled Active Persistent Links => 0 Active Links => 0 Client API version => 5.0.51a MYSQL_MODULE_TYPE => external MYSQL_SOCKET => /tmp/mysql.sock MYSQL_INCLUDE => -I/opt/mysql/include MYSQL_LIBS => -L/opt/mysql/lib -lmysqlclient o curl section are: cURL support => enabled cURL Information => libcurl/7.18.1 OpenSSL/0.9.7d zlib/1.2.3
(NOTE) You don't need html2ps for Deki 8.08 (Kilen Woods) because it is substituted by Prince XML.
Install the html2ps which need to convert Deki's page to PDF file.
(1) Reference
(2) Installing html2ps
# cd /export/home/archives # wget http://user.it.uu.se/~jan/html2ps-1.0b5.zip # unzip html2ps-1.0b5.zip # cd html2ps-1.0b5/ # perl install Do you want to proceed with the installation? [y]: Searching for Image/Magick.pm: not found Searching for LWP/UserAgent.pm: not found Searching for ImageMagick: found (/usr/sfw/bin/mogrify) Searching for djpeg: found (/usr/bin/djpeg) Searching for TeX: not found Searching for dvips: not found Searching for Ghostscript: found (/usr/sfw/bin/gs) Searching for weblint: not found Searching for lynx: not found Searching for wget: found (/usr/sfw/bin/wget) By default html2ps uses libwww-perl to retrieve remote documents, I cannot find this on your system. You may instead use some command that can retrieve documents _with_a_complete_MIME_header_. Enter such a command [wget -s -q -O-]: By default all files will be installed in subdirectories 'bin', 'lib', and 'man' in a common directory. Is this OK? [y]: Enter the name of this directory (full path) [/usr/local]: /opt/sfw Created directory /opt/sfw/lib/html2ps Enter the default paper type, possible choices are: A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, letter, legal, arche, archd, archc, archb, archa, flsa, flse, halfletter, 11x17, ledger, other [A4]: Installing html2ps in /opt/sfw/bin Installing html2psrc in /opt/sfw/lib/html2ps Installing html2ps.1 in /opt/sfw/man/man1 Installing html2psrc.5 in /opt/sfw/man/man5 Installing hyphen.tex in /opt/sfw/lib/html2ps Installing html2ps.html in /opt/sfw/lib/html2ps # ls -l html2ps.html html2ps.ps -rw-r--r-- 1 root other 62879 Dec 11 2005 html2ps.html -rw-r--r-- 1 root root 98867 May 10 23:42 html2ps.ps # which html2ps /opt/sfw/bin/html2ps
(NOTE) This section is under the work on my composition to fix the garbled charactors problem for multi-byte language (ex: Japanese).
Install the PrinceXML which need to convert Deki's page to a PDF document.
(1) Reference
(2) Install PrinceXML
Install PrinceXML from static binary tar file:
cd /export/home/archives
wget http://www.princexml.com/download/prince-6.0r7-sol10sparc.tar.gz
gtar xfz prince-6.0r7-sol10sparc.tar.gz
cd prince-6.0r7-sol10sparc
./install.sh
Prince 6.0
Install directory
This is the directory in which Prince 6.0 will be installed.
Press Enter to accept the default directory or enter an alternative.
[/usr/local]: (hit a return)
Installing Prince 6.0...
(snip)
Installation complete.
Thank you for choosing Prince 6.0, we hope you find it useful.
Please visit http://www.princexml.com for updates and development news.
(3) Configure Deki to use PrinceXML
Edit your mindtouch.deki.startup.xml and add the following configuration element
<princexml-path>/usr/local/bin/prince</princexml-path>
Here is a sample operations to do it.
cp -pi /etc/dekiwiki/mindtouch.deki.startup.xml /etc/dekiwiki/mindtouch.deki.startup.xml.01
vi /etc/dekiwiki/mindtouch.deki.startup.xml
diff -u /etc/dekiwiki/mindtouch.deki.startup.xml.01 /etc/dekiwiki/mindtouch.deki.startup.xml
--- /etc/dekiwiki/mindtouch.deki.startup.xml.01 Sun May 11 17:53:34 2008
+++ /etc/dekiwiki/mindtouch.deki.startup.xml Sun Aug 17 20:47:40 2008
@@ -34,6 +34,7 @@
<imagemagick-identify-path>/usr/sfw/bin/identify</imagemagick-identify-path>
<html2ps-path>/opt/sfw/bin/html2ps</html2ps-path>
<ps2pdf-path>/usr/sfw/bin/ps2pdf</ps2pdf-path>
+ <princexml-path>/usr/local/bin/prince</princexml-path>
<!-- <deki-resources-path>/var/www/mks-wiki/resources</deki-resources-path> -->
Your Solaris box are configured to run Deki. Please continue to Install Deki !
Currently, MindTouch 8.05 (Jay Cooke) guide are available.
This fix the following issue for Mono on Solaris.
You need apply a patch to Mono source code, then re-compile and re-install Mono. Or you may be seen unacceptable permission problem.
To do this go-to "Install Mono" section on this guide.
With Deki 8.08, PrinceXML is used to export PDF a page, instead of older html2pdf.
To referer my procedure, go-to "Install PrinceXML" section on this guide.
NOTE : There are an issue that garbled characters/fonts generated on PDF for multi-byte charactors like japanese.
When open the new control panel introduced 8.08 (Kilen Woods), you may see "Forbidden: You don't have permission to access /deki-cp/ on this server."
Then edit file '/etc/apache2/httpd.conf' as below, to set PHP files Apache will serve if a directory is requested.
From: DirectoryIndex index.html index.html.var To: DirectoryIndex index.html index.html.var index.cgi index.php index.xhtml
Here is a sample operation for me.
# cd /etc/apache2 # cp -pi httpd.conf httpd.conf.01-fine-for-8052 # vi httpd.conf # diff -u httpd.conf.01-fine-for-8052 httpd.conf --- httpd.conf.01-fine-for-8052 Thu May 15 06:36:12 2008 +++ httpd.conf Sun Aug 17 18:32:03 2008 @@ -450,7 +450,8 @@ # negotiated documents. The MultiViews Option can be used for the # same purpose, but it is much slower. # -DirectoryIndex index.html index.html.var +# DirectoryIndex index.html index.html.var +DirectoryIndex index.html index.html.var index.cgi index.php index.xhtml # # AccessFileName: The name of the file to look for in each directory
When you upload an image, then next error recorded on Apache's logfile (/var/log/apache2/error-dekiwiki.log).
file: illegal option -- b
usage: file [-dh] [-M mfile] [-m mfile] [-f ffile] file ...
file [-dh] [-M mfile] [-m mfile] -f ffile
file -i [-h] [-f ffile] file ...
file -i [-h] -f ffile
file -c [-d] [-M mfile] [-m mfile]
o Cause
Solaris standard "file" command has no "-b" and "-i" options, which required by MindTouch.
o Workaround
Install the SWFfile package from the Companion DVD, and create symbolic-link from /usr/bin/file to /opt/sfw/bin/gfile as mentioned below.
o SFWfile file - determine file type # pkgadd -d SWFfile # mv -i /usr/bin/file /usr/bin/file.orig # ln -s /opt/sfw/bin/gfile /usr/bin/file
NOTE: You should examine carefully for unexpected side-effect, with replacing "file" command from Solaris standard to Comanions one.
When you upload an image, then next error recorded on Apache's logfile (/var/log/apache2/error-dekiwiki.log).
2008-06-16 18:52:08,614 [1] WARN DekiWikiService_default - BuildThumb failed (198,convert: Unrecognized option (-thumbnail). )
o Cause:
Solaris 10 bundled "convert" command in ImageMagick(SUNWimagick) has no "-thumbnail" option, which required by MindTouch.
o Workaround
Install latest ImageMagick from UNIX source described above.
| Images 0 | ||
|---|---|---|
| No images to display in the gallery. |
Copyright © 2011 MindTouch, Inc. Powered by