# See the overview page, the "The following formats are supported" section,
# for other things you might need to install to get all of the file formats
# that you need supported to work
# Get the source
cd
test -f installed/xapian-omega-1.4.23.tar.xz &&
mv -f installed/xapian-omega-1.4.23.tar.xz .
test ! -f xapian-omega-1.4.23.tar.xz &&
wget https://oligarchy.co.uk/xapian/1.4.23/xapian-omega-1.4.23.tar.xz
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "xapian-omega-*" -exec rm -r {} \;
tar xJvf ~/xapian-omega-1.4.23.tar.xz
cd xapian-omega-1.4.23
test $UID = 0 && chown -R root:root .
# xapian-config is probably in /usr/bin, but if it is not in your path
# you can add "XAPIAN_CONFIG=/path/to/xapian-config" to your configure
# command
# I go with prefix /usr here also because we match the prefix of Slackware's
# xapian-core package
# Configure the build for 64-bit:
test $(uname -m) = 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/xapian-omega-1.4.23 \
--libdir=/usr/lib64 --mandir=/usr/man --sysconfdir=/etc
# Configure the build for anything else:
test $(uname -m) != 'x86_64' &&
./configure --prefix=/usr --docdir=/usr/doc/xapian-omega-1.4.23 \
--mandir=/usr/man --sysconfdir=/etc
# Build it
make
# Check the build
make check
# Become root to install it
su
# Install it
make install
# Edit /etc/omega.conf if needed
# Create paths based on examples, or whatever you changed in omega.conf
mkdir -p /var/lib/omega/cdb /var/lib/omega/data/default /var/log/omega
cp -a templates /var/lib/omega/
chown -R root:daemon /var/lib/omega
find /var/lib/omega/ -exec chmod +s {} \;
chmod -R o-rwx /var/lib/omega/
cp -a /usr/lib*/xapian-omega/bin/omega /usr/local/apache2/cgi-bin/
## For omindex usage, see 'man omindex' or 'omindex --help' or the
## Omega overview page refererenced above
## If you only have one site, not several virtual ones,
## /var/lib/omega/data is the default and should work
# omindex --db /var/lib/omega/data/example.com \
# --url http://example.com/ /usr/local/apache2/htdocs/example.com
## Run a test search from the command line which will output HTML:
# /usr/lib*/xapian-omega/bin/omega 'P=my search terms' HITSPERPAGE=10
# If you already set up everything so the 'omega' we copied in to the
# cgi-bin directory, and have reviewed/updated Apache's ScriptAlias and
# such, then you may now be able to go to http://example.com/cgi-bin/omega
# and you can add ?DB=example.com or whatever yours is named to specify a
# certain one
#
# You may want to restrict access to it via Apache's AllowOverride,
# .htaccess file in .cgi-bin (or <Directory>) until you've got everything
# set as you want it. You may need to add some <metagt; tags so pages
# that you do not want indexed will not appear in the results...
# Or you can run omindex with the -p option specifying different parts of
# the web site that you do want included
# Become your non-root user again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/xapian-omega-*.tar.*
mv -f xapian-omega-1.4.23.tar.xz installed/
# If you ever want to uninstall Omega, this should do it:
# ('make uninstall' as root should be enough, the rest is just in case)
cd
su
test -d src/xapian-omega-* && ( cd src/xapian-omega-* ; make uninstall )
rm -f /etc/omega.conf
( cd /usr/bin
rm -f dbi2omega htdig2omega mbox2omega omindex omindex-list scriptindex )
test -d /usr/doc/xapian-omega-1.4.23 && rm -r /usr/doc/xapian-omega-1.4.23
( cd /usr/lib64/xapian-omega/bin
rm -f mhtml2html omega outlookmsg2html rfc822tohtml vcard2text )
find /usr/lib64/xapian-omega/bin -type d -empty -exec rmdir {} \;
find /usr/lib64/xapian-omega -type d -empty -exec rmdir {} \;
( cd /usr/man/man1
rm -f omindex.1 omindex-list.1 scriptindex.1 )
( cd /usr/share/omega
rm -f htdig2omega.script mbox2omega.script )
find /usr/share/mega -type d -empty -exec rmdir {} \;
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "xapian-omega-*" -exec rm -r {} \;
rm -f ~/installed/xapian-omega-*.tar.*