README 8.35 KB
Newer Older
1
INTRODUCTION
Jamie McCracken's avatar
Jamie McCracken committed
2

3
Tracker is a powerful desktop-neutral first class object database, tag/metadata database, search tool and indexer. 
4

Jamie McCracken's avatar
Jamie McCracken committed
5
Tracker is also extremely fast and super efficient with your systems memory when compared with some other competing frameworks and is by far the fastest and most memory efficient Nautilus search and Deskbar backends currently availble.
6

Jamie McCracken's avatar
Jamie McCracken committed
7
It consists of a common object database that allows entities to have an almost infinte number of properties, metadata (both embedded/harvested as well as user definable), a comprehensive database of keywords/tags and links to other entities.
8

Jamie McCracken's avatar
Jamie McCracken committed
9
It provides additional features for file based objects including context linking and audit trails for a file object.
10

Jamie McCracken's avatar
Jamie McCracken committed
11
It has the ability to index, store, harvest metadata. retrieve and search all types of files and other first class objects.
12

Jamie McCracken's avatar
Jamie McCracken committed
13
First class object support includes : Files, Documents, Music, Images, Videos, Playlists*, Notes*, Applications*, Contacts*, Emails*, Conversations*, Appointments*, Tasks*, Bookmarks*, History* and Projects*
14

Jamie McCracken's avatar
Jamie McCracken committed
15
(* these services are not currently indexed at the moment but will be in later versions)
16 17


18 19
All discussion related to tracker happens on the tracker mailing list (http://mail.gnome.org/mailman/listinfo/tracker-list)

Jamie McCracken's avatar
Jamie McCracken committed
20 21
More infomation on Tracker can be found at http://freedesktop.org/wiki/Software/Tracker

22

Jamie McCracken's avatar
Jamie McCracken committed
23
USE CASES
Jamie McCracken's avatar
Jamie McCracken committed
24

Jamie McCracken's avatar
Jamie McCracken committed
25 26 27 28
Tracker is the most powerful open source metadata database and indexer framework currently available and because it is built around a combination indexer and sql database and not a dedicated indexer it has much more powerful use cases:

* Provide search and indexing facilities similiar to those on other systems

29
* Common database storage for all first class objects (EG a common music/photo/contacts/email/bookmarks/history database) complete with additional metadata and tags/keywords
Jamie McCracken's avatar
Jamie McCracken committed
30 31 32 33 34 35 36 37 38 39 40 41 42

* Comprehensive one stop solution for all applications needing an object database, powerful search (via RDF Query), first class methods, related metadata and user definable metadata/tags

* Can provide a full semantic desktop with metadata everywhere

* Can provide powerful criteria based searching suitable for creating smart file dialogs and vfolder systems

* Can provide a more intelligent desktop using statistical metadata



NEW CHANGES

Jamie McCracken's avatar
Jamie McCracken committed
43
* Imporved indexing speed
44

Jamie McCracken's avatar
Jamie McCracken committed
45
* Removed libextractor dependency and created a suite of metadata extractors instead
46

Jamie McCracken's avatar
Jamie McCracken committed
47
* Redesigned around Sqlite DB and QDBM inverted word index
Jamie McCracken's avatar
Jamie McCracken committed
48

Jamie McCracken's avatar
Jamie McCracken committed
49
* New Tracker search tool (GUI)
Jamie McCracken's avatar
Jamie McCracken committed
50 51 52 53 54


FEATURES

* Desktop-neutral design (its a freedesktop product built around other freedesktop technologies like DBus and XDGMime but contains no GNOME specific dependencies)
Jamie McCracken's avatar
Jamie McCracken committed
55

56 57 58 59
* Very memory efficient and non-leaking (typical RAM usage 4 - 6 MB). Unlike some other indexers, tracker is designed and built to run well on lower memory systems with typically 128MB or 256MB memory. It should even be efficient enough to use on some mobile devices.

* Non-bloated and written in C for maximum efficiency.

Jamie McCracken's avatar
Jamie McCracken committed
60
* Small size and minimal dependencies makes it easy to bundle into various distro's including live cds.
61

Jamie McCracken's avatar
Jamie McCracken committed
62
* Fast indexing and unobtrusive - no need to index stuff overnight. Tracker runs at nice+10 so it should have a minimal impact on your system. 
63

Jamie McCracken's avatar
Jamie McCracken committed
64
* Implements the freedesktop specification for metadata http://freedesktop.org/wiki/Standards/shared-filemetadata-spec
Jamie McCracken's avatar
Jamie McCracken committed
65 66 67 68 69 70 71 72 73 74 75 76 77

* Extracts embedded File, Image, Document and Audio type metadata from files.

* Supports the WC3's RDF Query syntax for querying metadata

* Provides support for both free text search (like Beagle/Google) as well as structured searches using RDF Query

* Respond in real time to file system changes to keep its metadata database up to date and in synch

* Fully extendable with custom metadata - you can store, retrieve, register and search via RDF Query all your own custom metadata

* Can extract a file's contents as plain text and index them

78 79
* Provides text filters for PDF, MS Office, OpenOffice (all versions), HTML and PS files.

Jamie McCracken's avatar
Jamie McCracken committed
80 81 82 83 84 85 86
* Can provide thumbnailing on the fly



INSTALLATION (from source):


87

Jamie McCracken's avatar
Jamie McCracken committed
88 89

Run time dependencies (also needed for build) :
Jamie McCracken's avatar
Jamie McCracken committed
90

Jamie McCracken's avatar
Jamie McCracken committed
91 92
Sqlite 3.2+

Jamie McCracken's avatar
Jamie McCracken committed
93 94 95 96 97 98 99 100
libdbus (0.50 +)

dbus-glib bndings (0.50 +)

glib (2.6+)

zlib

Jamie McCracken's avatar
Jamie McCracken committed
101
GMime
Jamie McCracken's avatar
Jamie McCracken committed
102

Jamie McCracken's avatar
Jamie McCracken committed
103 104

Additional recommended packages:
105 106 107

wv (1.0.2+)
poppler (pdftotext)
Jamie McCracken's avatar
Jamie McCracken committed
108 109
libvorbis
GTK and Gnome stack for GUI tools
Jamie McCracken's avatar
Jamie McCracken committed
110 111


112 113
COMPILATION

Jamie McCracken's avatar
Jamie McCracken committed
114 115
To compile Tracker uses the following commands :

Jamie McCracken's avatar
Jamie McCracken committed
116
./configure --prefix=/usr
Jamie McCracken's avatar
Jamie McCracken committed
117 118 119 120 121
make
sudo make install

If you install using any other prefix then you might have problems with files not being installed correctly.

122 123
(You may need to copy and amend the dbus service file to the correct directory and/or might need to update ld_conf if you install into non standard directories.)

Jamie McCracken's avatar
Jamie McCracken committed
124 125 126
Notes to build tracker on Solaris

To compile Tracker with GCC on Solaris uses the following commands :
Jamie McCracken's avatar
Jamie McCracken committed
127
./configure --prefix=/usr --with-pic CFLAGS=-D_POSIX_PTHREAD_SEMANTICS
Jamie McCracken's avatar
Jamie McCracken committed
128 129 130 131 132
make
login as root
make install

To compile Tracker with SUN Studio on Solaris uses the following commands, because there are some problems to compile exiv2 using SUN C++ compiler:
Jamie McCracken's avatar
Jamie McCracken committed
133
./configure --prefix=/usr --with-pic --disable-warnings --disable-exiv2 CFLAGS=-D_POSIX_PTHREAD_SEMANTICS
Jamie McCracken's avatar
Jamie McCracken committed
134 135 136
make
login as root
make install
137

Jamie McCracken's avatar
Jamie McCracken committed
138 139


140 141 142 143 144 145 146 147 148 149
Compile Options

Tracker has several compiler options to enable/disable certain features. The following is available (all options should be passed as command line parameters to autogen.sh EG ./autogen.sh --disable-fam)

--disable-fam : this option omits support of FAM/GAMIN with tracker

--disable-inotify : this option omits support for inotify with tracker



Jamie McCracken's avatar
Jamie McCracken committed
150 151 152
RUNNING TRACKER


153
To run tracker, you need to manually start the tracker daemon trackerd. By default trackerd will index your entire home directory.
Jamie McCracken's avatar
Jamie McCracken committed
154

155
You can also pass a directory root to be indexed as a command line parameter if you dont want your entire home directory indexed. EG
156 157 158

"trackerd /home/jamie/Documents"

Jamie McCracken's avatar
Jamie McCracken committed
159 160 161 162 163 164 165 166
You can disable indexing by passing --disable-indexing

You can enable a low memory usage mode (recommended for machines with less than 256MB of RAM) by passing --enable-low-memory

You can enable turbo indexing by passing --turbo

You can specify directory roots not to be watched or indexed by passing  --ignore-dirs=dir1 for each directory root

167 168 169 170 171 172 173 174 175
You can make sure that tracker only indexes a subset of your home directory and also specify folders not in your home directory by editing the tracker.cfg file in ~/.Tracker (which is created when you first run trackerd) and setting WatchDirectoryRoots to a semicolon delimited list of directories (full path required!) 

EG: 

WatchDirectoryRoots=directory1;directory2;directory3

On the first run, Tracker will automatically create a new database and start populating it with metadata by browsing through the user's home directory (or the root folder(s) specified).

On subsequent runs, Tracker will start up much much faster and will only ever incrementally index files (IE files that have changed since last index).
176

177
If installed correctly, the tracker daemon (trackerd) can also be started automatically via Dbus activation.
178 179 180 181 182 183 184 185 186 187


Tracker And Nautilus Search

Once you have installed Tracker and have some indexed contents, you should now compile Nautilus (ver 2.13.4 or higher) which should auto detect that tracker is installed and automatically compile in tracker support. You are now ready to appreciate a powerful and super efficient c based indexer in all its glory... happy hunting!

To make sure trackerd always start when you login to Gnome, you will need to add it to Gnome-session (select sessions from preferences menu, select startup program tab and then add /usr/bin/trackerd). For non-gnome installations, see the desktop docs for how to auto start an application for your particular desktop.

Tracker and Deskbar applet

Jamie McCracken's avatar
Jamie McCracken committed
188
Tracker is also integrated in GNOME's deskbar applet. Please see that applet for more info.
189

Jamie McCracken's avatar
Jamie McCracken committed
190 191 192 193 194 195


COMMAND LINE TOOLS

Tracker comes with a number of command line apps that you can use:

Jamie McCracken's avatar
Jamie McCracken committed
196 197
"tracker-tag" for setting and searching tags/keywords

Jamie McCracken's avatar
Jamie McCracken committed
198 199 200 201
"tracker-extract FILE" - this extracts embedded metadata from FILE and prints to stdout

"tracker-search SEARCHTERM" - this perfoms a google like search using SEARCHTERM to retrieve all matching files where SEARCHTERM appears in any searchable metadata

Jamie McCracken's avatar
Jamie McCracken committed
202
"tracker-query" - this reads an RDF Query that specifies the search criteria for various fields. It prints to STDOUT all matching files. You can see some example queries in the RDF-Query-examples folder. You can run the examples as "tracker-query < RDFFILE"
Jamie McCracken's avatar
Jamie McCracken committed
203 204