Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/termux/termux-apt-repo

Script to create Termux apt repositories.
https://github.com/termux/termux-apt-repo

apt package-manager termux

Last synced: about 6 hours ago
JSON representation

Script to create Termux apt repositories.

Awesome Lists containing this project

README

        

termux-apt-repo
---------------

Script to create `Termux `__ package repos.

It can be used to publish cross-compiled packages created using the
`Termux build setup `__ or
with packages created (possibly on-device) with
`termux-create-package `__.

Usage instructions
------------------

In Termux, install with ``pkg install termux-apt-repo`` and execute
as:

::

termux-apt-repo [-h] [--use-hard-links] input output [dist] [comp]

positional arguments:
input folder where .deb files are located
output folder with repository tree
dist name of distribution folder. deb files are put into
output/dists/distribution/component/binary-$ARCH/
comp name of component folder. deb files are put into
output/dists/distribution/component/binary-$ARCH/

optional arguments:
-h, --help show this help message and exit
--use-hard-links use hard links instead of copying deb files. Will not work
on an android device
-s --sign sign repo with GPG key

When using outside Termux (the script should work on most Linux
distributions), install with ``pip3 install termux-apt-repo``.

All the .deb files in the first directory will be published to a newly
created APT repository in the second directory (which will be deleted if
it exists, so take caution).

Publishing the generated folder
-------------------------------

The published folder can be made available at a publicly accessible
``$REPO_URL`` using any method:

1. By running termux-apt-repository on a web server directly.
2. Using rsync:
``rsync --delete -r your.host:path/to/folder``.
3. Creating a zip or tar file and unpacking it at a web server.
4. Any other creative way.

It can also be published using e.g. `GitHub
pages `__.

Accessing the repository
------------------------

With the created ```` available at
``$REPO_URL``, users can access repo by creating a file:

::

$PREFIX/etc/apt/sources.list.d

containing the single line:

::

deb [trusted=yes] $REPO_URL $dist $comp

``[trusted=yes]`` is needed if the repo has not been signed with a gpg key.
To sign it, pass ``--sign`` argument. The signing key then has to be imported by
the user to make apt trust it.