On this page
Naming
A package's name identifies it within a repository and across all repositories that may serve it. Two packages with the same name installed simultaneously is a conflict (§4.1).
§2.1.1 Character set
Package names MUST consist of ASCII characters from the following set:
- Lowercase letters
athroughz - Digits
0through9 - Hyphen
- - Period
. - Plus sign
+
Package names MUST NOT contain uppercase letters, whitespace, underscores, or any character outside the set above.
§2.1.2 Structural constraints
Package names MUST start with a lowercase letter or digit.
Package names MUST end with a lowercase letter or digit.
Package names MUST NOT contain two consecutive separator
characters (--, .., ++, -., .+, etc.).
Package names MUST be at least 2 characters long.
Package names MUST NOT exceed 64 characters.
libstdc++), architecture
prefixes (lib32-foo), and dotted module names
(python3.example). Underscores are excluded to keep the
filename separator (§2.1.4) unambiguous.§2.1.3 Case sensitivity
Package names are case-sensitive. Because uppercase letters are forbidden, this is equivalent to byte-for-byte equality.
§2.1.4 Filename convention
A package file's name on disk and in URLs MUST follow the format:
<name>_<version>_<architecture>.peipkg
Where:
<name>is the package name.<version>is the full version string (§2.2).<architecture>is the architecture identifier (§2.3).- The separator between fields is the underscore (
_). - The file extension is
.peipkg.
Examples:
nginx_1.26.2-3_x86_64.peipkg
jq_1.7.1-2_x86_64.peipkg
peios-docs_0.22-1_noarch.peipkg
libstdc++_13.2.1-4_x86_64.peipkg
The underscore separator is REQUIRED and MUST NOT appear within any field. This makes filenames unambiguously parseable: the first underscore separates name from version, the last underscore separates version from architecture.
§2.1.5 Sub-package conventions
Packages that ship related but separable content SHOULD be named using a hyphen-suffix convention:
| Suffix | Purpose |
|---|---|
-doc |
Documentation, man pages, examples |
-debug |
Debug symbols |
-dev |
Headers, static libraries, build dependencies |
These conventions are advisory. The package format does not enforce them, and other suffixes MAY be used for other purposes.