cpandb - interface to CPAN::SQLite


version 0.219


This script is an interface to the routines of CPAN::SQLite for setting up, maintaining and searching a DBD::SQLite database of CPAN. Available options can be grouped into three categories.

Common options

These are options which are common to both setting up and maintaining the database or performing queries on it. These are

  • --CPAN '/path/to/CPAN'

    This specifies the path to where the index files are to be stored. This could be a local CPAN mirror, defined here by the presence of a MIRRORED.BY file beneath this directory, or a local directory in which to store these files from a remote CPAN mirror. In the latter case, the index files are fetched from a remote CPAN mirror, using the same list that uses, if this is configured, and are updated if they are more than one day old.

    If the CPAN option is not given, it will default to cpan_home of CPAN::, if this is configured, with the sources being found under keep_source_where. A fatal error results if such a directory isn't found. Updates to these index files are assumed here to be handled by

  • --db_name 'cpan-sqlite'

    This is the name of the database that DBD::SQLite will use. If not given, this defaults to cpandb-sqlite.

  • --db_dir '/path/to/db/dir'

    This specifies the path to where the database file is found. If not given, it defaults to the cpan_home directory of, if present, or to the directory in which the script was invoked.

Indexing options

These are options which are used for setting up and maintaining the database. These include

  • --setup

    This specifies that the database is to be created and populated from the CPAN indices; any existing database will be overwritten.

  • --update

    This is used to update an existing database, which must have first been created with the setup option.

  • --reindex 'dist_name'

    This specifies that the CPAN distribution dist_name is to be reindexed.

Querying options

These options are used to query the database. Available options are

  • --module Mod::Name

    This provides information on the specified module name.

  • --dist Dist-Name

    This provides information on the specified distribution name.

  • --cpanid CPANID

    This provides information on the specified CPAN author id

All search terms are assumed to be exact matches in a case-insensitive manner.

There's no limit on maximum number of records. If you need to adjust the number because you get too many results, set the CPAN_SQLITE_MAX_RESULTS environment variable.