Diese Anleitung erklärt, was Apk ist Paket-Manager und wie man verschiedene Alpine Linux-Paketverwaltungsoperationen mit dem Apk-Befehlszeilen-Paket-Manager mit Beispielen ausführt.
Eine kurze Einführung in den apk-Paketmanager
Apk, steht für A lpine P Paket K eeper ist der Standard-Paketmanager für Alpine Linux. Es wird verwendet, um Pakete auf einem laufenden Alpine Linux-System zu installieren, zu aktualisieren, zu aktualisieren, zu suchen, aufzulisten und zu entfernen. Apk ist der Teil von apk-tools
Paket, das in allen Alpine Linux-Versionen vorinstalliert ist.
Apk ruft Pakete sowie Informationen über verfügbare Pakete in den Online-Repositories ab. Jedes Repository enthält eine spezielle Indexdatei namens APKINDEX.tar.gz
. Alle in einem Repository gespeicherten Softwarepakete sind digital signiert tar.gz
Archiv. Sie haben die Erweiterung .apk
, und werden oft als "A-Packs" bezeichnet .
Ab Alpine Linux Version 3.3 sind standardmäßig zwei Repositories aktiviert. Sie sind - main
und community
.
Der [main]
Das Repository besteht aus den Paketen, die vom Alpine Linux-Kernteam gründlich getestet und offiziell unterstützt werden. Die [community]
Das Repository enthält die von der Community unterstützten Pakete, die von [testing]
akzeptiert werden oder [edge]
Repository. Der [testing]
Repository enthalten normalerweise die neuen, kaputten und/oder veralteten Pakete. Für dieses Repository wird keine Unterstützung bereitgestellt und es ist nicht in den Release-Snapshots enthalten.
Alle Repositories werden in /etc/apk/repositories
konfiguriert Datei. Schauen wir uns den Inhalt dieser Datei mit cat
an Befehl:
$ cat /etc/apk/repositories
Beispielausgabe:
https://sjc.edge.kernel.org/alpine/edge/main
https://sjc.edge.kernel.org/alpine/edge/community
Jede Zeile in der obigen Datei gibt ein Repository an. Wie Sie in der obigen Ausgabe sehen können, habe ich [edge]
aktiviert Repository, es handelt sich also um eine Rolling-Release-Version.
Wenn Sie eine stabile Version verwenden, sollten Sie die Versionsnummer gesehen haben, zum Beispiel v3.12
, wie unten:
https://sjc.edge.kernel.org/alpine/v3.12/main
https://sjc.edge.kernel.org/alpine/v3.12/community
Apk-Befehlsbeispiele zum Installieren und Verwalten von Paketen in Alpine Linux
Die Paketverwaltung mit apk in Alpine Linux ist recht einfach und unkompliziert. Apk enthält nicht viele Optionen und die Syntax ist leichter zu merken.
Die typische Verwendung des apk-Paketmanagers ist:
apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]
Lassen Sie mich Ihnen einige wichtige Befehle für den täglichen Betrieb zeigen.
1. Hilfe zum apk-Befehl anzeigen
Wenn Sie neu bei apk sind, können Sie jederzeit den Hilfeabschnitt zum apk-Befehl anzeigen, indem Sie diesen Befehl ausführen:
$ apk --help
apk hat viele Unterbefehle, um eine bestimmte Operation auszuführen. Um den Hilfeabschnitt eines Unterbefehls anzuzeigen, führen Sie Folgendes aus:
$ apk add --help
2. Paketliste in Alpine Linux aktualisieren
Um die Liste der verfügbaren Pakete in den Alpine Linux-Repositories abzurufen, führen Sie einfach Folgendes aus:
$ sudo apk update
Beispielausgabe:
fetch https://sjc.edge.kernel.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
v20201218-310-g44bdae590f [https://sjc.edge.kernel.org/alpine/edge/main]
v20201218-333-ga9f7a8a644 [https://sjc.edge.kernel.org/alpine/edge/community]
OK: 13780 distinct packages available
Wie Sie in der obigen Ausgabe sehen können, sind es derzeit 13780 Pakete, die in Alpine-Repositories verfügbar sind. Bitte beachten Sie, dass dies nicht die Gesamtzahl der lokal installierten Pakete ist, sondern die Gesamtzahl der verfügbaren Pakete.
3. Pakete unter Alpine Linux installieren
Um ein Paket hinzuzufügen oder zu installieren, zum Beispiel vim , führen Sie unter Alpine Linux einfach Folgendes aus:
$ sudo apk add vim
Der obige Befehl installiert vim und seine Abhängigkeiten.
(1/3) Installing xxd (8.2.2137-r0)
(2/3) Installing lua5.3-libs (5.3.6-r0)
(3/3) Installing vim (8.2.2137-r0)
Executing busybox-1.32.0-r8.trigger
OK: 163 MiB in 87 packages
Ebenso können Sie mehrere Pakete hinzufügen, indem Sie sie mit einem Leerzeichen wie unten erwähnen:
$ sudo apk PackageName1 PackageName2
3.1. Lokale Pakete installieren
Wenn Sie bereits ein Paket heruntergeladen haben, können Sie es wie folgt installieren.
$ sudo apk add --allow-untrusted vim-8.2.2137-r0.apk
Sie können auch mehrere Pakete installieren:
$ sudo apk add --allow-untrusted PackageName1.apk PackageName2.apk PackageName3.apk
4. Pakete in Alpine Linux entfernen
Um ein installiertes Paket von Ihrem Alpine Linux-System zu deinstallieren oder zu entfernen, führen Sie Folgendes aus:
$ sudo apk del vim
Dieser Befehl entfernt vim und seine Abhängigkeiten.
(1/3) Purging vim (8.2.2137-r0)
(2/3) Purging xxd (8.2.2137-r0)
(3/3) Purging lua5.3-libs (5.3.6-r0)
Executing busybox-1.32.0-r8.trigger
OK: 144 MiB in 84 packages
Wenn Sie mehrere Pakete löschen möchten, erwähnen Sie sie durch Leerzeichen getrennt.
5. Pakete in Alpine Linux suchen
Alpine Linux-Repositories enthalten mehr als 13.000 Pakete. Mit dem Befehl:
können Sie alle verfügbaren Pakete zusammen mit ihrer Beschreibung auflisten$ apk search -v
Beispielausgabe:
kleopatra-20.08.3-r0 - Certificate Manager and Unified Crypto GUI
py3-libevdev-0.9-r0 - Python3 wrapper around the evdev library
telepathy-farstream-dev-0.6.2_git20190919-r0 - Telepathy GLib-based client library that uses Farstream to handle Call channels (development files)
vulkan-loader-1.2.137-r0 - Vulkan Installable Client Driver (ICD) Loader
mtd-utils-ubi-2.1.2-r0 - MTD utils (UBI and UBIFS commands)
hwids-udev-20201207-r0 - Hardware identification databases (udev integration)
py3-rsa-4.6-r0 - Pure-Python3 RSA implementation
[...]
Um nur die Gesamtzahl der Pakete anzuzeigen, leiten Sie die Ausgabe an wc
weiter Befehl wie unten:
$ apk search -v | wc -l
Sie können auch die Liste aller Pakete abrufen, die einem Muster entsprechen. Beispielsweise zeigt der folgende Befehl alle Pakete an, die mit dem Suchbegriff „vim“ übereinstimmen.
$ apk search -v 'vim*'
Wenn Sie nur die Pakete anzeigen möchten, die einen bestimmten Begriff in ihrer Beschreibung enthalten , ausführen:
$ apk search -v --description 'disk'
Oder verwenden Sie kurz -d
Schalter:
$ apk search -v -d 'disk'
6. Paketdetails in Alpine Linux anzeigen
Um die Details eines bestimmten Pakets anzuzeigen, können wir info
verwenden Befehl wie unten:
$ apk info vim
Sie sehen die kleine Beschreibung des angegebenen Pakets und seiner Website, auf der es gehostet wird.
Beispielausgabe:
vim-8.2.2137-r0 description:
Improved vi-style text editor
vim-8.2.2137-r0 webpage:
https://www.vim.org/
vim-8.2.2137-r0 installed size:
18 MiB
gvim-8.2.2137-r0 description:
advanced text editor, with GUI
gvim-8.2.2137-r0 webpage:
https://www.vim.org/
gvim-8.2.2137-r0 installed size:
29 MiB
Wie Sie sehen können, listet dieser Befehl nicht nur die vim-Paketdetails auf, sondern auch die Details der anderen Pakete, die das Muster "vim" in ihrem Namen enthalten.
Wenn Sie detaillierte Informationen über das angegebene Paket und seine Abhängigkeiten wünschen, verwenden Sie -a
Flagge.
$ apk info -a vim
Der obige Befehl zeigt die folgenden Details an:
- Paketbeschreibung.
- Website des Pakets.
- installierte Größe (d. h. die Größe, die das Paket nach der Installation benötigt).
- den Inhalt des Pakets (d.h. Liste der Dateien, die das Paket installiert).
- Paketabhängigkeiten, d. h. welche Pakete erforderlich sind, um dieses zu verwenden.
- welche Pakete erfordern, dass dieses installiert wird.
- und mehr.
7. Installierte Pakete in Alpine Linux auflisten
Um eine Liste aller installierten Pakete in Ihrem Alpine Linux-System anzuzeigen, führen Sie Folgendes aus:
$ apk info
Beispielausgabe:
lm_sensors
man
virtualbox-guest-modules-virt
musl
libcrypto1.1
libssl1.1
apk-tools
musl-utils
busybox
alpine-baselayout
[...]
Sie können auch die installierten Pakete mit ihrer Versionsnummer und Beschreibung auflisten:
$ apk info -vv
Beispielausgabe:
lm_sensors-3.4.0-r6 - Collection of user space tools for general SMBus access and hardware monitoring.
man-1.14.3-r0 - dummy package for upgrade compatibility. this can safely be removed
virtualbox-guest-modules-virt-4.14.167-r0 - VirtualBox Additions kernel modules for virt
musl-1.2.2_pre6-r0 - the musl c library (libc) implementation
libcrypto1.1-1.1.1i-r0 - Crypto library from openssl
libssl1.1-1.1.1i-r0 - SSL shared libraries
apk-tools-2.12.0-r3 - Alpine Package Keeper - package manager for alpine
musl-utils-1.2.2_pre6-r0 - the musl c library (libc) implementation
busybox-1.32.0-r8 - Size optimized toolbox of many common UNIX utilities
alpine-baselayout-3.2.0-r8 - Alpine base dir structure and init scripts
[...]
Nur die Gesamtzahl der installierten Pakete auflisten:
$ apk info | wc -l
87
8. Upgrade-Pakete in Alpine Linux
Um ein bestimmtes Paket zu aktualisieren, führen Sie Folgendes aus:
$ sudo apk update
$ sudo apk add -u vim
Oder,
$ sudo apk add --upgrade vim
Um alle installierten Pakete zu aktualisieren, führen Sie Folgendes aus:
$ sudo apk update
$ sudo apk upgrade
Sie können den obigen Befehl auch wie folgt kombinieren:
$ sudo apk -U upgrade
9. Aktualisieren Sie Alpine Linux
Das Upgrade eines laufenden Alpine Linux auf die nächste verfügbare Version ist einfach! Alpine Linux gibt es in zwei Editionen:
- stabil
- Rolling-Release (Edge)
Sie können entweder von der aktuellen stabilen Version auf eine neuere Version upgraden oder eine stabile Version in eine Rolling-Release-Version konvertieren.
Ausführlichere Anweisungen finden Sie in der folgenden Anleitung:
- So aktualisieren Sie Alpine Linux auf die neueste Version
10. Paket vom Upgrade zurückhalten
Manchmal möchten Sie verhindern oder zurückhalten, dass ein Paket aus irgendeinem Grund automatisch aktualisiert wird, wenn Sie Ihr Alpine Linux-System aktualisieren. Es kann viele Gründe geben, ein Paket zurückzuhalten. Beispielsweise benötigt eine Anwendung eine bestimmte Version, um ordnungsgemäß zu funktionieren. Oder das neue Paket kann Ihr System beschädigen. Sie möchten also ignorieren, dass die Pakete aktualisiert werden, wenn Sie das System aktualisieren.
Um ein bestimmtes Paket vom Upgrade abzuhalten, verwenden Sie einen der folgenden Befehle:
$ sudo apk add vim=8.2.0-r0
Oder,
$ sudo apk add 'vim<8.2.1'
Führen Sie dann das System-Upgrade mit dem Befehl:
durch $ sudo apk upgrade
Dieser Befehl aktualisiert alle Pakete, behält aber das vim-Paket auf Version 8.2.0 oder niedriger.
Sie können das vim-Paket später wie folgt auf die derzeit verfügbare Version aktualisieren:
$ sudo apk add 'vim>8.2.1'
Sie können auch einen "unscharfen" Versionsabgleich verwenden, um die Version an eine Haupt-/Nebenversion anzuheften. Beispielsweise passt der folgende Befehl auf jede Version von vim, die mit 8.2 beginnt.
$ sudo apk add 'vim=~8.2'
Verwandte Lektüre:
- Wie man verhindert, dass ein Paket in Arch Linux aktualisiert wird
- Wie man verhindert, dass ein Paket in Debian, Ubuntu aktualisiert wird
11. Pakete in Alpine Linux herunterladen
Manchmal möchten Sie ein bestimmtes Paket herunterladen, es aber nicht installieren. Lassen Sie uns zum Beispiel das vim-Paket mit dem Befehl herunterladen:
$ apk fetch vim
Der obige Befehl zeigt das vim-Paket aus den Alpine-Repositories an und speichert es im aktuellen Verzeichnis.
$ ls
vim-8.2.2137-r0.apk
Wenn Sie das Paket in einem anderen Pfad speichern möchten, verwenden Sie -o
wechseln.
$ apk fetch vim -o ~/Downloads
Bitte beachten Sie, dass dieser Befehl nicht alle erforderlichen Abhängigkeiten herunterlädt, sondern nur das eigentliche Paket.
Um das angegebene Paket zusammen mit allen erforderlichen Abhängigkeiten herunterzuladen, verwenden Sie -R
(--recursive
) Flagge:
$ apk fetch -R vim
Beispielausgabe:
Downloading xxd-8.2.2137-r0
Downloading ncurses-libs-6.2_p20201219-r0
Downloading musl-1.2.2_pre6-r0
Downloading lua5.3-libs-5.3.6-r0
Downloading vim-8.2.2137-r0
Downloading ncurses-terminfo-base-6.2_p20201219-r0
Sie können die lokal heruntergeladenen Pakete wie in 3.1 gezeigt installieren. Lokale Pakete installieren Abschnitt.
12. Repository-Details eines Pakets anzeigen
Vielleicht möchten Sie herausfinden, aus welchem Repository ein Paket stammt. Apk hat auch dafür einen Unterbefehl.
Um das Repository anzuzeigen, wird ein Paket (z. B. vim
) installiert wurde und aktualisiert wird, verwenden Sie apk policy
Befehl:
$ apk policy vim
Beispielausgabe:
vim policy:
8.2.2137-r0:
lib/apk/db/installed
etc/apk/cache
https://sjc.edge.kernel.org/alpine/edge/main
Wie Sie sehen können, wurde das vim-Paket von [main]
installiert Repository.
13. Statistiken von Paketen und Repositories anzeigen
Wir können die Statistiken über installierte Pakete und Paket-Repositories mit dem Befehl ausdrucken:
$ apk stats
Beispielausgabe:
installed:
packages: 87
dirs: 485
files: 9617
bytes: 171270144
triggers: 5
available:
names: 30975
packages: 13773
atoms:
num: 9761
14. Paket-Cache leeren
Standardmäßig werden alle installierten Pakete in /etc/apk/cache/
zwischengespeichert Verzeichnis. Wenn neuere Pakete zum Cache hinzugefügt werden, bleiben die älteren Versionen der Pakete standardmäßig erhalten.
Wenn Sie die älteren Versionen der Pakete nicht möchten, können Sie einfach den Paketcache mit dem Befehl löschen:
$ sudo apk cache clean
Wenn Sie sehen möchten, welche Versionen gelöscht werden, verwenden Sie den Schalter -v (verbose):
$ sudo apk -v cache clean
Wenn Sie versehentlich Pakete aus dem Cache gelöscht haben, können Sie sie mit dem Befehl herunterladen:
$ sudo apk cache download
Sie können auch den Cache löschen und das fehlende Paket mit einem einzigen Befehl herunterladen:
$ sudo apk cache -v sync
Hoffe das hilft.