revdep-rebuild

NAME

revdep-rebuild - Gentoo: Reverse Dependency Rebuilder

SYNOPSIS

revdep-rebuild [OPTIONS] [--] [EMERGE OPTIONS]

DESCRIPTION

revdep-rebuild scans libraries and binaries for missing shared library dependencies and attempts to fix them by re-emerging those broken binaries and shared libraries. It is useful when an upgraded package breaks other software packages that are dependent upon the upgraded package.

OPTIONS

-C | --nocolor

Turn off colored output. (This option is also passed to portage.)

-d | --debug

Print way too much information (uses bash's set -xv)

-e | --exact

Emerge the most recent version of found packages, without regard to SLOT.

-h | --help

Print usage.

-i | --ignore

Delete temporary files from previous runs.

-k | --keep-temp

Force revdep-rebuild not to delete temporary files after it successfully rebuilds packages. This option will NOT prevent revdep-rebuild from deleting inconsistent or out-of-date temporary files.

--library NAME | -L NAME

Search for reverse dependencies for a particular library or group of libraries, rather than every library on the system. Emerge packages that use the named library. NAME can be a full path to a library or basic regular expression. (See regex(7).)

-l | --no-ld-path

Do not set LD_LIBRARY_PATH. Note: Using this option will cause revdep-rebuild to report some false positives.

-o | --no-order

Do not check the build order against the deep dependency list. This will make revdep-rebuild faster, but it can cause emerge failures. Please try revdep-rebuild without -o before reporting any bugs.

-p | --pretend

Do a dry-run. Do not delete temporary files. (-k -p is redundant, but harmless.) --pretend is assumed when not running revdep-rebuild as root.

-P | --no-progress

Turn off the progress meter

-q | --quiet

Print less output and disable the progress meter. (This option is also passed to portage.)

-v | --verbose

More output. (Prints the revdep-rebuild search environment.)

Options after -- are ignored by revdep-rebuild and passed directly to emerge.

CONFIGURATION

revdep-rebuild no longer uses hardcoded paths. To change the default behavior the following variables can be changed by the user.

LD_LIBRARY_MASK - Mask of specially evaluated libraries SEARCH_DIRS - List of directories to search for executables and libraries SEARCH_DIRS_MASK - List of directories to not search

You can prepend to these variables by setting the variable in your environment prior to execution, by placing an entry in /etc/make.conf, or by placing a file in /etc/revdep-rebuild containing the appropriate variables.

The variables are read and set in the following order:

environment settings - one time changes by user
/etc/make.conf - persistent changes by user
/etc/revdep-rebuild/* - persistent changes by ebuild authors

While a user can edit and modify the files in the /etc/revdep-rebuild directory, please be aware that the /etc/revdep-rebuild directory is not under configuration protection and files can be removed and/or overwritten by an ebuild. To change this add /etc/revdep-rebuild to the CONFIG_PROTECT variable in /etc/make.conf.

An entry of "-*" means to clear the variable from that point forward. Example: SEARCH_DIRS="/usr/bin -*" will set SEARCH_DIRS to contain only /usr/bin

revdep-rebuild honors the NOCOLOR and PORTAGE_NICENESS variables from /etc/make.conf

EXAMPLES

It is recommended that when running revdep-rebuild that the following command be used initially:
revdep-rebuild --ignore --pretend

To search the entire system, while excluding /mnt and /home:
env SEARCH_DIRS="/ -*" SEARCH_DIRS_MASK="/mnt /home" revdep-rebuild

To rebuild packages that depend on libkdecore.so.4 from KDE 3.3:
revdep-rebuild --library /usr/kde/3.3/lib/libkdecore.so.4

To rebuild packages that depend upon libImlib.so and libImlib2.so:
revdep-rebuild --library libImlib[2]*.so.*

FILES

revdep-rebuild keeps several pseudo-temporary files in /var/cache/revdep-rebuild/. Deleting these files can improve accuracy at the cost of speed:

0_env.rr

Contains environment variables

1_files.rr

Contains a list of files to search

2_ldpath.rr

Contains the LDPATH

3_broken.rr

Contains the list of broken files

3_errors.rr

Contains the ldd error output

4_raw.rr

Contains the raw list of packages

4_owners.rr

Contains the file owners

4_pkgs.rr

Contains the unsorted bare package names

4_ebuilds.rr

Contains the unsorted atoms

5_order.rr

Contains the sorted atoms

6_status.rr

Contains the ldd error output

EXIT STATUS

revdep-rebuild returns a zero exit status if it and emerge succeeds, and a nonzero exit status otherwise.

BUGS

Report bugs to <http://bugs.gentoo.org>. Please do not report emerge failures caused by -o or -e. Please include your files from /var/cache/revdep-rebuild/, your emerge --info, and patches. ;)

SEE ALSO

emerge(1), portage(5), regex(7)

Thank you!