Yum repository management tool
Project description
uvalde: yum repository management tool
Uvalde is a simple CLI tool for managing yum repositories. There is no daemon and no web interface, just a directory of yum repositories and a small sqlite database to remember what RPMs were built from the same SRPM.
Usage
Configuration
Before running the application, create a config file to define the repositories you want to manage. The base directory doesn't need to exist yet, uvalde will create it if needed.
~/.config/uvalde/repos.ini
[my-repo]
base = /home/me/my-repo
architectures = i686, x86_64
[my-other-repo]
base = /home/me/my-other-repo
architectures = i686, x86_64
$ uvalde list repos
my-repo
my-other-repo
Now you can import RPM files and they will be placed at the appropriate locations relative to your repository base. Repository metadata will also be generated.
$ uvalde import my-repo cello-*.rpm
cello-1.0-1.i686.rpm -> /home/me/my-repo/i686/packages/c/
cello-1.0-1.src.rpm -> /home/me/my-repo/src/packages/c/
cello-1.0-1.x86_64.rpm -> /home/me/my-repo/x86_64/packages/c/
cello-debuginfo-1.0-1.i686.rpm -> /home/me/my-repo/i686/debug/packages/c/
cello-debuginfo-1.0-1.x86_64.rpm -> /home/me/my-repo/x86_64/debug/packages/c/
cello-debugsource-1.0-1.i686.rpm -> /home/me/my-repo/i686/debug/packages/c/
cello-debugsource-1.0-1.x86_64.rpm -> /home/me/my-repo/x86_64/debug/packages/c/
cello-extra-1.0-1.noarch.rpm -> /home/me/my-repo/i686/packages/c/
cello-extra-1.0-1.noarch.rpm -> /home/me/my-repo/x86_64/packages/c/
The relationships between RPMs and SRPMs are stored in an sqlite database so that you can manage the files collectively, referencing them by the NVR (name-version-release) string. When RPMs are moved the repository metadata will be regenerated as needed.
$ uvalde list all
my-repo
cello-1.0-1
my-other-repo
$ uvalde move my-repo my-other-repo cello-1.0-1
/home/me/my-repo/i686/packages/c/cello-1.0-1.i686.rpm -> /home/me/my-other-repo/i686/packages/c/
/home/me/my-repo/src/packages/c/cello-1.0-1.src.rpm -> /home/me/my-other-repo/src/packages/c/
/home/me/my-repo/x86_64/packages/c/cello-1.0-1.x86_64.rpm -> /home/me/my-other-repo/x86_64/packages/c/
/home/me/my-repo/i686/debug/packages/c/cello-debuginfo-1.0-1.i686.rpm -> /home/me/my-other-repo/i686/debug/packages/c/
/home/me/my-repo/x86_64/debug/packages/c/cello-debuginfo-1.0-1.x86_64.rpm -> /home/me/my-other-repo/x86_64/debug/packages/c/
/home/me/my-repo/i686/debug/packages/c/cello-debugsource-1.0-1.i686.rpm -> /home/me/my-other-repo/i686/debug/packages/c/
/home/me/my-repo/x86_64/debug/packages/c/cello-debugsource-1.0-1.x86_64.rpm -> /home/me/my-other-repo/x86_64/debug/packages/c/
/home/me/my-repo/x86_64/packages/c/cello-extra-1.0-1.noarch.rpm -> /home/me/my-other-repo/x86_64/packages/c/
/home/me/my-repo/i686/packages/c/cello-extra-1.0-1.noarch.rpm -> /home/me/my-other-repo/i686/packages/c/
$ uvalde list all
my-repo
my-other-repo
cello-1.0-1
$ uvalde remove my-other-repo cello-1.0-1
/home/me/my-other-repo/i686/packages/c/cello-1.0-1.i686.rpm X
/home/me/my-other-repo/src/packages/c/cello-1.0-1.src.rpm X
/home/me/my-other-repo/x86_64/packages/c/cello-1.0-1.x86_64.rpm X
/home/me/my-other-repo/i686/debug/packages/c/cello-debuginfo-1.0-1.i686.rpm X
/home/me/my-other-repo/x86_64/debug/packages/c/cello-debuginfo-1.0-1.x86_64.rpm X
/home/me/my-other-repo/i686/debug/packages/c/cello-debugsource-1.0-1.i686.rpm X
/home/me/my-other-repo/x86_64/debug/packages/c/cello-debugsource-1.0-1.x86_64.rpm X
/home/me/my-other-repo/i686/packages/c/cello-extra-1.0-1.noarch.rpm X
/home/me/my-other-repo/x86_64/packages/c/cello-extra-1.0-1.noarch.rpm X
$ uvalde list all
my-repo
my-other-repo
Installation
RPM packages coming soon! In the meantime, you can install from source.
Install the createrepo_c build dependencies
- Fedora:
dnf install cmake gcc make bzip2-devel expat-devel file-devel glib2-devel libcurl-devel libxml2-devel openssl-devel python3-devel rpm-devel sqlite-devel xz-devel zlib-devel
- CentOS:
yum install cmake gcc make bzip2-devel expat-devel file-devel glib2-devel libcurl-devel libxml2-devel openssl-devel python36-devel rpm-devel sqlite-devel xz-devel zlib-devel
Clone the repository
git clone https://github.com/carlwgeorge/uvalde.git
cd uvalde
Create a virtual environment
python3 -m venv .env
Install in editable mode
.env/bin/pip install --editable .
Optional: install testing dependencies
.env/bin/pip install --editable .[tests]
Optional: add command to PATH
ln -s $PWD/.env/bin/uvalde ~/.local/bin/
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uvalde-0.3.0.tar.gz.
File metadata
- Download URL: uvalde-0.3.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11dbae5203312e86c3675b0e7bcb9d066c8cd948121eeb69d3fc76418c6d8ad0
|
|
| MD5 |
2fc953ab51205d6a6357ec8234444cd2
|
|
| BLAKE2b-256 |
b5551af895d3d07bbe56dc738e6c249dadd2327f698ac25e0196eaa16c652a4e
|
File details
Details for the file uvalde-0.3.0-py3-none-any.whl.
File metadata
- Download URL: uvalde-0.3.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
781b2881ca54750c8f1024ee1b98fd34a05d8b25214ed360fe70237f3b777d64
|
|
| MD5 |
8d1fe34ed727a153df64ab119a17203e
|
|
| BLAKE2b-256 |
a9e26662a41107fe83c06f3753dfd7c2a91a119a075784f9e146c16c240c95e7
|