A simple command line utility to create a debian repository
Simple command line tool to create apt repositories. This will work on debian and ubuntu.
First install from pypi:
pip install vdt.simpleaptrepo
This tool is a wrapper for some debian specific packages, so you will need to install them first:
apt-get install gnupg dpkg-sig apt-utils
To show which commands are available:
Create a repository:
First you need to create a gpg key to sign your packages with. This is not mandatory but highly recommended.
Copy and remember the key’s hash. The output looks something like this:
gpg: key 10FB8BDC marked as ultimately trusted
So copy the
10FB8BDC hash, you will need it later.
Now create a repository:
simpleapt create-repo myrepo /www/ --gpgkey 10FB8BDC Repository 'myrepo' created Now add a component with the 'add-component' command
Create a component:
In one repository you have multiple components:
simpleapt add-component myrepo test
You will see what you need to do now:
Component 'test' created in repo 'myrepo' Now add some unsigned debian packages in the directory and run the 'update-repo' command (see the 'add packages' section below) Configure your webservice to set the www-root to /www/ Add http://<hostname>/myrepo/test / to your sources.list Add the key on the host where you want to install the packages. (This is only needed once per repository) wget -qO - http://<hostname>/myrepo/test/keyfile | sudo apt-key add -
Add some more if you like:
simpleapt add-component myrepo staging simpleapt add-component myrepo production
See that our repo is there:
simpleapt list-repos myrepo (gpgkey: 10FB8BDC) test staging main
Copy some debian package into a component’s directory and update the repo:
simpleapt update-repo myrepo test Exported key 10FB8BDC to /www/myrepo/test/keyfile Signed package /www/myrepo/test/my-package_0.0.1_all.deb Creates Packages Creates Packages.gz Create Release with key 10FB8BDC Create InRelease with key 10FB8BDC Create Releases.gpg with key 10FB8BDC
Now you can install these packages!