このガイドでは、 APKとは何かについて説明します パッケージマネージャーと、Apkコマンドラインパッケージマネージャーを使用してさまざまなAlpineLinuxパッケージ管理操作を実行する方法と例。
apkパッケージマネージャーの簡単な紹介
APK、 Aの略 lpine P ackage K eeperは、AlpineLinuxのデフォルトのパッケージマネージャーです。これは、実行中のAlpine Linuxシステムでパッケージをインストール、更新、アップグレード、検索、一覧表示、および削除するために使用されます。 Apkはapk-tools
の一部です すべてのAlpineLinuxバージョンにプリインストールされているパッケージ。
Apkは、オンラインリポジトリで利用可能なパッケージに関する情報だけでなくパッケージも取得します。各リポジトリには、 APKINDEX.tar.gz
という名前の特別なインデックスファイルが含まれています 。リポジトリに保存されているすべてのソフトウェアパッケージは、デジタル署名された tar.gz
アーカイブ。拡張子は.apk
です。 、およびしばしば「a-packs」と呼ばれます 。
Alpine Linuxバージョン3.3以降、デフォルトで2つのリポジトリが有効になっています。それらは-main
およびコミュニティ
。
[メイン]コード> リポジトリは、Alpine Linuxコアチームによって徹底的にテストされ、公式にサポートされているパッケージで構成されています。
[コミュニティ]
リポジトリには、 [testing]
から受け入れられるコミュニティでサポートされているパッケージが含まれています または[edge]
リポジトリ。 [testing]
リポジトリには通常、新しいパッケージ、壊れたパッケージ、古いパッケージがあります。このリポジトリはサポートされておらず、リリーススナップショットには含まれていません。
すべてのリポジトリは/etc / apk / repository
で構成されます ファイル。 cat
を使用してこのファイルの内容を見てみましょう コマンド:
$ cat /etc/apk/repositories
出力例:
https://sjc.edge.kernel.org/alpine/edge/main
https://sjc.edge.kernel.org/alpine/edge/community

上記のファイルの各行は、リポジトリを示しています。上記の出力でわかるように、 [edge]
を有効にしました リポジトリなので、ローリングリリースバージョンです。
安定版リリースを使用している場合は、バージョン番号( v3.12
など)が表示されているはずです。 、以下のように:
https://sjc.edge.kernel.org/alpine/v3.12/main
https://sjc.edge.kernel.org/alpine/v3.12/community
AlpineLinuxでパッケージをインストールおよび管理するためのApkコマンドの例
Alpine Linuxでapkを使用したパッケージ管理は、非常にシンプルで簡単です。 Apkには多くのオプションが含まれておらず、構文は覚えやすいです。
apkパッケージマネージャーの一般的な使用法は次のとおりです。
apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]
日常業務のためのいくつかの重要なコマンドを紹介します。
1。 apkコマンドヘルプを表示する
apkを初めて使用する場合は、次のコマンドを実行することで、いつでもapkコマンドのヘルプセクションを表示できます。
$ apk --help
apkには、特定の操作を実行するための多くのサブコマンドがあります。サブコマンドのヘルプセクションを表示するには、次のコマンドを実行します。
$ apk add --help
2。 AlpineLinuxのパッケージリストを更新する
Alpine Linuxリポジトリで利用可能なパッケージのリストを取得するには、次のコマンドを実行するだけです。
$ sudo apk update
出力例:
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

上記の出力でわかるように、現在 13780があります Alpineリポジトリで利用可能なパッケージ。これらはローカルにインストールされたパッケージの総数ではなく、利用可能なパッケージの総数であることに注意してください。
3。 AlpineLinuxにパッケージをインストールする
パッケージを追加またはインストールするには、たとえば vim 、Alpine Linuxでは、次のコマンドを実行するだけです:
$ sudo apk add vim
上記のコマンドはvimとその依存関係をインストールします。
(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

同様に、以下のようにスペースを入れて複数のパッケージに言及することで、複数のパッケージを追加できます。
$ sudo apk PackageName1 PackageName2
3.1。ローカルパッケージをインストールする
すでにパッケージをダウンロードしている場合は、以下のようにインストールできます。
$ sudo apk add --allow-untrusted vim-8.2.2137-r0.apk
複数のパッケージをインストールすることもできます:
$ sudo apk add --allow-untrusted PackageName1.apk PackageName2.apk PackageName3.apk
4。 AlpineLinuxでパッケージを削除する
インストールされているパッケージをAlpineLinuxシステムからアンインストールまたは削除するには、次のコマンドを実行します。
$ sudo apk del vim
このコマンドはvimとその依存関係を削除します。
(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

複数のパッケージを削除する場合は、スペースで区切って言及してください。
5。 AlpineLinuxでパッケージを検索する
Alpine Linuxリポジトリには、13,000を超えるパッケージが含まれています。次のコマンドを使用して、使用可能なすべてのパッケージとその説明を一覧表示できます。
$ apk search -v
出力例:
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
[...]
パッケージの総数のみを表示するには、出力を wc
にパイプします 以下のようなコマンド:
$ apk search -v | wc -l
パターンに一致するすべてのパッケージのリストを取得することもできます。たとえば、次のコマンドは、検索語「vim」に一致するすべてのパッケージを表示します。
$ apk search -v 'vim*'
説明に特定の用語が含まれているパッケージのみを表示する場合 、実行:
$ apk search -v --description 'disk'
または、すぐに -d
を使用します スイッチ:
$ apk search -v -d 'disk'
6。 AlpineLinuxでパッケージの詳細を表示する
特定のパッケージの詳細を表示するには、 info
を使用できます 以下のようなコマンド:
$ apk info vim
指定されたパッケージの簡単な説明と、それがホストされているWebサイトが表示されます。
出力例:
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

ご覧のとおり、このコマンドはvimパッケージの詳細だけでなく、名前にパターン「vim」を含む他のパッケージの詳細も一覧表示します。
特定のパッケージとその依存関係に関する詳細情報が必要な場合は、 -a
を使用してください フラグ。
$ apk info -a vim
上記のコマンドは、次の詳細を表示します。
- パッケージの説明。
- パッケージのウェブサイト。
- インストールされたサイズ(つまり、パッケージがインストールされた後にパッケージに必要なサイズ)。
- パッケージの内容(つまり、パッケージがインストールするファイルのリスト)。
- パッケージの依存関係、つまり、これを使用するために必要なパッケージ。
- これをインストールするために必要なパッケージ
- その他
7。 AlpineLinuxにインストールされているパッケージを一覧表示する
Alpine Linuxシステムにインストールされているすべてのパッケージのリストを表示するには、次のコマンドを実行します。
$ apk info
出力例:
lm_sensors
man
virtualbox-guest-modules-virt
musl
libcrypto1.1
libssl1.1
apk-tools
musl-utils
busybox
alpine-baselayout
[...]
インストールされているパッケージをバージョン番号と説明とともに一覧表示することもできます:
$ apk info -vv
出力例:
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
[...]
インストールされているパッケージの総数のみを一覧表示します:
$ apk info | wc -l
87
8。 AlpineLinuxでパッケージをアップグレードする
特定のパッケージをアップグレードするには、次のコマンドを実行します:
$ sudo apk update
$ sudo apk add -u vim
または、
$ sudo apk add --upgrade vim
インストールされているすべてのパッケージをアップグレードするには、次のコマンドを実行します:
$ sudo apk update
$ sudo apk upgrade
上記のコマンドを次のようなコマンドに組み合わせることもできます。
$ sudo apk -U upgrade

9。 AlpineLinuxをアップグレードする
実行中のAlpineLinuxを次に利用可能なバージョンにアップグレードするのは簡単です。 Alpine Linuxには2つのエディションがあります:
- 安定
- ローリングリリース(エッジ)
現在の安定バージョンから新しいバージョンにアップグレードするか、安定バージョンをローリングリリースバージョンに変換することができます。
詳細な手順については、次のガイドをご覧ください。
- AlpineLinuxを最新バージョンにアップグレードする方法
10。アップグレードからパッケージを保持する
Alpine Linuxシステムをアップグレードするときに、何らかの理由でパッケージが自動的にアップグレードされないようにしたい場合があります。パッケージを差し控える理由はたくさんあります。たとえば、アプリケーションが正しく機能するには、特定のバージョンが必要です。または、新しいパッケージによってシステムが破損する可能性があります。したがって、システムをアップグレードするときにパッケージがアップグレードされないようにする必要があります。
アップグレードから特定のパッケージを保持するには、次のコマンドのいずれかを使用します。
$ sudo apk add vim=8.2.0-r0
または、
$ sudo apk add 'vim<8.2.1'
次に、コマンドを使用してシステムアップグレードを実行します:
$ sudo apk upgrade
このコマンドはすべてのパッケージをアップグレードしますが、vimパッケージは8.2.0以下のバージョンのままにします。
後でvimパッケージを以下のように現在利用可能なバージョンにアップグレードできます:
$ sudo apk add 'vim>8.2.1'
「ファジー」バージョンマッチングを使用して、バージョンをメジャー/マイナーリリースに固定することもできます。たとえば、次のコマンドは8.2で始まるvimのすべてのバージョンに一致します。
$ sudo apk add 'vim=~8.2'
関連記事:
- ArchLinuxでのアップグレードからパッケージを無視する方法
- Debian、Ubuntuでパッケージがアップグレードされないようにする方法
11。 AlpineLinuxでパッケージをダウンロードする
特定のパッケージをダウンロードしたいが、インストールしたくない場合があります。たとえば、次のコマンドを使用してvimパッケージをダウンロードしましょう:
$ apk fetch vim
上記のコマンドは、Alpineリポジトリからのvimパッケージを表示し、現在のディレクトリに保存します。
$ ls
vim-8.2.2137-r0.apk
パッケージを別のパスに保存する場合は、 -o
を使用します スイッチ。
$ apk fetch vim -o ~/Downloads
このコマンドは、必要なすべての依存関係をダウンロードするのではなく、実際のパッケージのみをダウンロードすることに注意してください。
指定されたパッケージを必要なすべての依存関係とともにダウンロードするには、 -R
を使用します (-再帰的
)フラグ:
$ apk fetch -R vim
出力例:
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
3.1に示すように、ローカルにダウンロードされたパッケージをインストールできます。ローカルパッケージをインストールする セクション。
12。パッケージのリポジトリの詳細を表示する
パッケージがどのリポジトリからのものかを調べたい場合があります。 Apkにはそのためのサブコマンドもあります。
リポジトリにパッケージを表示するには(例: vim
)からインストールされ、から更新されます。 apk policy
を使用してください コマンド:
$ apk policy vim
出力例:
vim policy:
8.2.2137-r0:
lib/apk/db/installed
etc/apk/cache
https://sjc.edge.kernel.org/alpine/edge/main
ご覧のとおり、vimパッケージは [main]
からインストールされています リポジトリ。
13。パッケージとリポジトリの統計を表示する
次のコマンドを使用して、インストールされているパッケージとパッケージリポジトリに関する統計を出力できます。
$ apk stats
出力例:
installed:
packages: 87
dirs: 485
files: 9617
bytes: 171270144
triggers: 5
available:
names: 30975
packages: 13773
atoms:
num: 9761
14。パッケージキャッシュをクリーンアップする
デフォルトでは、インストールされているすべてのパッケージは / etc / apk / cache /
にキャッシュされます ディレクトリ。新しいパッケージがキャッシュに追加されると、デフォルトでは古いバージョンのパッケージが残ります。
古いバージョンのパッケージが必要ない場合は、次のコマンドを使用してパッケージキャッシュをクリアできます。
$ sudo apk cache clean
削除されたバージョンを確認するには、-v(詳細)スイッチを使用します。
$ sudo apk -v cache clean
誤ってキャッシュからパッケージを削除してしまった場合は、次のコマンドを使用してパッケージをダウンロードできます。
$ sudo apk cache download
キャッシュを削除して、不足しているパッケージを1つのコマンドでダウンロードすることもできます。
$ sudo apk cache -v sync
これがお役に立てば幸いです。