--no-force-things, --refuse-things Force or refuse (no-force and refuse mean the same thing) to do some things. things is a comma separated list of things specified below. --force-help displays a message describing them. Things marked with (*) are forced by default.
Warning: These options are mostly intended to be used by experts only. Using them without fully understanding their effects may break your whole system.
all: Turns on (or off) all force options.
downgrade(*): Install a package, even if newer version of it is already installed.
Warning: At present dpkg does not do any dependency checking on downgrades and therefore will not warn you if the downgrade breaks the dependency of some other package. This can have serious side effects, downgrading essential system components can even make your whole system unusable. Use with care.
configure-any: Configure also any unpacked but unconfigured packages on which the current package depends.
hold: Process packages even when marked "hold".
remove-reinstreq: Remove a package, even if it's broken and marked to require reinstallation. This may, for example, cause parts of the package to remain on the system, which will then be forgotten by dpkg.
remove-essential: Remove, even if the package is considered essential. Essential packages contain mostly very basic Unix commands. Removing them might cause the whole system to stop working, so use with caution.
depends: Turn all dependency problems into warnings.
depends-version: Don't care about versions when checking dependencies.
breaks: Install, even if this would break another package (since dpkg 1.14.6).
conflicts: Install, even if it conflicts with another package. This is dangerous, for it will usually cause overwriting of some files.
confmiss: If a conffile is missing and the version in the package did change, always install the missing conffile without prompting. This is dangerous, since it means not preserving a change (removing) made to the file.
confnew: If a conffile has been modified and the version in the package did change, always install the new version without prompting, unless the --force-confdef is also specified, in which case the default action is preferred.
confold: If a conffile has been modified and the version in the package did change, always keep the old version without prompting, unless the --force-confdef is also specified, in which case the default action is preferred.
confdef: If a conffile has been modified and the version in the package did change, always choose the default action without prompting. If there is no default action it will stop to ask the user unless --force-confnew or --force-confold is also been given, in which case it will use that to decide the final action.
confask: If a conffile has been modified always offer to replace it with the version in the package, even if the version in the package did not change (since dpkg 1.15.8). If any of --force-confmiss, --force-confnew, --force-confold, or --force-confdef is also given, it will be used to decide the final action.
overwrite: Overwrite one package's file with another's file.
overwrite-dir: Overwrite one package's directory with another's file.
overwrite-diverted: Overwrite a diverted file with an undiverted version.
unsafe-io: Do not perform safe I/O operations when unpacking (since dpkg 126.96.36.199). Currently this implies not performing file system syncs before file renames, which is known to cause substantial performance degradation on some file systems, unfortunately the ones that require the safe I/O on the first place due to their unreliable behaviour causing zero-length files on abrupt system crashes.
Note: For ext4, the main offender, consider using instead the mount option nodelalloc, which will fix both the performance degradation and the data safety issues, the latter by making the file system not produce zero-length files on abrupt system crashes with any software not doing syncs before atomic renames.
Warning: Using this option might improve performance at the cost of losing data, use with care.
script-chrootless: Run maintainer scrips without chroot(2)ing into instdir even if the package does not support this mode of operation (since dpkg 1.18.5).
Warning: This can destroy your host system, use with extreme care.
architecture: Process even packages with wrong or no architecture.
bad-version: Process even packages with wrong versions (since dpkg 1.16.1).
bad-path: PATH is missing important programs, so problems are likely.
not-root: Try to (de)install things even when not root.
bad-verify: Install a package even if it fails authenticity check. --path-include=glob-pattern Set glob-pattern as a path filter, either by excluding or re-including previously excluded paths matching the specified patterns during install (since dpkg 1.15.8).
Warning: take into account that depending on the excluded paths you might completely break your system, use with caution.
The glob patterns use the same wildcards used in the shell, were '*' matches any sequence of characters, including the empty string and also '/'. For example, «/usr/*/READ*» matches «/usr/share/doc/package/README». As usual, '?' matches any single character (again, including '/'). And '[' starts a character class, which can contain a list of characters, ranges and complementations. See glob(7) for detailed information about globbing. Note: the current implementation might re-include more directories and symlinks than needed, to be on the safe side and avoid possible unpack failures; future work might fix this.
This can be used to remove all paths except some particular ones; a typical case is:
to remove all documentation files except the copyright files.
These two options can be specified multiple times, and interleaved with each other. Both are processed in the given order, with the last rule that matches a file name making the decision.
The filters are applied when unpacking the binary packages, and as such only have knowledge of the type of object currently being filtered (e.g. a normal file or a directory) and have not visibility of what objects will come next. Because these filters have side effects (in contrast to find(1) filters), excluding an exact pathname that happens to be a directory object like /usr/share/doc will not have the desired result, and only that pathname will be excluded (which could be automatically reincluded if the code sees the need). Any subsequent files contained within that directory will fail to unpack.
Hint: make sure the globs are not expanded by your shell.