Don't define a static variable (the_tapinfo_struct) in a header file; instead declare...
[obnox/wireshark/wip.git] / INSTALL
1 $Id$
2
3 NOTE: this document applies to the Wireshark source releases and
4 buildbot source tarballs.  It does not apply to source code checked
5 out directly from Subversion, as files such as the configuration
6 script are not checked into Subversion, but need to be generated
7 from the autoconf and automake files.
8 See http://wiki.wireshark.org/Development if you would like to build
9 the source code checked out directly from Subversion.
10
11 Installation
12 ============
13
14 These are installation instructions for Unix and Unix-like systems
15 that can run the "configure" script in this same directory. These
16 are not the installation instructions for Windows systems; see
17 README.win32 for those instructions.
18
19 0. This is software.  Beware.
20
21 1. If you wish to build Wireshark, make sure you have GTK+ and GLib
22    installed. Try running 'pkg-config glib-2.0 --modversion' to see if
23    you have GLib 2.x installed and, if that fails, try running
24    'glib-config --version' to see if you have GLib 1.2[.x] installed.
25    Then try running 'pkg-config gtk+-2.0 --modversion' to see if you
26    have GTK+ 2.x installed and, if that fails, try running
27    'gtk-config --version' to see if you have GTK+ 1.2[.x] installed.
28    Wireshark needs versions 1.2.0 or above of both these packages.
29    If you need to install or re-install GTK+ or GLIB, you can find
30    the packages at:
31
32         http://www.gtk.org
33
34    If you installed GTK+ from a binary package, you may have to
35    install a "development" package; there may be separate "user's"
36    and "developer's" packages, with the former not including
37    header files and the like.  For example, Red Hat users will
38    need to install a "gtk-devel" .rpm.
39
40    Note also that Wireshark configuration defaults to using GTK+ and
41    GLib 2.x; you need to configure with --disable-gtk2 to use GTK+
42    1.2[.x].
43
44 2. If you wish to build TShark, the line-mode version of Wireshark,
45    make sure you have GLIB installed.  See note #1 above for instructions
46    on checking if you have GLIB installed. You can download GLIB from
47    the same site as GTK.
48
49 3. If you want to capture packets, make sure you have libpcap
50    installed.  The latest "official" version can be found at
51
52         http://www.tcpdump.org .
53
54    If you've downloaded the 0.5.2 version, make sure you install
55    the headers ('make install-incl') when you install the library.
56    The CVS snapshots will install the headers if you do 'make
57    install', and have no 'install-incl' target.
58
59    If you installed libpcap from a binary package, you may have to
60    install a "development" package; for example, there's
61    apparently a "libpcap0" Debian package, but it just includes a
62    shared library, a copyright notice, changelog files, and a
63    README file - you also need to install a "libpcap-dev" package
64    to get header files, a non-shared library, and the man page.
65    Similarly, Red Hat 5.x users will need to install a "libpcap-devel"
66    .rpm to go along with the "libpcap" .rpm.
67
68 4. Building Wireshark requires Perl (specifically the pod2man program)
69    so that the documentation can be built.
70
71 5. Run './configure' in the Wireshark distribution directory.
72    Running './configure --help' displays a complete list of options.
73    The file 'INSTALL.configure' contains general instructions for
74    using 'configure' and 'make'. Some of the Wireshark non-generic
75    configure options are as follows:
76
77     --sysconfdir=DIR
78         Wireshark installs a support file (manuf) in ${PREFIX}/etc by
79         default, where ${PREFIX} comes from --prefix=DIR. If you do not
80         specify any --prefix option, ${PREFIX} is "/usr/local".
81         You can change the location of the manuf file with the --sysconfdir
82         option.
83
84     --disable-usr-local
85         By default 'configure' will look in /usr/local/{include,lib} for
86         additional header files and libraries. Using this switch keeps
87         'configure' from looking there
88
89     --disable-wireshark
90         By default, if 'configure' finds the GTK+ libraries, the Makefile
91         builds Wireshark, the GUI packet analyzer. You can disable the
92         build of the GUI version of Wireshark with this switch.
93
94     --disable-gtk2
95         Build Glib/Gtk+ 1.2[.x]-based wireshark.
96
97     --disable-tshark
98         By default the line-mode packet analyzer, TShark, is built.
99         Use this switch to avoid building it.
100
101     --disable-editcap
102         By default the capture-file editing program is built.
103         Use this switch to avoid building it.
104
105      --disable-capinfos
106         By default the capture-file statistics reporting pogram
107         is built. Use this switch to avoid building it.
108
109     --disable-mergecap
110         By default the capture-file merging program is built.
111         Use this switch to avoid building it.
112
113     --disable-text2pcap
114         By default the hex-dump-to-capture file conversion program
115         is built. Use this switch to avoid building it.
116
117     --disable-idl2wrs
118         By default the IDL-to-wireshark-dissector-source-code converter
119         is built. Use this switch to avoid building it.
120
121     --disable-dftest
122         By default the display-filter-compiler test program is built.
123         Use this switch to avoid building it.
124
125     --disable-randpkt
126         By default the program which creates random packet-capture files
127         is built. Use this switch to avoid building it.
128
129     --disable-dumpcap
130         By default the network traffic capture program is built.
131         Use this switch to avoid building it.
132
133     --disable-rawshark
134         By default the program used to dump and analyze raw libpcap data
135         is built. Use this switch to avoid building it.
136
137     --disable-ipv6
138         If 'configure' finds support for IPv6 name resolution on
139         your system, the packet analyzers will make use of it.
140         To avoid using IPv6 name resolution if you have the support for it,
141         use this switch.
142
143     --enable-setuid-install
144         Wireshark and TShark rely on dumpcap for packet capture. Setting this
145         flag installs dumpcap with setuid root permissions, which lets any user
146         on the system capture live traffic. If this is not desired, you can
147         restrict dumpcap's permissions so that only a single user or group can
148         run it. This can be used in conjunction with --with-libcap described
149         below.
150
151         Running Wireshark or TShark as root is not recommended.
152
153     --without-libcap
154         By default, if 'configure' finds libcap (the POSIX capabilities
155         library) dumpcap will be built so that if it is installed setuid
156         root, it will attempt to retain CAP_NET_RAW and CAP_NET_ADMIN
157         before dropping root privileges. Use this option to disable this
158         behavior.
159
160     --with-libcap=DIR
161         Use this option to tell 'configure' where libcap is installed,
162         if it is installed in a non-standard location. Note that libcap
163         (the POSIX capabilities library, sans "p") and libpcap (the
164         packet capture library, avec "p") are two very different things.
165
166     --without-pcap
167         If you choose to build a packet analyzer that can analyze
168         capture files but cannot capture packets on its own, but you
169         *do* have libpcap installed, or if you are trying to build
170         Wireshark on a system that doesn't have libpcap installed (in
171         which case you have no choice but to build a version that can
172         analyze capture files but cannot capture packets on its own),
173         use --without-pcap to avoid using libpcap.
174
175     --with-pcap=DIR
176         Use this to tell Wireshark where you have libpcap installed, if
177         it is installed in a non-standard location.
178
179     --without-zlib
180         By default, if 'configure' finds zlib (a.k.a, libz), the
181         wiretap library will be built so that it can read compressed
182         capture files. If you have zlib but do not wish to build
183         it into the wiretap library, used by Wireshark, TShark, and
184         the capture-file utilities that come in this package, use
185         this switch.
186
187     --with-zlib=DIR
188         Use this to tell Wireshark where you have zlib installed, if it
189         is installed in a non-standard location.
190
191     --without-plugins
192         By default, if your system can support run-time loadable modules,
193         the packet analyzers are build with support for plugins.
194         Use this switch to build packet analyzers without plugin support.
195
196     --with-plugins=DIR
197         By default, plugins are installed in
198         ${LIBDIR}/wireshark/plugins/${VERSION}
199
200         ${LIBDIR} can be set with --libdir, or defaults to ${EPREFIX/lib}
201         ${EPREFIX} can be set with --exec-prefix, or defaults to ${PREFIX}
202         ${VERSION} is the Wireshark version.
203
204         Use this switch to change the location where plugins
205         are installed.
206
207 6. After running './configure', you will see a summary of some
208    of the options you chose. Ensure that the summary reflects
209    what you want. If it doesn't, re-run './configure' with new options.
210
211 7. Run 'make'.  Hopefully, you won't run into any problems.
212
213 8. Run './wireshark' or './tshark' or ./dumpcap, and make sure things are
214    working. You must have root privileges in order to capture live data.
215
216 9. Run 'make install'.  If you're running a system that supports
217    the Apt, RPM, or System V Release 4 packaging systems, you can
218    run one of
219
220         make debian-package     # Builds a binary package using dpkg
221         make rpm-package        # Builds a binary package using rpm
222         make srpm-package       # Builds a source package using rpm
223         make svr4-package       # Builds a source package using pkgmk
224         make solaris-package    # Same as "make svr4-package"
225
226    to make an installable package for your system.
227
228 If you have trouble with the build or installation process, you can
229 find assistance on the wireshark-users and wireshark-dev mailing lists.
230 See http://www.wireshark.org/lists/ for details.