Enable Community Repository: Difference between revisions

From Alpine Linux
mNo edit summary
(improved the information about package of community and testing)
Line 1: Line 1:


Alpine software repositories have main packages and contributions made. Each Alpine release have two brach of repositories. The '''/community''' repository of each Alpine release contains community supported packages that were accepted from the '''/testing''' repository. Only '''/main''' repository of each version of Alpine release are supported for some Main Alpine Developers and Man Powers.


The '''/community''' repository of each Alpine release contains community supported packages that were accepted from the testing repository.
* '''About the main packages''': Main packages are the Alpine package software that have direct support and updates from the Alpine core and main team, also have official special documentation. Are always available for all releases and will have almost substitutions if some are not continued from upstream. Commonly those packages are selected due their responsibility and stability respect upstream availability. Those are in ''testing'' and when performs well or are mature goes to ''main'' branch.
However, they are not supported beyond six months.
* '''About the contribution ones''': User package contribution repositories are those made by users in team with the official developers and well near integrated to the Alpine packages. Those have supported by those user contributions and could end if the user also ends respect with Alpine work, by example could not have substitution in next release due lack of support by upstream author. Those are in ''testing'' and when accepted goes to ''community'' branch.
* '''About the testing ones''': New packages come into testing or edge repositories and are those made by any contributor or man power on Alpine, the edge, this branch of repository has no release linked or related of Alpine. Those are in ''edge'' and when accepted goes to ''testing''.


To enable the repository, edit the file {{Path|/etc/apk/repositories}} using an editor ({{Pkg|nano}} for instance) and add (or uncomment) a line that points to the "community" directory, formatted as in:
== Usig community repositories of my release version ==
 
The '''community''' repository was introduced with Alpine Linux version 3.3. To enable the repository, edit the file {{Path|/etc/apk/repositories}} using an editor ({{Pkg|nano}} for instance) and add (or uncomment) a line that points to the "community" directory, formatted as in:


'''https://<mirror-server>/alpine/<version>/community'''
'''https://<mirror-server>/alpine/<version>/community'''
Line 11: Line 15:
{{Cmd|apk update}}
{{Cmd|apk update}}


-----
For newer or newbie user please better use the [[Alpine_newbie_apk_packages#enable_repository_packages|enable_repository_packages of Alpine_newbie_apk_packages]] wiki page.
 
=== Using specific version from testing or another version ===
 
You can set "sticky" versions like this:
 
* <code><nowiki>apk add packagename=1.2.3-suffix</nowiki></code>
* <code><nowiki>apk add 'packagename<1.2.3-suffix'</nowiki></code>
 
That will upgrade packages only until the specified version. You can then safely use <code>apk upgrade</code> to upgrade all packages, while packages with versions will remain with their version. To set a minimum version just use …
 
For newer or newbie user please better use the [[Alpine_newbie_apk_packages#enable_repository_packages|enable_repository_packages of Alpine_newbie_apk_packages]] wiki page.
 
 
== Usig testing repositories of my release version ==
 
The '''testing''' repository was introduced with Alpine Linux edge developmen. To enable the repository, edit the file {{Path|/etc/apk/repositories}} using an editor ({{Pkg|nano}} for instance) and add a line that points to the "testing" directory, formatted as in:
 
'''https://<mirror-server>/alpine/edge/testing'''
 
After enabling the testing repository, one needs to obtain the latest index of available packages with:
{{Cmd|apk update}}
 
Inexperienced users must do not enable this, is prefer to go to the [[Alpine_newbie_apk_packages#enable_repository_packages|enable_repository_packages of Alpine_newbie_apk_packages]] wiki page.
 
=== Using packages from testing (edge) ===
 
Never pin packages from the "edge" branch of the alpine package repo, as these are in test and may be revoked. (At pkgs.alpinelinux.org/packages, click "edge" and change it to the alpine image version you use, and click "search" again.)
 
Inexperienced users must do not enable this, is prefer to go to the [[Alpine_newbie_apk_packages#enable_repository_packages|enable_repository_packages of Alpine_newbie_apk_packages]] wiki page.
 
== NOTES about using package versions ==
 
Pinning a package to an exact version carries the risk that the package will be dropped from the repo, and your Dockerfile will fail to build in the future. The official recommendation can be read here, citation below.
 
Alternately, you could simply set a minimum package version instead of an exact version.


* [https://superuser.com/questions/1055060/how-to-install-a-specific-package-version-in-alpine How to install a specific package version in Alpine?]
We don't at the moment have resources to store all built packages indefinitely in our infra. Thus we currently keep only the latest for each stable branch, and has always been like that.
The '''community''' repository was introduced with Alpine Linux version 3.3, and required to enable it to continue to use some former '''main''' packages.


[[Category:Package Manager]]
[[Category:Package Manager]]

Revision as of 21:14, 12 July 2020

Alpine software repositories have main packages and contributions made. Each Alpine release have two brach of repositories. The /community repository of each Alpine release contains community supported packages that were accepted from the /testing repository. Only /main repository of each version of Alpine release are supported for some Main Alpine Developers and Man Powers.

  • About the main packages: Main packages are the Alpine package software that have direct support and updates from the Alpine core and main team, also have official special documentation. Are always available for all releases and will have almost substitutions if some are not continued from upstream. Commonly those packages are selected due their responsibility and stability respect upstream availability. Those are in testing and when performs well or are mature goes to main branch.
  • About the contribution ones: User package contribution repositories are those made by users in team with the official developers and well near integrated to the Alpine packages. Those have supported by those user contributions and could end if the user also ends respect with Alpine work, by example could not have substitution in next release due lack of support by upstream author. Those are in testing and when accepted goes to community branch.
  • About the testing ones: New packages come into testing or edge repositories and are those made by any contributor or man power on Alpine, the edge, this branch of repository has no release linked or related of Alpine. Those are in edge and when accepted goes to testing.

Usig community repositories of my release version

The community repository was introduced with Alpine Linux version 3.3. To enable the repository, edit the file /etc/apk/repositories using an editor (nano for instance) and add (or uncomment) a line that points to the "community" directory, formatted as in:

https://<mirror-server>/alpine/<version>/community

After enabling the community repository, one needs to obtain the latest index of available packages with:

apk update

For newer or newbie user please better use the enable_repository_packages of Alpine_newbie_apk_packages wiki page.

Using specific version from testing or another version

You can set "sticky" versions like this:

  • apk add packagename=1.2.3-suffix
  • apk add 'packagename<1.2.3-suffix'

That will upgrade packages only until the specified version. You can then safely use apk upgrade to upgrade all packages, while packages with versions will remain with their version. To set a minimum version just use …

For newer or newbie user please better use the enable_repository_packages of Alpine_newbie_apk_packages wiki page.


Usig testing repositories of my release version

The testing repository was introduced with Alpine Linux edge developmen. To enable the repository, edit the file /etc/apk/repositories using an editor (nano for instance) and add a line that points to the "testing" directory, formatted as in:

https://<mirror-server>/alpine/edge/testing

After enabling the testing repository, one needs to obtain the latest index of available packages with:

apk update

Inexperienced users must do not enable this, is prefer to go to the enable_repository_packages of Alpine_newbie_apk_packages wiki page.

Using packages from testing (edge)

Never pin packages from the "edge" branch of the alpine package repo, as these are in test and may be revoked. (At pkgs.alpinelinux.org/packages, click "edge" and change it to the alpine image version you use, and click "search" again.)

Inexperienced users must do not enable this, is prefer to go to the enable_repository_packages of Alpine_newbie_apk_packages wiki page.

NOTES about using package versions

Pinning a package to an exact version carries the risk that the package will be dropped from the repo, and your Dockerfile will fail to build in the future. The official recommendation can be read here, citation below.

Alternately, you could simply set a minimum package version instead of an exact version.

We don't at the moment have resources to store all built packages indefinitely in our infra. Thus we currently keep only the latest for each stable branch, and has always been like that.