mirror of
https://codeberg.org/forgejo/docs.git
synced 2024-11-24 18:09:26 -05:00
add arch package doc (#791)
This is the documentation for PR https://codeberg.org/forgejo/forgejo/pulls/4785. Reviewed-on: https://codeberg.org/forgejo/docs/pulls/791 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Reviewed-by: Robert Wolff <mahlzahn@posteo.de> Co-authored-by: dragon <explodingfkl@gmail.com> Co-committed-by: dragon <explodingfkl@gmail.com>
This commit is contained in:
parent
2515c7ef1f
commit
4a627a2fec
2 changed files with 89 additions and 0 deletions
88
docs/user/packages/arch.md
Normal file
88
docs/user/packages/arch.md
Normal file
|
@ -0,0 +1,88 @@
|
|||
---
|
||||
title: 'Arch Package Registry'
|
||||
license: 'Apache-2.0'
|
||||
---
|
||||
|
||||
Forgejo has a Arch Linux package registry, which can act as a fully working [Arch linux mirror](https://wiki.archlinux.org/title/mirrors) and connected directly in `/etc/pacman.conf`. Forgejo automatically creates pacman database for packages in user/organization space when a new Arch package is uploaded.
|
||||
|
||||
## Upload packages
|
||||
|
||||
When uploading the package to Forgejo, you have to prepare package file with the `.pkg.tar.zst` extension 。You can use [curl](https://curl.se/) or any other HTTP client, Forgejo supports multiple [authentication schemes](https://docs.Forgejo.com/usage/authentication). The upload command will create 3 files: package, signature and desc file for the pacman database (which will be created automatically on request).
|
||||
|
||||
The following command will upload arch package and related signature to Forgejo with basic authentification:
|
||||
|
||||
```sh
|
||||
curl -X PUT \
|
||||
https://{domain}/api/packages/{owner}/arch/{group} \
|
||||
--user your_username:your_token_or_password \
|
||||
--header "Content-Type: application/octet-stream" \
|
||||
--data-binary '@/path/to/package/file/package-1-1-x86_64.pkg.tar.zst'
|
||||
```
|
||||
|
||||
| Placeholder | Description |
|
||||
| ----------- | ------------------------------------------------------------------------------------------- |
|
||||
| `owner` | The owner of the package |
|
||||
| `group` | [Repository](https://wiki.archlinux.org/title/Official_repositories), e.g. `os`, `extras` . |
|
||||
|
||||
## Install packages
|
||||
|
||||
First, you need to update your pacman configuration, adding following lines :
|
||||
|
||||
```conf
|
||||
[{owner}.{group}.{domain}]
|
||||
SigLevel = Required
|
||||
Server = https://{domain}/api/packages/{owner}/arch/{group}/{architecture}
|
||||
```
|
||||
|
||||
You can also copy content from the Forgejo package page.
|
||||
|
||||
| Placeholder | Description |
|
||||
| -------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `owner` | The owner of the package |
|
||||
| `group` | [Repository](https://wiki.archlinux.org/title/Official_repositories), e.g. `os`, `extras` |
|
||||
| `architecture` | System architecture, such as `x86_64`, `aarch64` |
|
||||
|
||||
Then, Import the server's public key.
|
||||
|
||||
```bash
|
||||
# Download the public key from the remote server.
|
||||
wget -O sign.gpg https://{domain}/api/packages/{owner}/arch/repository.key
|
||||
|
||||
# Import the public key for pacman.
|
||||
pacman-key --add sign.gpg
|
||||
|
||||
# Trust the certificate with the specified email
|
||||
pacman-key --lsign-key '{owner}@noreply.{domain}'
|
||||
```
|
||||
|
||||
| Placeholder | Description |
|
||||
| ----------- | ------------------------------------------------ |
|
||||
| `domain` | Your Forgejo domain, such as `code.forgejo.org`. |
|
||||
| `owner` | The owner of the package |
|
||||
|
||||
Finally, you can run pacman sync command (with -y flag to load connected database file), to install your package:
|
||||
|
||||
```sh
|
||||
pacman -Sy {package}
|
||||
```
|
||||
|
||||
## Delete packages
|
||||
|
||||
The `DELETE` method will remove specific package version, and all package files related to that version:
|
||||
|
||||
```sh
|
||||
curl -X DELETE \
|
||||
https://{domain}/api/packages/{owner}/arch/{group}/{package}/{version} \
|
||||
--user your_username:your_token_or_password
|
||||
```
|
||||
|
||||
| Placeholder | Description |
|
||||
| ----------- | ----------------------------------------------------------------------------------------- |
|
||||
| `owner` | The owner of the package |
|
||||
| `group` | [Repository](https://wiki.archlinux.org/title/Official_repositories), e.g. `os`, `extras` |
|
||||
| `package` | Package name |
|
||||
| `version` | Package version |
|
||||
|
||||
## Clients
|
||||
|
||||
Any `pacman` compatible package manager or AUR-helper can be used to install packages from Forgejo ([yay](https://github.com/Jguer/yay), [paru](https://github.com/Morganamilo/paru), [pikaur](https://github.com/actionless/pikaur), [aura](https://github.com/fosskers/aura)). Also, any HTTP client can be used to execute get/push/remove operations ([curl](https://curl.se/), [postman](https://www.postman.com/), [thunder-client](https://www.thunderclient.com/)).
|
|
@ -11,6 +11,7 @@ The following package managers are currently supported:
|
|||
| Name | Language | Package client |
|
||||
| ------------------------- | ---------- | -------------------------- |
|
||||
| [Alpine](./alpine/) | - | `apk` |
|
||||
| [Arch](./arch/) | - | `pacman` |
|
||||
| [Cargo](./cargo/) | Rust | `cargo` |
|
||||
| [Chef](./chef/) | - | `knife` |
|
||||
| [Composer](./composer/) | PHP | `composer` |
|
||||
|
|
Loading…
Reference in a new issue