web-dev-qa-db-ja.com

AlpineLinuxの「--updateadd」コマンドの説明

Dockerfileを理解しようとしています https://hub.docker.com/r/rdsubhas/tor-privoxy-Alpine/~/dockerfile/ これにはRUNエグゼクティブが含まれていますと

apk --update add privoxy tor@testing runit@testing

apkコマンドがどのように使用されているかについての理解を確認したかったので、次のようにAlpine環境でターミナルを開いてみました。

docker run -it --rm Alpine:latest /bin/ash

その後、apkを実行して、その使用法を確認しました。

/ # apk
apk-tools 2.6.8, compiled for x86_64.

usage: apk COMMAND [-h|--help] [-p|--root DIR] [-X|--repository REPO]
           [-q|--quiet] [-v|--verbose] [-i|--interactive] [-V|--version]
           [-f|--force] [-U|--update-cache] [--progress] [--progress-fd FD]
           [--no-progress] [--purge] [--allow-untrusted] [--wait TIME]
           [--keys-dir KEYSDIR] [--repositories-file REPOFILE] [--no-network]
           [--no-cache] [--Arch ARCH] [--print-Arch] [ARGS]...

The following commands are available:
  add       Add PACKAGEs to 'world' and install (or upgrade) them, while
            ensuring that all dependencies are met
  del       Remove PACKAGEs from 'world' and uninstall them
  fix       Repair package or upgrade it without modifying main dependencies
  update    Update repository indexes from all remote repositories
  info      Give detailed information about PACKAGEs or repositores
  search    Search package by PATTERNs or by indexed dependencies
  upgrade   Upgrade currently installed packages to match repositories
  cache     Download missing PACKAGEs to cache and/or delete unneeded files
            from cache
  version   Compare package versions (in installed database vs. available) or
            do tests on literal version strings
  index     Create repository index file from FILEs
  fetch     Download PACKAGEs from global repositories to a local directory
  audit     Audit the directories for changes
  verify    Verify package integrity and signature
  dot       Generate graphviz graphs
  policy    Show repository policy for packages
  stats     Show statistics about repositories and installations

Global options:
  -h, --help              Show generic help or applet specific help
  -p, --root DIR          Install packages to DIR
  -X, --repository REPO   Use packages from REPO
  -q, --quiet             Print less information
  -v, --verbose           Print more information (can be doubled)
  -i, --interactive       Ask confirmation for certain operations
  -V, --version           Print program version and exit
  -f, --force             Do what was asked even if it looks dangerous
  -U, --update-cache      Update the repository cache
  --progress              Show a progress bar
  --progress-fd FD        Write progress to fd
  --no-progress           Disable progress bar even for TTYs
  --purge                 Delete also modified configuration files (pkg
                          removal) and uninstalled packages from cache (cache
                          clean)
  --allow-untrusted       Install packages with untrusted signature or no
                          signature
  --wait TIME             Wait for TIME seconds to get an exclusive repository
                          lock before failing
  --keys-dir KEYSDIR      Override directory of trusted keys
  --repositories-file REPOFILE Override repositories file
  --no-network            Do not use network (cache is still used)
  --no-cache              Read uncached index from network
  --Arch ARCH             Use architecture with --root
  --print-Arch            Print default Arch and exit

This apk has coffee making abilities.

問題は、このドキュメントに--updateオプションが表示されていないことです(--update-cacheのみ)。

私が思うに、apk --update add [package]は単にapk updateの略記であり、その後にapk add [package]が続きます。誰かがこれを確認できますか?

10
Kurt Peek

要するに:

To get the latest list of available packages, use the update command.

これは、apt-get updateの前に行うDebianapt-get install my_packageに似ています。

から https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management#Update_the_Package_list

エキス

パッケージリストを更新する

パッケージが追加およびアップグレードされると、リモートリポジトリが変更されます。使用可能なパッケージの最新リストを取得するには、updateコマンドを使用します。このコマンドは、各リポジトリからAPKINDEX.tar.gzをダウンロードし、ローカルキャッシュ(通常は/ var/cache/apk /、/ var/lib/apk /、または/ etc/apk/cache /)に保存します。

aPKアップデート

ヒント:リモートリポジトリを使用している場合は、追加またはアップグレードコマンドを実行する直前に更新を実行することをお勧めします。そうすれば、利用可能な最新のソフトウェアを使用していることがわかります。

3
user2915097

https://github.com/gliderlabs/docker-Alpine/pull/5 を参照してください

apk--updateフラグは実際には--update-cacheです。

APKはgetopt_long(3)を使用します https://github.com/alpinelinux/apk-tools/blob/v2.10.3/src/apk.c#L574

したがって、-updateフラグはgetopt_longによって--update-cacheから省略されるだけです。

省略形が一意である場合、または定義されたオプションと完全に一致する場合は、長いオプション名を省略できます。

6
mtgto