repoman

2014-10-12 23:17 UTC
  • Xyne

Metadata

Description:

The pacman of repository managers.

Latest Version:

2013.7

Architecture:

  • any

Dependencies:

  • python3

Arch Repositories:

  • [xyne-any]
  • [xyne-i686]
  • [xyne-x86_64]

AUR ID:

68919

Arch Forum ID:

161094

Tags:

About

Repoman is a Pacman repository manager that allows you to enable and disable databases in a way that is similar to installing and removing packages.

Features

  • Enable and disable repositories with dependency resolution.
  • Download repository metadata from remote servers.
  • Search repositories.
  • Download Pacman databases from known repositories without enabling them and then search for packages in those databases.

Warning

Repoman is new and not fully tested. You should check the generated configuration file thoroughly before using it.

Usage

pacman.conf

If you want to let repoman manage all of your repositories then you should comment out all repository sections in /etc/pacman.conf and include the line

Include = /etc/repoman/repoman.conf

Otherwise you can manually paste the output into pacman.conf or another included file wherever you like. It this is not obvious to you then you should probably not be using repoman to begin with.

Command Examples

Update the repo metadata and configuration file

repoman -ru

Enable my "xyne-x86_64" repo:

repoman --enable xyne-x86_64 --before community

See below for more examples.

Files

All paths are given as relative paths to the configuration directory, which is /etc/repoman by default.

repoman.conf

This is the generated configuration file that should be included in pacman.conf.

json/urls.json

This file contains the list of URLs repo metadata in JSON format.

json/enabled.json

This is the list of enabled repos and it is used to create the repoman.conf file. The order is respected. You may edit this file manually.

json/repos.json

This file contains the collected repository metadata. It is generated automatically and should not be edited.

json/retrieved

A directory of metadata retrieved from the URLs in urls.json. The name of the file is the base-64-encoded URL.

json/override.json

This file can be used to override or remove values in the repo.json file. It follows the same format as that file. For example, to change the SigLevel of the "core" repository, you could use this:

{
  "core": {
    "options" : {
      "SigLevel" : "PackageRequired"
    }
  }
}

Server Metadata File Example

The following is an example of a single repo metadata file for the official "extra" repository. If you would like to have your repo included in the database on this site, post a matching metadata file in the forum thread linked in the table above. Do not forget the [code] tags.

You could also email me a file, but posting on the forum is a better way to notify others that your repo is available.

extra.json

{ "description": "Official Arch Linux extra repository.", "architectures" : [ "i686", "x86_64" ], "dependencies" : [ "core" ], "options" : { "SigLevel" : null }, "locations": [ "Include = /etc/pacman.d/mirrorlist" ] }

The name of the file should be the name of the repo with ".json" appended to the end. Most fields should be self-explanatory.

"locations" should be a list of "Include = ..." and/or "Server = ..." lines that will be inserted directly into the Pacman configuration file.

Help Message

$ repoman --help

usage: repoman [-h] [-e] [-d] [-a <repo>] [-b <repo>]
               [--config-dir CONFIG_DIR] [-u] [-r] [--dbs]
               [--arch <architecture>] [--collect <dirpath>] [-s] [-p]
               [--list]
               [<arg> [<arg> ...]]

Manage Pacman respositories

positional arguments:
  <arg>

optional arguments:
  -h, --help            show this help message and exit
  -e, --enable          Enable repos.
  -d, --disable         Disable repos.
  -a <repo>, --after <repo>
                        When enabling repos, insert them after the given repo.
  -b <repo>, --before <repo>
                        When enabling repos, insert them before the given
                        repo.
  --config-dir CONFIG_DIR
                        Repoman configuration directory. Default: /etc/repoman
  -u, --update          Update the configuration file. It will be printed to
                        STDOUT otherwise.
  -r, --refresh         Refresh repo database.
  --dbs                 Download Pacman database files to enable searching for
                        packages.
  --arch <architecture>
                        The system architecture. Default: x86_64

Utilities:
  --collect <dirpath>   Collect repo metadata from separate JSON files into a
                        single JSON database.
  -s, --search          Search repos names and descriptions.
  -p, --pkg-search      Search all repos for a given package.
  --list                List available repos.

Repo Search Example

$ repoman --search xyne

xyne-any
  A repo for Xyne's own projects: http://xyne.archlinux.ca/projects/
  Packages for the "any." architecture.
  Use this repo only if there is no matching [xyne-*] repo for your architecture.

xyne-i686
  A repo for Xyne's own projects: http://xyne.archlinux.ca/projects/
  Packages for the "i686." architecture.
  Note that this includes all packages in [xyne-any]

xyne-x86_64
  A repo for Xyne's own projects: http://xyne.archlinux.ca/projects/
  Packages for the "x86_64." architecture.
  Note that this includes all packages in [xyne-any]

Package Search Example

$ repoman --pkg-search ghc

community/haskell-ghc-paths-0.1.0.9-1
extra/ghc-7.6.2-1
haskell/ghc-7.6.2-1

Repo Metadata

repos.json

Contact
echo xyne.archlinux.ca | sed 's/\./@/'
Feeds
Blog News
Validation
XHTML 1.0 Strict CSS level 3 Atom 1.0