CYGCHECK(1) CYGWIN CYGCHECK(1)NAME
- List system information, check installed packages, or query package
database.
SYNOPSIScygcheck [-v] [-h] PROGRAM
cygcheck-c [-d] [PACKAGE]
cygcheck-s [-r] [-v] [-h]
cygcheck-k
cygcheck-f FILE [FILE]...
cygcheck-l [PACKAGE]...
cygcheck-p REGEXP
cygcheck--delete-orphaned-installation-keys
cygcheck--enable-unique-object-names Cygwin-DLL
cygcheck--disable-unique-object-names Cygwin-DLL
cygcheck--show-unique-object-names Cygwin-DLL
cygcheck-h
OPTIONS
At least one command option or a PROGRAM is required, as shown above.
PROGRAM
list library (DLL) dependencies of PROGRAM
-c, --check-setup
show installed version of PACKAGE and verify integrity (or for
all installed packages if none specified)
-d, --dump-only
just list packages, do not verify (with -c)
-s, --sysinfo
produce diagnostic system information (implies -c -d)
-r, --registry
also scan registry for Cygwin settings (with -s)
-k, --keycheck
perform a keyboard check session (must be run from a plain con‐
sole only, not from a pty/rxvt/xterm)
-f, --find-package
find the package to which FILE belongs
-l, --list-package
list contents of PACKAGE (or all packages if none given)
-p, --package-query
search for REGEXP in the entire cygwin.com package repository
(requires internet connectivity)
--delete-orphaned-installation-keys
Delete installation keys of old, now unused installations from
the registry. Requires the right to change the registry.
--enable-unique-object-names Cygwin-DLL
--disable-unique-object-names Cygwin-DLL
--show-unique-object-names Cygwin-DLL
Enable, disable, or show the setting of the \"unique object
names\" setting in the Cygwin DLL given as argument to this
option. The DLL path must be given as valid Windows(!) path.
See the users guide for more information. If you don't know
what this means, don't change it.
-v, --verbose
produce more verbose output
-h, --help
annotate output with explanatory comments when given with
another command, otherwise print this help
-V, --version
print the version of cygcheck and exit
Note: -c, -f, and -l only report on packages that are currently
installed. To
search all official Cygwin packages use -p instead.
The -p REGEXP matches
package names, descriptions, and names of files/paths within all
packages.
DESCRIPTION
The cygcheck program is a diagnostic utility for dealing with Cygwin
programs. If you are familiar with dpkg or rpm, cygcheck is similar in
many ways. (The major difference is that setup.exe handles installing
and uninstalling packages; see internet-setup /xref for more informa‐
tion.)
The -c option checks the version and status of installed Cygwin
packages. If you specify one or more package names, cygcheck will limit
its output to those packages, or with no arguments it lists all pack‐
ages. A package will be marked Incomplete if files originally installed
are no longer present. The best thing to do in that situation is rein‐
stall the package with setup.exe. To see which files are missing, use
the -v option. If you do not need to know the status of each package
and want cygcheck to run faster, add the -d option and cygcheck will
only output the name and version for each package.
If you list one or more programs on the command line, cygcheck will
diagnose the runtime environment of that program or programs, providing
the names of DLL files on which the program depends. If you specify
the -s option, cygcheck will give general system information. If you
list one or more programs on the command line and specify -s, cygcheck
will report on both.
The -f option helps you to track down which package a file came from,
and -l lists all files in a package. For example, to find out about
/usr/bin/less and its package: cygcheck usage
$ cygcheck-f /usr/bin/less
less-381-1
$ cygcheck-l less
/usr/bin/less.exe
/usr/bin/lessecho.exe
/usr/bin/lesskey.exe
/usr/man/man1/less.1
/usr/man/man1/lesskey.1
The -h option prints additional helpful messages in the report, at the
beginning of each section. It also adds table column headings. While
this is useful information, it also adds some to the size of the
report, so if you want a compact report or if you know what everything
is already, just leave this out.
The -v option causes the output to be more verbose. What this means
is that additional information will be reported which is usually not
interesting, such as the internal version numbers of DLLs, additional
information about recursive DLL usage, and if a file in one directory
in the PATH also occurs in other directories on the PATH.
The -r option causes cygcheck to search your registry for information
that is relevent to Cygwin programs. These registry entries are the
ones that have "Cygwin" in the name. If you are paranoid about pri‐
vacy, you may remove information from this report, but please keep in
mind that doing so makes it harder to diagnose your problems.
In contrast to the other options that search the packages that are
installed on your local system, the -p option can be used to search
the entire official Cygwin package repository. It takes as argument a
Perl-compatible regular expression which is used to match package
names, package descriptions, and path/filenames of the contents of
packages. This feature requires an active internet connection, since
it must query the cygwin.com web site. In fact, it is equalivant to
the search that is available on the package listing
For example, perhaps you are getting an error because you are missing a
certain DLL and you want to know which package includes that file:
$ cygcheck-p 'cygintl-2\.dll'
Found 1 matches for 'cygintl-2\.dll'.
libintl2-0.12.1-3 GNU Internationalization runtime library
$ cygcheck-p 'libexpat.*\.a'
Found 2 matches for 'libexpat.*\.a'.
expat-1.95.7-1 XML parser library written in C
expat-1.95.8-1 XML parser library written in C
$ cygcheck-p '/ls\.exe'
Found 2 matches for '/ls\.exe'.
coreutils-5.2.1-5 GNU core utilities (includes fileutils, sh-
utils and textutils)
coreutils-5.3.0-6 GNU core utilities (includes fileutils, sh-
utils and textutils)
Note that this option takes a regular expression, not a glob or wild‐
card. This means that you need to use .* if you want something similar
to the wildcard * commonly used in filename globbing. Similarly, to
match the period character you should use \. since the . character in
a regexp is a metacharacter that will match any character. Also be
aware that the characters such as \ and * are shell metacharacters,
so they must be either escaped or quoted, as in the example above.
The third example above illustrates that if you want to match a whole
filename, you should include the / path seperator. In the given exam‐
ple this ensures that filenames that happen to end in ls.exe such as
ncftpls.exe are not shown. Note that this use does not mean "look for
packages with ls in the root directory," since the / can match any‐
where in the path. It's just there to anchor the match so that it
matches a full filename.
By default the matching is case-sensitive. To get a case insensitive
match, begin your regexp with (?i) which is a PCRE-specific feature.
For complete documentation on Perl-compatible regular expression syntax
and options, read the perlre manpage, or one of many websites such as
perldoc.com that document the Perl language.
The cygcheck program should be used to send information about your
system for troubleshooting when requested. When asked to run this
command save the output so that you can email it, for example:
$ cygcheck-s -v -r -h > cygcheck_output.txt
Each Cygwin DLL stores its path and installation key in the registry.
This allows troubleshooting of problems which could be a result of hav‐
ing multiple concurrent Cygwin installations. However, if you're
experimenting a lot with different Cygwin installation paths, your reg‐
istry could accumulate a lot of old Cygwin installation entries for
which the installation doesn't exist anymore. To get rid of these
orphaned registry entries, use the cygcheck --delete-orphaned-instal‐
lation-keys command.
Each Cygwin DLL generates a key value from its installation path.
This value is not only stored in the registry, it's also used to gener‐
ate global object names used for interprocess communication. This
keeps different Cygwin installations separate. Processes running under
a Cygwin DLL installed in C:\cygwin don't see processes running under a
Cygwin DLL installed in C:\Program Files\cygwin. This allows running
multiple versions of Cygwin DLLs without these versions to interfere
with each other, or to run small third-party installations for a spe‐
cific purpose independently from a Cygwin net distribution.
For debugging purposes it could be desired that the various Cygwin
DLLs use the same key, independently from their installation paths. If
the DLLs have different versions, trying to run processes under these
DLLs concurrently will result in error messages like this one:
*** shared version mismatch detected - 0x8A88009C/0x75BE0074.
This problem is probably due to using incompatible versions of the cyg‐
win DLL.
and delete all but the most recent version. The most recent version
*should*
reside in x:\\cygwin\\bin, where 'x' is the drive on which you have
installed the cygwin distribution. Rebooting is also suggested if you
are unable to find another cygwin DLL.
To disable the usage of a unique key value of a certain Cygwin DLL,
use the cygcheck--disable-unique-object-names Cygwin-DLL command.
Cygwin-DLL is the Windows path (*not* a Cygwin POSIX path) to the DLL
for which you want to disable this feature. Note that you have to stop
all Cygwin processes running under this DLL, before you're allowed to
change this setting. For instance, run cygcheck from a DOS command
line for this purpose.
To re-enable the usage of a unique key, use the cygcheck--enable-
unique-object-names Cygwin-DLL command. This option has the same char‐
acteristics as the --disable-unique-object-names option
Finally, you can use cygcheck--show-unique-object-names Cygwin-DLL to
find out if the given Cygwin DLL use unique object names or not. In
contrast to the --disable-... and --enable-... options, the --show-
unique-object-names option also works for Cygwin DLLs which are cur‐
rently in use.
COPYRIGHT
Cygwin is Copyright (C) 1995-2010 Red Hat, Inc.
Cygwin is Free software; for complete licensing information, refer to:
http://cygwin.com/licensing.html
SEE ALSO
The full documentation to the Cygwin API is maintained on the web at:
http://cygwin.com/cygwin-api/cygwin-api.html
The website is updated more frequently than the man pages and should be
considered the authoritative source of information.
April 2010 CYGCHECK(1)