This section contains packages of interest to programmers. Red Hat Linux comes with a
very powerful and rich set of tools for the programmer, so there are several
different subsections here.
Gdb is a full featured, command driven debugger. Gdb allows you to
trace the execution of programs and examine their internal state at
any time. Gdb works for C and C++ compiled with the GNU C compiler
gcc.
If you are going to develop C and/or C++ programs and use the GNU gcc
compiler, you may want to install gdb to help you debug your
programs.
Lsof's name stands for LiSt Open Files, and it does just that. It lists
information about files that are open by the processes running on a UNIX
system.
Ltrace is a debugging program which runs a specified command until the
command exits. While the command is executing, ltrace intercepts and
records both the dynamic library calls called by the executed process and
the signals received by the executed process. Ltrace can also intercept
and print system calls executed by the process.
You should install ltrace if you need a sysadmin tool for tracking the
execution of processes.
The strace program intercepts and records the system calls called and
received by a running process. Strace can print a record of each
system call, its arguments and its return value. Strace is useful for
diagnosing problems and debugging, as well as for instructional
purposes.
Install strace if you need a tool to track the system calls made and
received by a process.
Sysreport is a utility for gathering information about your systems hardware
and configuration for diagnostic and debugging. It's purpose is to aid Support
Technicians and Developers by getting a "snapshot" of your current systems
layout.
Xxgdb is an X Window System graphical interface to the GNU gdb debugger.
Xxgdb provides visual feedback and supports a mouse interface for the
user who wants to perform debugging tasks like the following: controlling
program execution through breakpoints, examining and traversing the
function call stack, displaying values of variables and data structures,
and browsing source files and functions.
Install the xxgdb package if you'd like to use a graphical interface with
the GNU gdb debugger. You'll also need to have the gdb package installed.
This package includes a compiler that can be used to generated binaries that
will run on older Red Hat Linux systems (namely Red Hat Linux 5.2, or glibc
2.0.X based systems). This package includes the C compiler and required
compiler libraries for those systems.
This package includes a compiler that can be used to generated binaries that
will run on older Red Hat Linux systems (namely Red Hat Linux 5.2, or glibc
2.0.X based systems). This packge includes the C++ compiler and libraries
for those older systems.
This package includes a compiler that can be used to generated binaries that
will run on older Red Hat Linux systems (namely Red Hat Linux 5.2, or glibc
2.0.X based systems). This packge includes the Fortran 77 compiler and
libraries for those older systems.
This package includes a compiler that can be used to generated binaries that
will run on older Red Hat Linux systems (namely Red Hat Linux 5.2, or glibc
2.0.X based systems). This packge includes the Objective C compiler and
libraries for those older systems.
Cpp (or cccp) is the GNU C-Compatible Compiler Preprocessor.
Cpp is a macro processor which is used automatically
by the C compiler to transform your program before actual
compilation. It is called a macro processor because it allows
you to define macros, abbreviations for longer
constructs.
The C preprocessor provides four separate functionalities: the
inclusion of header files (files of declarations that can be
substituted into your program); macro expansion (you can define macros,
and the C preprocessor will replace the macros with their definitions
throughout the program); conditional compilation (using special
preprocessing directives, you can include or exclude parts of the
program according to various conditions); and line control (if you use
a program to combine or rearrange source files into an intermediate
file which is then compiled, you can use line control to inform the
compiler about where each source line originated).
You should install this package if you are a C programmer and you use
macros.
This package adds C++ support to the GNU C compiler. It includes
support for most of the current C++ specification, including templates
and exception handling. It does include the static standard C++
library and C++ header files; the library for dynamically linking
programs is available separately.
The egcs-g77 package provides support for compiling Fortran 77
programs with the GNU gcc compiler.
You should install egcs-g77 if you are going to do Fortran development
and you would like to use the gcc compiler. You will also need gcc,
which is included in the egcs package.
Egcs-objc provides Objective C support for the GNU C compiler (gcc).
Mainly used on systems running NeXTSTEP, Objective C is an
object-oriented derivative of the C language.
Install egcs-objc if you are going to do Objective C development and
you would like to use the gcc compiler. You'll also need gcc, which
is included in the egcs package.
Expect is a tcl extension for automating interactive applications such
as telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect is also useful
for testing the named applications. Expect makes it easy for a script
to control another program and interact with it.
Install the expect package if you'd like to develop scripts which interact
with interactive applications. You'll also need to install the tcl
package.
GUILE (GNU's Ubiquitous Intelligent Language for Extension) is a library
implementation of the Scheme programming language, written in C. GUILE
provides a machine-independent execution platform that can be linked in
as a library during the building of extensible programs.
Install the guile package if you'd like to add extensibility to programs
that you are developing.
[incr Tcl] is an object-oriented extension of the Tcl language. It
was created to support more structured programming in Tcl. Tcl scripts
that grow beyond a few thousand lines become extremely difficult to
maintain. This is because the building blocks of vanilla Tcl are
procedures and global variables, and all of these building blocks
must reside in a single global namespace. There is no support for
protection or encapsulation.
[incr Tcl] introduces the notion of objects. Each object is a bag
of data with a set of procedures or "methods" that are used to
manipulate it. Objects are organized into "classes" with identical
characteristics, and classes can inherit functionality from one
another. This object-oriented paradigm adds another level of
organization on top of the basic variable/procedure elements, and
the resulting code is easier to understand and maintain.
The IBM Research Jikes compiler translates Java source files to bytecode.
Features include strict adherence to the language specification,
extremely fast compile speed, and a sophisticated dependence analysis
that allows incremental compilation and automatic makefile generation.
The release of the source in December 1998 initiated one of IBM's
first efforts in the open source arena, and since that time Jikes
has been maintained and refined using the open source development
model. See http://ibm.com/research/jikes for further information.
Kaffe is a free virtual machine designed to execute Java(TM) bytecode.
Kaffe can be configured in two modes. In the first mode, it operates as
a pure bytecode interpreter (not unlike Javasoft's machine). In the
second mode, it performs "just-in-time" code conversion from the abstract
code to the host machine's native code. The second mode will ultimately
allow execution of Java code at the same speed as standard compiled code,
while also maintaining the advantages and flexibility of code independence.
Install the kaffe package if you need a Java virtual machine.
P2c is a system for translating Pascal programs into the C language.
P2c accepts input source files in certain Pascal dialects: HP
Pascal, Turbo/UCSD Pascal, DEC VAX Pascal, Oregon Software Pascal/2,
Macintosh Programmer's Workshop Pascal and Sun/Berkeley Pascal. P2c
outputs a set of .c and .h files which make up a C program equivalent
to the original Pascal program. The C program can then be compiled
using a standard C compiler, such as gcc.
Install the p2c package if you need a program for translating Pascal
code into C code.
Perl is a high-level programming language with roots in C, sed, awk
and shell scripting. Perl is good at handling processes and files,
and is especially good at handling text. Perl's hallmarks are
practicality and efficiency. While it is used to do a lot of
different things, Perl's most common applications (and what it excels
at) are probably system administration utilities and web programming.
A large proportion of the CGI scripts on the web are written in Perl.
You need the perl package installed on your system so that your
system can handle Perl scripts.
PyGNOME is an extension module for python that gives you access to the
base GNOME libraries. This means you have access to more widgets, simple
configuration interface, metadata support and many other features.
Install pygnome if you need Python bindings for the GNOME libraries.
PyGTK is an extension module for Python that gives you access to the
GTK+ widget set. Just about anything you can write in C with GTK+ you
can write in Python with PyGTK (within reason), but with all of
Python's benefits. PyGTK provides an object-oriented interface at a
slightly higher level than the C interface. The PyGTK interface does
all of the type casting and reference counting that you'd have to do
yourself using the C API.
Install pygtk if you need Python bindings for the GTK+ widget set.
This module contains a wrapper for the libglade library. Libglade is a
library similar to the pyglade module, except that it is written in C (so
is faster) and is more complete.
Python is an interpreted, interactive, object-oriented programming
language often compared to Tcl, Perl, Scheme or Java. Python includes
modules, classes, exceptions, very high level dynamic data types and
dynamic typing. Python supports interfaces to many system calls and
libraries, as well as to various windowing systems (X11, Motif, Tk,
Mac and MFC).
Programmers can write new built-in modules for Python in C or C++.
Python can be used as an extension language for applications that
need a programmable interface. This package contains most of the
standard Python modules, as well as modules for interfacing to the
Tix widget set for Tk and RPM.
Note that documentation for Python is provided in the python-docs
package.
Tcl is a simple scripting language designed to be embedded into
other applications. Tcl is designed to be used with Tk, a widget
set, which is provided in the tk package. This package also includes
tclsh, a simple example of a Tcl application.
If you're installing the tcl package and you want to use Tcl for
development, you should also install the tk and tclx packages.
TclX is a set of extensions which make it easier to use the Tcl
scripting language for common UNIX/Linux programming tasks. TclX
enhances Tcl support for files, network access, debugging, math, lists,
and message catalogs. TclX can be used with both Tcl and Tcl/Tk
applications.
Install TclX if you are developing applications with Tcl/Tk. You'll
also need to install the tcl and tk packages.
Tix (Tk Interface Extension), an add-on for the Tk widget set, is an
extensive set of over 40 widgets. In general, Tix widgets are more
complex and more capable than the widgets provided in Tk. Tix widgets
include a ComboBox, a Motif-style FileSelectBox, an MS Windows-style
FileSelectBox, a PanedWindow, a NoteBook, a hierarchical list, a
directory tree and a file manager.
Install the tix package if you want to try out more complicated widgets
for Tk. You'll also need to have the tcl and tk packages installed.
Tk is a X Windows widget set designed to work closely with the tcl
scripting language. It allows you to write simple programs with full
featured GUI's in only a little more time then it takes to write a
text based interface. Tcl/Tk applications can also be run on Windows
and Macintosh platforms.
UMB Scheme is a public domain implementation of the Scheme programming
language. Scheme is a statically scoped and properly tail-recursive
dialect of the Lisp programming language, designed with clear and
simple semantics and a minimal number of ways to form expressions.
Install the umb-scheme package if you need an implementation of the
Scheme programming language.
This section contains packages of the various libraries. Some libraries
are required for normal system operation, while others are only needed if
you will be using their features in a program you're writing.
Image-Magick-devel contains the static libraries and header files you'll
need to develop ImageMagick applications. ImageMagick is an image
manipulation program.
If you want to create applications that will use ImageMagick code
or APIs, you'll need to install ImageMagick-devel as well as ImageMagick.
You don't need to install it if you just want to use ImageMagick,
however.
This package contains the header files, libraries and utilities
necessary to write programs that use CORBA technology. If you want to
write such programs, you'll also need to install the ORBit package.
XFree86-devel includes the libraries, header files and documentation
you'll need to develop programs which run as X clients. XFree86-devel
includes the base Xlib library as well as the Xt and Xaw widget sets.
Install XFree86-devel if you are going to develop programs which
will run as X clients.
Xaw3d is an enhanced version of the MIT Athena widget set for
the X Window System. Xaw3d adds a three-dimensional look to those
applications with minimal or no source code changes. Xaw3d-devel includes
the header files and static libraries for developing programs that take
full advantage of Xaw3d's features.
You should install Xaw3d-devel if you are going to develop applications
using the Xaw3d widget set. You'll also need to install the Xaw3d
package.
The apache-devel package contains the source code for the Apache
Web server and the APXS binary you'll need to build Dynamic
Shared Objects (DSOs) for Apache.
If you are installing the Apache Web server, and you want to be
able to compile or develop additional modules for Apache, you'll
need to install this package.
The cdrecord distribution contains a SCSI user level transport
library. The SCSI library is suitable to talk to any SCSI device
without having a special driver for it.
Cdrecord may be easily ported to any system that has a SCSI device
driver similar to the scg driver.
This package includes a number of run-time libraries that are compiled on
Red Hat Linux 5.2. This package is required if you want to do development
for Red Hat Linux 5.2 and other glibc 2.0 based systems.
This package contains the version 2.0.7 of the GNU C library for compiling
binaries that will run on Red Hat Linux 2.0 and other glibc 2.0.x Linux
based systems. This package includes the runtime libraries.
The control-center-devel package contains the development environment
needed for creating the `capplets' used in the GNOME Control
Center.
If you're interested in developing capplets for the GNOME
control center, you'll want to install this package. If you use the
GNOME desktop, but not developing applications, you don't need to
install this package.
E2fsprogs-devel contains the libraries and header files needed to
develop second extended (ext2) filesystem-specific programs.
You should install e2fsprogs-devel if you want to develop ext2
filesystem-specific programs. If you install e2fsprogs-devel, you'll
also want to install e2fsprogs.
This package is only needed if you intend to develop or
compile applications which rely on the FreeType library.
If you simply want to run existing applications, you won't
need this package.
Gdbm-devel contains the development libraries and header files
for gdbm, the GNU database system. These libraries and header files are
necessary if you plan to do development using the gdbm database.
Install gdbm-devel if you are developing C programs which will use the
gdbm database library. You'll also need to install the gdbm package.
Static libraries and header files for the support library for the GIMP's X
libraries, which are available as public libraries. GLIB includes generally
useful data structures.
The glibc-devel package contains the header and object files necessary
for developing programs which use the standard C libraries (which are
used by nearly all programs). If you are developing programs which
will use the standard C libraries, your system needs to have these
standard header and object files available in order to create the
executables.
Install glibc-devel if you are going to develop programs which will
use the standard C libraries.
The glibc-profile package includes the GNU libc libraries and support
for profiling using the gprof program. Profiling is analyzing a
program's functions to see how much CPU time they use and determining
which functions are calling other functions during execution. To use
gprof to profile a program, your program needs to use the GNU libc
libraries included in glibc-profile (instead of the standard GNU libc
libraries included in the glibc package).
If you are going to use the gprof program to profile a program, you'll
need to install the glibc-profile program.
The static libraries, header files and documentation for using the GNU
MP arbitrary precision library in applications.
If you want to develop applications which will use the GNU MP library,
you'll need to install the gmp-devel package. You'll also need to
install the gmp package.
GNOME (GNU Network Object Model Environment) is a user-friendly set of
GUI applications and desktop tools to be used in conjunction with a
window manager for the X Window System. The gnome-libs-devel package
includes the libraries and include files that you will need to develop
GNOME applications.
You should install the gnome-libs-devel package if you would like to
develop GNOME applications. You don't need to install gnome-libs-devel
if you just want to use the GNOME desktop environment.
The gpm-devel program contains the libraries and header files needed
for development of mouse driven programs. This package allows you to
develop text-mode programs which use the mouse.
Install gpm-devel if you need to develop text-mode programs which will
use the mouse. You'll also need to install the gpm package.
The gtk+-devel package contains the static libraries and header files
needed for developing GTK+ (GIMP ToolKit) applications. The
gtk+-devel package contains glib (a collection of routines for
simplifying the development of GTK+ applications), GDK (the General
Drawing Kit, which simplifies the interface for writing GTK+ widgets
and using GTK+ widgets in applications), and GTK+ (the widget set).
Install gtk+-devel if you need to develop GTK+ applications. You'll
also need to install the gtk+ package.
The guile-devel package includes the libraries, header files, etc.,
that you'll need to develop applications that are linked with the
GUILE extensibility library.
You need to install the guile-devel package if you want to develop
applications that will be linked to GUILE. You'll also need to
install the guile package.
The header files, static libraries and documentation needed for
developing Imlib applications. Imlib is an image loading and rendering
library for X11R6.
Install the imlib-devel package if you want to develop Imlib applications.
You'll also need to install the imlib and imlib_cfgeditor packages.
The inn-devel package contains the INN (InterNetNews) library, which
several programs that interface with INN need in order to work (for
example, newsgate and tin).
If you are installing a program which must interface with the INN news
system, you should install inn-devel.
This package includes the header files you will need to compile
applications for KDE. Also included is the KDE API documentation in HTML
format for easy browsing.
The libgr-devel package contains the header files and static libraries,
etc., for developing programs which can handle the various graphics file
formats supported by the libgr library.
Install libgr-devel if you want to develop programs for handling the
graphics file formats supported by the libgr library. You'll also need
to have the libgr package installed.
The libjpeg-devel package includes the header files and static libraries
necessary for developing programs which will manipulate JPEG files using
the libjpeg library.
If you are going to develop programs which will manipulate JPEG images,
you should install libjpeg-devel. You'll also need to have the libjpeg
package installed.
Libpcap provides a portable framework for low-level network monitoring.
Libpcap can provide network statistics collection, security monitoring
and network debugging. Since almost every system vendor provides a
different interface for packet capture, the libpcap authors created this
system-independent API to ease in porting and to alleviate the need for
several system-dependent packet capture modules in each application.
Install libpcap if you need to do low-level network traffic monitoring on
your network.
The libpng-devel package contains the header files and static libraries
necessary for developing programs using the PNG (Portable Network
Graphics) library.
If you want to develop programs which will manipulate PNG image format
files, you should install libpng-devel. You'll also need to install the
libpng package.
This package includes the libraries and header files necessary for
developing programs which will access the termcap database.
If you need to develop programs which will access the termcap database,
you'll need to install this package. You'll also need to install the
libtermcap package.
This package contains the header files and static libraries for developing
programs which will manipulate TIFF format image files using the libtiff
library.
If you need to develop programs which will manipulate TIFF format image
files, you should install this package. You'll also need to install the
libtiff package.
This package contains the static libraries, header files and documentation
necessary for development of programs that will use the libungif library
to load and save GIF format image files.
You should install this package if you need to develop programs which
will use the libungif library functions for loading and saving GIF format
image files. You'll also need to install the libungif package.
Linuxconf is an extremely capable system configuration tool.
It provides a variety of interfaces through which you can configure
your Linux system and manage a large proportion of the system's
operations.
This package provides the components necessary for developing
Linuxconf modules outside of the linuxconf source tree and/or
developing stand-alone utilities using the linuxconf interface
toolkit.
Install linuxconf-devel if you want to develop Linuxconf modules.
You must also have linuxconf installed.
The newt-devel package contains the header files and libraries
necessary for developing applications which use newt. Newt is a
development library for text mode user interfaces. Newt is based on
the slang library.
Install newt-devel if you want to develop applications which will use
newt.
This package includes the development libraries and header files
needed for compiling applications that use LDAP internals. Install
this package only if you plan to develop or will need to compile
customized LDAP clients.
This package contains the development headers that are used
to build the pilot-link package. It also includes the static
libraries necessary to build static pilot apps.
The Python programming language's interpreter can be extended with
dynamically loaded extensions and can be embedded in other programs.
This package contains the header files and libraries needed to do
these types of tasks.
Install python-devel if you want to develop Python extensions. The
python package will also need to be installed. You'll probably also
want to install the python-docs package, which contains Python
documentation.
Contains the files necessary to develop applications using Qt: header
files, the Qt meta object compiler, man pages, HTML documentation and
example programs. See http://www.troll.no for more information about
Qt, or file:/usr/doc/qt-devel-2.0.1/index.html for Qt documentation in
HTML.
Contains the files necessary to compile applications using Qt 1.x. This
library is compiled for backwards compatibility with legacy applications
only; new applications should be compiled against Qt version 2 or later.
The readline library will read a line from the terminal and return it.
Use of the readline library allows programmers to provide an easy
to use and more intuitive interface for users.
If you want to develop programs which will use the readline library,
you'll need to have the readline-devel package installed. You'll also
need to have the readline package installed.
This package contains the RPM C library and header files. These
development files will simplify the process of writing programs which
manipulate RPM packages and databases. These file are intended to
simplify the process of creating graphical package managers or any
other tools that need an intimate knowledge of RPM packages in order
to function.
This package should be installed if you want to develop programs that
will manipulate RPM packages and databases.
This package contains the S-Lang extension language static libraries
and header files which you'll need if you want to develop S-Lang based
applications. Documentation which may help you write S-Lang based
applications is also included.
Install the slang-devel package if you want to develop applications
based on the S-Lang extension language.
The ucd-snmp-devel package contains the development libraries and
header files for use with the UCD-SNMP project's network management
tools.
Install the ucd-snmp-devel package if you would like to develop
applications for use with the UCD-SNMP project's network management
tools. You'll also need to have the ucd-snmp and ucd-snmp-utils
packages installed.
The xpm-devel package contains the development libraries and header
files necessary for developing applications which will use the XPM
library. The XPM library is used by many programs for displaying
pixmaps in the X Window System.
Install the xpm-devel package if you want to develop applications using
the XPM pixmap library. You'll also need to install the xpm package.
Kernel-headers includes the C header files for the Linux kernel. The
header files define structures and constants that are needed for
building most standard programs and are also needed for rebuilding the
kernel.
The kernel-source package contains the source code files for the Linux
kernel. These source files are needed to build most C programs, since
they depend on the constants defined in the source code. The source
files can also be used to build a custom kernel that is better tuned
to your particular hardware, if you are so inclined (and you know what
you're doing).
If you know what malloc() violations are, you'll be interested in
ElectricFence. ElectricFence is a tool which can be used for
C programming and debugging. It uses the virtual memory
hardware of your system to detect when software overruns
malloc() buffer boundaries, and/or to detect any accesses of
memory released by free(). ElectricFence will then stop
the program on the first instruction that caused a bounds
violation and you can use your favorite debugger to
display the offending statement.
This package will install ElectricFence, which you can
use if you're searching for a debugger to find
malloc() violations.
GNU's Autoconf is a tool for configuring source code and Makefiles.
Using Autoconf, programmers can create portable and configurable
packages, since the person building the package is allowed to
specify various configuration options.
You should install Autoconf if you are developing software and you'd
like to use it to create shell scripts which will configure your
source code packages. If you are installing Autoconf, you will also
need to install the GNU m4 package.
Note that the Autoconf package is not required for the end user who
may be configuring software with an Autoconf-generated script;
Autoconf is only required for the generation of the scripts, not
their use.
Automake is an experimental Makefile generator. Automake was inspired
by the 4.4BSD make and include files, but aims to be portable and to
conform to the GNU standards for Makefile variables and targets.
You should install Automake if you are developing software and would
like to use its capabilities of automatically generating GNU
standard Makefiles. if you install Automake, you will also need to
install GNU's Autoconf package.
The bin86 package provides an assembler and linker for real mode 80x86
instructions. You'll need to have this package installed in order to
build programs that run in real mode, including LILO and the kernel's
bootstrapping code, from their sources.
You should install bin86 if you intend to build programs that run in real
mode from their source code.
Binutils is a collection of binary utilities, including ar (for creating,
modifying and extracting from archives), nm (for listing symbols from
object files), objcopy (for copying and translating object files),
objdump (for displaying information from object files), ranlib (for
generating an index for the contents of an archive), size (for listing
the section sizes of an object or archive file), strings (for listing
printable strings from files), strip (for discarding symbols), c++filt
(a filter for demangling encoded C++ symbols), addr2line (for converting
addresses to file and line), and nlmconv (for converting object code into
an NLM).
Install binutils if you need to perform any of these types of actions on
binary files. Most programmers will want to install binutils.
Bison is a general purpose parser generator which converts a grammar
description for an LALR context-free grammar into a C program to parse
that grammar. Bison can be used to develop a wide range of language
parsers, from ones used in simple desk calculators to complex programming
languages. Bison is upwardly compatible with Yacc, so any correctly
written Yacc grammar should work with Bison without any changes. If
you know Yacc, you shouldn't have any trouble using Bison (but you do need
to be very proficient in C programming to be able to use Bison). Many
programs use Bison as part of their build process. Bison is only needed
on systems that are used for development.
If your system will be used for C development, you should install Bison
since it is used to build many C programs.
BLT is an extension to the Tk toolkit. BLT's most useful feature is the
provision of more widgets for Tk, but it also provides more geometry
managers and miscellaneous other commands. Note that you won't need to
do any patching of the Tcl or Tk source files to use BLT, but you
will need to have Tcl/Tk installed in order to use BLT.
If you are programming with the Tk toolkit, you should install BLT.
You will need to have Tcl/Tk installed.
This package includes the binutils required by the Red HAt Linux 5.2
backwards compatibility kit. Binutils is a collection of binary utilities,
including ar (for creating, modifying and extracting from archives), nm (for
listing symbols from object files), objcopy (for copying and translating
object files), objdump (for displaying information from object files),
ranlib (for generating an index for the contents of an archive), size (for
listing the section sizes of an object or archive file), strings (for
listing printable strings from files), strip (for discarding symbols),
c++filt (a filter for demangling encoded C++ symbols), addr2line (for
converting addresses to file and line), and nbnconv (for converting object
code into an NLM).
Install this package if you will be developing programs that need to run on
Red Hat Linux 5.2 or other glibc 2.0.x based systems.
Cproto generates function prototypes and variable declarations from
C source code. Cproto can also convert function definitions between the
old style and the ANSI C style. This conversion will overwrite the
original files, however, so be sure to make a backup copy of your original
files in case something goes wrong. Since cproto uses a Yacc generated
parser, it shouldn't be confused by complex function definitions as much
as other prototype generators) because it uses a Yacc generated parser.
Cproto will be useful for C programmers, so install cproto if you are going
to do any C programming.
Ctags generates an index (or tag) file of C language objects found in
C source and header files. The index makes it easy for text editors or
other utilities to locate the indexed items. Ctags can also generate a
cross reference file which lists information about the various objects
found in a set of C language files in human readable form. Exuberant
Ctags improves on ctags because it can find all types of C language tags,
including macro definitions, enumerated values (values inside enum{...}),
function and method definitions, enum/struct/union tags, external
function prototypes, typedef names and variable declarations. Exuberant
Ctags is far less likely to be fooled by code containing #if preprocessor
conditional constructs than ctags. Exuberant ctags supports output of
emacs style TAGS files and can be used to print out a list of selected
objects found in source files.
Install ctags if you are going to use your system for C programming.
CVS means Concurrent Version System; it is a version control
system which can record the history of your files (usually,
but not always, source code). CVS only stores the differences
between versions, instead of every version of every file
you've ever created. CVS also keeps a log of who, when and
why changes occurred, among other aspects.
CVS is very helpful for managing releases and controlling
the concurrent editing of source files among multiple
authors. Instead of providing version control for a
collection of files in a single directory, CVS provides
version control for a hierarchical collection of
directories consisting of revision controlled files.
These directories and files can then be combined together
to form a software release.
Install the cvs package if you need to use a version
control system.
The diff command compares files line by line. Diffstat reads the
output of the diff command and displays a histogram of the insertions,
deletions and modifications in each file. Diffstat is commonly used
to provide a summary of the changes in large, complex patch files.
Install diffstat if you need a program which provides a summary of the
diff command's output. You'll need to also install diffutils.
The flex program generates scanners. Scanners are programs which can
recognize lexical patterns in text. Flex takes pairs of regular
expressions and C code as input and generates a C source file as
output. The output file is compiled and linked with a library to
produce an executable. The executable searches through its input for
occurrences of the regular expressions. When a match is found, it
executes the corresponding C code. Flex was designed to work with
both Yacc and Bison, and is used by many programs as part of their
build process.
You should install flex if you are going to use your system for
application development.
The GNU gettext package provides a set of tools and documentation for
producing multi-lingual messages in programs. Tools include a set of
conventions about how programs should be written to support message
catalogs, a directory and file naming organization for the message
catalogs, a runtime library which supports the retrieval of translated
messages, and stand-alone programs for handling the translatable and
the already translated strings. Gettext provides an easy to use
library and tools for creating, using, and modifying natural language
catalogs and is a powerful and simple method for internationalizing
programs.
If you would like to internationalize or incorporate multi-lingual
messages into programs that you're developing, you should install
gettext.
GLADE is a free user interface builder for GTK+ and GNOME, released
under the GNU General Public License (GPL). GLADE can produce C source
code; C++, Ada95, Python and Perl support is also available, via
external tools which process the XML interface description files
output by GLADE. GLADE supports most GTK+ 1.2 widgets. Support for
styles, however, is not complete.
Install glade if you need an interface builder for GTK+ and GNOME.
Gperf is a perfect hash function generator written in C++. Simply
stated, a perfect hash function is a hash function and a data structure
that allows recognition of a key word in a set of words using exactly
one probe into the data structure.
Install gperf if you need a program that generates perfect hash functions.
The libtool package contains the GNU libtool, a set of shell scripts
which automatically configure UNIX and UNIX-like architectures to
generically build shared libraries. Libtool provides a consistent,
portable interface which simplifies the process of using shared
libraries.
If you are developing programs which will use shared libraries, you
should install libtool.
A GNU tool for controlling the generation of executables and other
non-source files of a program from the program's source files. Make
allows users to build and install packages without any significant
knowledge about the details of the build process. The details about how
the program should be built are provided for make in the program's
makefile.
The GNU make tool should be installed on your system because it is
commonly used to simplify the process of installing programs.
The patch program applies diff files to originals. The diff command
is used to compare an original to a changed file. Diff lists the
changes made to the file. A person who has the original file can then
use the patch command with the diff file to add the changes to their
original file (patching the file).
Patch should be installed because it is a common way of upgrading
applications.
Make is a GNU tool which allows users to build and install programs
without any significant knowledge of the build process. Details
about how the program should be built are included in the program's
Makefile. Pmake is a particular version (BSD 4.4) of make. Pmake
supports some additional syntax which is not in the standard make
program. Some Berkeley programs have Makefiles written for pmake.
Pmake should be installed on your system so that you will be able to
build programs which require using pmake instead of make.
Customs is a remote execution facility for PMake. Customs is designed to
run on a network of machines with a consistent, shared filesystem. Customs
requires Sun RPC in order to use XDR (eXternal Data Representation) routines
for logging functions.
A single server is designated as the master agent and is additionally
responsible for noting when a machine goes down, from which machines
any given machine will accept jobs and parcelling out available
machines to requesting clients. The job of master is not given to any
one machine but, rather, is decided among the active agents whenever
the previous master dies.
Clients are provided to:
- alter the availability criteria for the local machine (importquota)
- find the status of all registered hosts on the net (reginfo).
- abort, restart or ping any customs agent on the network (cctrl).
- export a command from the shell (export).
- accept log information from all hosts on the net (logd).
The Revision Control System (RCS) is a system for managing multiple
versions of files. RCS automates the storage, retrieval, logging,
identification and merging of file revisions. RCS is useful for text
files that are revised frequently (for example, programs,
documentation, graphics, papers and form letters).
The rcs package should be installed if you need a system for managing
different versions of files.