Include:Upgrading to latest release: Difference between revisions

From Alpine Linux
Jump to navigation Jump to search
(Migrate text from "Upgrading to latest release")
 
m (Fixed typo.)
 
(18 intermediate revisions by 8 users not shown)
Line 1: Line 1:
An upgrade of a running Alpine Linux from a previous version to the latest stable version can be done in a few simple steps.
==== Repository Settings ====


Update the ''/etc/apk/repositories'' file
First thing is to to edit or check the {{Path|/etc/apk/repositories}} file.
:* Launch {{Cmd|setup-apkrepos}}
:* Press 'e' to edit your ''/etc/apk/repositories'' file
:* Change the version number to match the latest version by hand
: or  
:* Add the latest release repository to ''/etc/apk/repositories'': {{Cmd|echo http://dl-3.alpinelinux.org/alpine/<var>v2.4</var>/main >> /etc/apk/repositories}}
: or
:*just edit the file in-place (replace <var>v2.4</var> with your release): {{Cmd|sed -i -e 's/<var>v2.3</var>/<var>v2.4</var>/g' /etc/apk/repositories}}


Upgrade all packages in one shot: {{Cmd|apk upgrade -a -U}}
Besides doing it manually (see below) this may be done using one of the following shortcuts.
:* Launching the corresponding Alpine setup script, {{Cmd|setup-apkrepos}} and pressing {{Key|e}} to edit {{Path|/etc/apk/repositories}}. Then editing the repository lines to reflect the new version number.
:* Or, use a one-line command to edit all version numbers in the file "in place". Here's how you'd change <var>v2.5</var> to <var>v2.6</var>: {{Cmd|sed -i -e 's/<var>v2\.5</var>/<var>v2.6</var>/g' /etc/apk/repositories}}
 
Note, subsequent manual changes of the version numbers in {{Path|/etc/apk/repositories}} may be avoided for future release upgrades by having the repository lines refer to "latest-stable" instead of an absolute value:
 
{{Cmd|http://dl-3.alpinelinux.org/alpine/latest-stable/main
http://dl-3.alpinelinux.org/alpine/latest-stable/community}}
 
However, beware of initiating unexpected release upgrades.
 
Manual editing of {{Path|/etc/apk/repositories}}:
 
{{:Include:Using_Internet_Repositories_for_apk-tools}}
 
==== Upgrading packages ====
 
At times it is required to first upgrade just the Alpine Linux Package Manager itself to the latest available version, before upgrading any other package. This was the case, for example, when upgrading from a version of Alpine before 2.3.0_rc1. But  simply always doing so shouldn't hurt, either:
{{Cmd|apk add --upgrade apk-tools}}
 
Next, to upgrade all installed packages:
{{Cmd|apk upgrade --available}}
 
The <code>--available</code> switch is used to force all packages to be upgraded, even if they have the same version numbers. Sometimes changes in uClibc require doing this.
 
{{Note|All services that have been upgraded need to be restarted, to begin using the upgraded version. If the kernel is upgraded, it's required to reboot to begin using the upgraded version:
{{Cmd|sync
reboot}}
}}


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

Latest revision as of 20:00, 15 September 2022

Repository Settings

First thing is to to edit or check the /etc/apk/repositories file.

Besides doing it manually (see below) this may be done using one of the following shortcuts.

  • Launching the corresponding Alpine setup script,

    setup-apkrepos

    and pressing e to edit /etc/apk/repositories. Then editing the repository lines to reflect the new version number.
  • Or, use a one-line command to edit all version numbers in the file "in place". Here's how you'd change v2.5 to v2.6:

    sed -i -e 's/v2\.5/v2.6/g' /etc/apk/repositories

Note, subsequent manual changes of the version numbers in /etc/apk/repositories may be avoided for future release upgrades by having the repository lines refer to "latest-stable" instead of an absolute value:

http://dl-3.alpinelinux.org/alpine/latest-stable/main http://dl-3.alpinelinux.org/alpine/latest-stable/community

However, beware of initiating unexpected release upgrades.

Manual editing of /etc/apk/repositories:


Edit the /etc/apk/repositories file using an editor (nano for instance) and if necessary, add references to the Alpine package repositories. In the example below, the file references the Alpine CD, so that if a requested package is available on the local media, it will be obtained from there instead of being downloaded from the remote repository:

Contents of /etc/apk/repositories

/media/cdrom/apks http://dl-3.alpinelinux.org/alpine/v3.3/main

To upgrade, in this example, from version 3.3 to 3.4, simply change:

http://dl-3.alpinelinux.org/alpine/v3.3/main

to

http://dl-3.alpinelinux.org/alpine/v3.4/main

So that the file will look like this:

Contents of /etc/apk/repositories

/media/cdrom/apks http://dl-3.alpinelinux.org/alpine/v3.4/main
Note: Starting with version 3.3, there is a new repository called community. Many packages have been moved from the main repository to the community repository to indicate that they are not guaranteed to be supported beyond six months. If you are using any of these packages, be sure to add the community repository. For example: http://dl-3.alpinelinux.org/alpine/v3.3/community

Above, only one possible repository is shown, however, http://dl-3.alpinelinux.org/alpine/ may also be replaced with any geographically close mirror from: http://rsync.alpinelinux.org/alpine/MIRRORS.txt

Updating package lists

With the correct repositories file in place, the latest index list of available packages can be obtained with:

apk update

Tip: Adding the --update-cache or -U to another apk command, as in apk add -U ... or apk upgrade -U, has the same effect as always running apk update immediately before the other apk command. Instead of auto-update it only if the index has not been updated recently.

Upgrading packages

At times it is required to first upgrade just the Alpine Linux Package Manager itself to the latest available version, before upgrading any other package. This was the case, for example, when upgrading from a version of Alpine before 2.3.0_rc1. But simply always doing so shouldn't hurt, either:

apk add --upgrade apk-tools

Next, to upgrade all installed packages:

apk upgrade --available

The --available switch is used to force all packages to be upgraded, even if they have the same version numbers. Sometimes changes in uClibc require doing this.

Note: All services that have been upgraded need to be restarted, to begin using the upgraded version. If the kernel is upgraded, it's required to reboot to begin using the upgraded version:

sync reboot