Added xbps-ample wiki

This commit is contained in:
Tastatur 2023-08-17 00:57:34 +02:00
parent 09cae92d34
commit f02993e241
6 changed files with 126 additions and 3 deletions

View file

@ -1,5 +1,5 @@
# Welcome to wiki.bijl.us
These are all the docs related to [git.bijl.us](git.bijl.us).
These are all the docs related to [git.bijl.us](https://git.bijl.us).
The only one currently available for reading here is the Void Linux Desktop install.

View file

@ -0,0 +1,57 @@
***This page is still unfinished***
# Setting up your own custom xbps repository
## Creating a xbps package
For your repository you want to create a package, this can be done multiple ways but this repository was created using [xbps-src](https://github.com/void-linux/void-packages) with which you can create `.xbps` files that can be installed.
First you have to [set up xbps-src](https://github.com/void-linux/void-packages#quick-start). After that we can create an xbps package using
```
$ ./xbps-src pkg <foo>
```
which will compile a `<foo>.xbps` in `hostdir/binpkgs`. To create your own package using xbps-src you'll have to create a [template file](https://github.com/void-linux/void-packages/blob/master/Manual.md). After that you can compile the package and install it for testing using:
```
# xbps-install --repository hostdir/binpkgs <foo>
```
Or if you download the `xtools` packages you can install it using:
```
# xi <foo>
```
(Note that you have to be in the `void-packages/` directory)
If the package is working it is ready to be put in the repository.
## Making the repository
Now that we have a package we can make a repository. But first we'll have to create a local one. Make an empty directory. Then copy over your `.xbps` file from the package you want to add into the directory. If you created them using xbps-src they will be in `void-packages/hostdir/binpkgs/`.
After that we can add the packages to the repository data. This will be necessary for the xbps package manager to find the packages. To add all the packages in the directory to the repository data you can issue the command:
```
$ xbps-rindex -a /path/to/repository/directory/*.xbps
```
There should now be an `x86_64-repodata` or `x86_64-musl-repodata` file in your directory.
(If you wanted to create a local repository than after this you would only have to add the repository to your [xbps configuration](https://docs.voidlinux.org/xbps/repositories/custom.html) and you'd be done. But in this guide we're going to make a remote repository.)
## Signing the repository and the packages
Now that we have our repository we're going to need to sign it with a key. To [generate a key](https://docs.voidlinux.org/xbps/repositories/signing.html) we can use the command:
```
$ ssh-keygen -t rsa -m PEM -f private.pem
```
This will create a `private.pem` which we can use to sign the repository and the packages. First we want to sign the repository **which only has to be done once**. This can be done with:
```
$ xbps-rindex --privkey private.pem --sign --signedby "<name>" /path/to/repository/directory
```
Here the `<name>` has to be replaced with the name you want to sign the repository with. And the `/path/to/repository/directory` has to be replaced with the directory where the packages are located.
After that we also want to sign the packages themselves. To achieve this we use the command:
```
$ xbps-rindex --privkey private.pem --sign-pkg /path/to/repository/directory/*.xbps
```
Everytime we add or update packages we'll have to sign them again.
## Hosting the repository
Although there are a lot of ways to host the repository this repository is being hosted on a git server. It is a fairly easy process and doesn't require a whole lot of knowledge but there are probably more optimal ways of hosting a repository.

7
docs/xbps-ample/Home.md Normal file
View file

@ -0,0 +1,7 @@
# Welcome to the xbps-ample wiki
This is a small wiki about xbps-ample and hosting your own xbps repository. These guides were made on an x86-64 machine but should be mostly applicable to other architectures as well.
A lot of this information can be found in the [Void Linux documentation](https://docs.voidlinux.org/xbps/repositories/index.html) and the [manual pages](https://man.voidlinux.org/xbps-rindex).
Check the sidebar for all pages in this wiki!

View file

@ -0,0 +1,51 @@
***This page is still unfinished***
# Maintaining packages in your own repository
It is important to maintain your repository when updates occur or if you want to add/remove packages. This page explains how to.
Note that after changing any files in your repository that you'll have to update them upstream. E.g. uploading the correct files.
## Adding packages
To add a package we first have to copy over the `.xbps` files to the repository directory. After that we can add them to the repository's `*-repodata`. You can add them by using:
```
$ xbps-rindex -a /path/to/repository/directory/*.xbps
```
We also have to sign the package with the key we generated whilst we set up the repository. This can be done by using:
```
$ xbps-rindex --privkey private.pem --sign-pkg /path/to/repository/directory/*.xbps
```
## Updating packages
If you have a new version of a package and want to add it to the repository there are a few steps that need to be done.
First add the new package to the `repodata`.
```
$ xbps-rindex -a /path/to/repository/directory/*.xbps
```
And then remove the obsolete packages.
```
$ xbps-rindex -r /path/to/repository/directory/
```
Don't forget to sign the added packages
```
$ xbps-rindex --privkey private.pem --sign-pkg /path/to/repository/directory/*.xbps
```
## Removing packages
To remove a package you'll first have to remove the files from the repository and it's signature:
```
$ rm /path/to/repository/directory/<foo>*
```
After that you'll have to evoke `xbps-rindex` to clean up the repodata:
```
$ xbps-rindex -c /path/to/repository/directory/
```

View file

@ -0,0 +1,3 @@
***This page is still unfinished***
(A page about having multiple repositories like an musl or nonfree repository on top of another one)

View file

@ -48,5 +48,10 @@ nav:
- 'Essential applications': void-desktop-setup/Essential-applications.md
- 'Virt-manager': void-desktop-setup/Virt-manager.md
- 'Steam': void-desktop-setup/Steam.md
- 'Alpine Server setup': alpine-home.md
- 'Xbps-Ample': ample-home.md
- 'Alpine Server setup': alpine-server-setup/Home.md
- 'Xbps-Ample':
- 'Welcome': xbps-ample/Home.md
- 'Hosting your own custom repository':
- 'First setup': xbps-ample/First-setup.md
- 'Maintaining packages': xbps-ample/Maintaining-packages.md
- 'Hosting multiple repositories': xbps-ample/Multiple-repositories.md