Skip to content

ALT Package Registry

Publish ALT packages for your user or organization.

To work with the ALT registry, you need to use a HTTP client like curl to upload and a package manager like apt-get to consume packages.

Note

In ALT Linux, the apt-get command is provided by APT-RPM, a version of APT adapted for RPM packages. This differs from the APT used in Debian or Ubuntu, which is designed for DEB packages.

The following examples use apt-get.

To register the RPM registry add the url to the list of known sources to the config file in the /etc/apt/sources.list.d/ directory:

Terminal window
rpm https://hoyoship.example.com/api/packages/{owner}/alt/{group}.repo {arch} classic
PlaceholderDescription
ownerThe owner of the package.
groupOptional: Everything, e.g. empty, example1, test/example1.
archArchitecture.

Example:

Terminal window
# without a group and architecture x86_64
rpm https://hoyoship.example.com/api/packages/testuser/alt/alt.repo x86_64 classic
# with the group 'example1' and architecture noarch
rpm https://hoyoship.example.com/api/packages/testuser/alt/group/example1.repo noarch classic

If the registry is private, provide credentials in the URL. You can use a password or a personal access token:

Terminal window
rpm https://{username}:{your_password_or_token}@hoyoship.example.com/api/packages/{owner}/alt/{group}.repo {arch} classic

You have to add the credentials to the URLs in the created .list file in /etc/apt/sources.list.d/ too.

To publish a RPM package (*.rpm), perform a HTTP PUT operation with the package content in the request body.

PUT https://hoyoship.example.com/api/packages/{owner}/alt/{group}/upload
ParameterDescription
ownerThe owner of the package.
groupOptional: Everything, e.g. empty, example1, test/example1.

Example request using HTTP Basic authentication:

Terminal window
# without a group
curl --user your_username:your_password_or_token \
--upload-file path/to/file.rpm \
https://hoyoship.example.com/api/packages/testuser/alt/upload
# with the group 'group/example1'
curl --user your_username:your_password_or_token \
--upload-file path/to/file.rpm \
https://hoyoship.example.com/api/packages/testuser/alt/group/example1/upload

If you are using 2FA or OAuth use a personal access token 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 responds with the following HTTP Status codes.

HTTP Status CodeMeaning
201 CreatedThe package has been published.
400 Bad RequestThe package is invalid.
409 ConflictA package file with the same combination of parameters exist already in the package.

To delete a RPM package perform a HTTP DELETE operation. This will delete the package version too if there is no file left.

DELETE https://hoyoship.example.com/api/packages/{owner}/alt/{group}.repo/{architecture}/RPMS.classic/{package_file_name.rpm}
ParameterDescription
ownerThe owner of the package.
groupOptional: The package group.
package_file_name.rpmThe package file name.
architectureThe package architecture.

Example request using HTTP Basic authentication:

Terminal window
# without a group
curl --user your_username:your_token_or_password -X DELETE \
https://hoyoship.example.com/api/packages/testuser/alt/alt.repo/x86_64/RPMS.classic/test-package.rpm
# with the group 'group/example1'
curl --user your_username:your_token_or_password -X DELETE \
https://hoyoship.example.com/api/packages/testuser/alt/group/example1.repo/x86_64/RPMS.classic/test-package.rpm

The server responds with the following HTTP Status codes.

HTTP Status CodeMeaning
204 No ContentSuccess
404 Not FoundThe package or file was not found.

To install a package from the RPM registry, execute the following commands:

Terminal window
# use latest version
apt-get install {package_name}
# use specific version
apt-get install {package_name}-{package_version}