GNU/Linux >> Linux の 問題 >  >> Linux

AlpineLinuxApkコマンドの例

このガイドでは、 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

これがお役に立てば幸いです。


Linux
  1. 7 Linux df コマンドの例

  2. Linux での rm コマンドの例

  3. Linux での ps コマンドの例

  1. Linux での ac コマンドの例

  2. Linux での df コマンドの例

  3. Linux での du コマンドの例

  1. 8 Linux TR コマンドの例

  2. Linux での sa コマンドの例

  3. w Linux でのコマンド例