Alpine Linux 的“--update add”命令的解释
Explanation of the "--update add" command for Alpine Linux
我正在尝试了解 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]
只是 shorthand for apk update
然后是 apk add [package]
。谁能证实这一点?
简而言之:
To get the latest list of available packages, use the update command.
它类似于您在 apt-get install my_package
之前所做的 Debian apt-get update
。
来自 https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management#Update_the_Package_list:
extract
Update the Package list
Remote repositories change as packages are added and upgraded. To get the latest list of available packages, use the update command. The command downloads the APKINDEX.tar.gz from each repository and stores it in the local cache, typically /var/cache/apk/, /var/lib/apk/ or /etc/apk/cache/.
apk update
Tip: If using remote repositories, it is a good idea to do an update just before doing an add or upgrade command. That way you know you are using the latest software available.
见https://github.com/gliderlabs/docker-alpine/pull/503
apk --update flag is really --update-cache.
Apk uses getopt_long (3),
https://github.com/alpinelinux/apk-tools/blob/v2.10.3/src/apk.c#L574
So, --update flag is only abbreviated from --update-cache by getopt_long.
Long option names may be abbreviated if the abbreviation is unique or
is an exact match for some defined option.
我正在尝试了解 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]
只是 shorthand for apk update
然后是 apk add [package]
。谁能证实这一点?
简而言之:
To get the latest list of available packages, use the update command.
它类似于您在 apt-get install my_package
之前所做的 Debian apt-get update
。
来自 https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management#Update_the_Package_list:
extract
Update the Package list
Remote repositories change as packages are added and upgraded. To get the latest list of available packages, use the update command. The command downloads the APKINDEX.tar.gz from each repository and stores it in the local cache, typically /var/cache/apk/, /var/lib/apk/ or /etc/apk/cache/.
apk update
Tip: If using remote repositories, it is a good idea to do an update just before doing an add or upgrade command. That way you know you are using the latest software available.
见https://github.com/gliderlabs/docker-alpine/pull/503
apk --update flag is really --update-cache.
Apk uses getopt_long (3), https://github.com/alpinelinux/apk-tools/blob/v2.10.3/src/apk.c#L574
So, --update flag is only abbreviated from --update-cache by getopt_long.
Long option names may be abbreviated if the abbreviation is unique or is an exact match for some defined option.