Skip to content
Alena edited this page Mar 31, 2023 · 5 revisions

RPM

Rpm repository is a linux binary packages repository, which yum and dnf can understand. Try the following configuration to add rpm repository:

repo:
  type: rpm
  storage:
    type: fs
    path: /var/artipie/centos
  settings:
    digest: sha256 # packages digest algorithm
    naming-policy: sha1 # naming policy for metadata files
    filelists: true # is filelist metadata file required
    # repository update mode:
    update:
      # update metadata on package upload
      on: upload
      # or schedule the update
      on:
       cron: 0 2 * * *

Section setting allows to configure repository-specific parameters and is not required:

  • digest - digest algorithm for rpm packages checksum calculation, sha256 (default) and sha1 are supported
  • naming-policy - naming policy for metadata files: plain, sha1 or sha256 (default) prefixed
  • filelists - Calculate metadata filelists.xml, true by default
  • update section allows to set update mode: either update the repository when the package is uploaded via HTTP or schedule the update via cron

In order to use Artipie rpm repository with yum follow the steps:

  • Install yum-utils if needed: yum install yum-utils
  • Add Artipie repository: yum-config-manager --add-repo=http://{host}:{port}/{repository-name} where {host} and {port} are Artipie service host and port, {repository-name} is the name of rpm repository
  • Refresh the local repository: yum upgrade all
  • Install the packages: yum install package-name

No yum nether dnf support packages upload, but you can upload rpm file into Artipie rpm repository with HTTP PUT request:

curl -X PUT --data-binary "@my-pkg.rpm" http://{host}:{port}/{repository-name}/my-pkg.rpm?override=true&skip_update=true

The request supports the following parameters:

  • override allows to override existing rpm file in the repository, not required, false by default
  • skip_update can be used to skip repository metadata update, not required, false by default. In update mode cron this parameter is ignored (as repository metadata are updated by schedule).