-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes #20751 This PR adds a RPM package registry. You can follow [this tutorial](https://opensource.com/article/18/9/how-build-rpm-packages) to build a *.rpm package for testing. This functionality is similar to the Debian registry (#22854) and therefore shares some methods. I marked this PR as blocked because it should be merged after #22854. ![grafik](https://user-images.githubusercontent.com/1666336/223806549-d8784fd9-9d79-46a2-9ae2-f038594f636a.png)
- Loading branch information
Showing
29 changed files
with
1,998 additions
and
43 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
--- | ||
date: "2023-03-08T00:00:00+00:00" | ||
title: "RPM Packages Repository" | ||
slug: "packages/rpm" | ||
draft: false | ||
toc: false | ||
menu: | ||
sidebar: | ||
parent: "packages" | ||
name: "RPM" | ||
weight: 105 | ||
identifier: "rpm" | ||
--- | ||
|
||
# RPM Packages Repository | ||
|
||
Publish [RPM](https://rpm.org/) packages for your user or organization. | ||
|
||
**Table of Contents** | ||
|
||
{{< toc >}} | ||
|
||
## Requirements | ||
|
||
To work with the RPM registry, you need to use a package manager like `yum` or `dnf` to consume packages. | ||
|
||
The following examples use `dnf`. | ||
|
||
## Configuring the package registry | ||
|
||
To register the RPM registry add the url to the list of known apt sources: | ||
|
||
```shell | ||
dnf config-manager --add-repo https://gitea.example.com/api/packages/{owner}/rpm.repo | ||
``` | ||
|
||
| Placeholder | Description | | ||
| ----------- | ----------- | | ||
| `owner` | The owner of the package. | | ||
|
||
If the registry is private, provide credentials in the url. You can use a password or a [personal access token]({{< relref "doc/developers/api-usage.en-us.md#authentication" >}}): | ||
|
||
```shell | ||
dnf config-manager --add-repo https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/rpm.repo | ||
``` | ||
|
||
You have to add the credentials to the urls in the `rpm.repo` file in `/etc/yum.repos.d` too. | ||
|
||
## Publish a package | ||
|
||
To publish a RPM package (`*.rpm`), perform a HTTP PUT operation with the package content in the request body. | ||
|
||
``` | ||
PUT https://gitea.example.com/api/packages/{owner}/rpm/upload | ||
``` | ||
|
||
| Parameter | Description | | ||
| --------- | ----------- | | ||
| `owner` | The owner of the package. | | ||
|
||
Example request using HTTP Basic authentication: | ||
|
||
```shell | ||
curl --user your_username:your_password_or_token \ | ||
--upload-file path/to/file.rpm \ | ||
https://gitea.example.com/api/packages/testuser/rpm/upload | ||
``` | ||
|
||
If you are using 2FA or OAuth use a [personal access token]({{< relref "doc/developers/api-usage.en-us.md#authentication" >}}) instead of the password. | ||
You cannot publish a file with the same name twice to a package. You must delete the existing package version first. | ||
|
||
The server reponds with the following HTTP Status codes. | ||
|
||
| HTTP Status Code | Meaning | | ||
| ----------------- | ------- | | ||
| `201 Created` | The package has been published. | | ||
| `400 Bad Request` | The package is invalid. | | ||
| `409 Conflict` | A package file with the same combination of parameters exist already in the package. | | ||
|
||
## Delete a package | ||
|
||
To delete a Debian package perform a HTTP DELETE operation. This will delete the package version too if there is no file left. | ||
|
||
``` | ||
DELETE https://gitea.example.com/api/packages/{owner}/rpm/{package_name}/{package_version}/{architecture} | ||
``` | ||
|
||
| Parameter | Description | | ||
| ----------------- | ----------- | | ||
| `owner` | The owner of the package. | | ||
| `package_name` | The package name. | | ||
| `package_version` | The package version. | | ||
| `architecture` | The package architecture. | | ||
|
||
Example request using HTTP Basic authentication: | ||
|
||
```shell | ||
curl --user your_username:your_token_or_password -X DELETE \ | ||
https://gitea.example.com/api/packages/testuser/rpm/test-package/1.0.0/x86_64 | ||
``` | ||
|
||
The server reponds with the following HTTP Status codes. | ||
|
||
| HTTP Status Code | Meaning | | ||
| ----------------- | ------- | | ||
| `204 No Content` | Success | | ||
| `404 Not Found` | The package or file was not found. | | ||
|
||
## Install a package | ||
|
||
To install a package from the RPM registry, execute the following commands: | ||
|
||
```shell | ||
# use latest version | ||
dnf install {package_name} | ||
# use specific version | ||
dnf install {package_name}-{package_version}.{architecture} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.