Alpine Linux apk命令

时间:2019-11-20 08:54:13  来源:igfitidea点击:

如何使用apk命令进行包管理,删除、安装、升级或者列出正在运行的基于alpin linux的系统上的软件。

Alpine Linux是一个基于Linux的免费开源发行版。
Alpine Linux包扩展名通常为.apk,称为“a-packs”。
APK代表alpin linux包管理器。
apk命令相当于CentOS Linux上的Debian/Ubuntu上的apt command/apt get命令。

语法

在alpin linux操作系统安装、升级、配置和删除应用程序/程序使用apk命令。

基本语法如下:

apk [options] command
 apk [options] command pkgName
 apk [options] command pkgName1 pkgName2

Alpine Linux apk命令示例

如何更新软件包

要更新包列表,执行:

# apk update

Alpine如何搜索软件包

# apk search pkgName

例如,搜索名为htop的包,运行:

# apk search htop

要搜索并显示软件包说明:

# apk search -v -d 'htop'

输出示例:

htop-doc-2.0.2-r0 - An interactive process viewer (documentation)
htop-2.0.2-r0 - An interactive process viewer

列出所有可用的软件包及其说明

# apk search -v

输出示例:

gettext-0.19.8.1-r0 - GNU locale utilities
gst-plugins-base0.10-dev-0.10.36-r3 - GStreamer Multimedia Framework Base Plugins (development files)
xcb-util-keysyms-dev-0.4.0-r0 - Utility libraries for XC Binding - keysyms (development files)
openlibm-0.5.4-r0 - High quality system independent, portable, open source libm implementation
imapsync-doc-1.727-r1 - IMAP synchronisation, sync, copy or migration tool (documentation)
.....
..
....
nrpe-2.15-r4 - NRPE allows you to remotely execute Nagios plugins on other Linux/Unix machines.
py2-psycopg2-2.6.2-r1 - A Python-PostgreSQL Database Adapter (for python2)
perl-mime-types-2.13-r0 - Definition of MIME types
perl-net-http-doc-6.09-r0 - Net::HTTP perl module (documentation)

如何使用通配符搜索包?

搜索所有php7包或者php5包:

# apk search -v 'php5*'
 # apk search -v 'php7*'

输出示例:

php7-intl-7.0.16-r0 - PHP7 extension: intl
php7-openssl-7.0.16-r0 - PHP7 extension: openssl
php7-dba-7.0.16-r0 - PHP7 extension: dba
php7-sqlite3-7.0.16-r0 - PHP7 extension: sqlite3
php7-pear-7.0.16-r0 - PHP Extension and Application Repository
php7-phpdbg-7.0.16-r0 - Interactive PHP debugger
....
php7-sockets-7.0.16-r0 - PHP7 extension: sockets
php7-soap-7.0.16-r0 - PHP7 extension: soap
php7-apcu-5.1.8-r0 - PHP extension APC User Cache
php7-mysqli-7.0.16-r0 - PHP7 extension: mysqli

Alpine如何安装软件包

语法是:

# apk add pkgName
 # apk add pkgName1 pkgName2

例如,要安装htop包,请运行:

# apk add htop

要安装Apache2以及PHP7和模块,请运行:

# apk add apache2 php7-apache2 php7-gd php7-mysqli

如何保留特定包而不升级

如果我们想升级Alpine Linux系统,但保留或者持有特定的软件包,请添加版本号。

例如,要将bash包保持在5.0.0-r0版本或者更低级别,请运行:

# apk add bash=5.0.0-r0

将版本保存到主要/次要版本。例如:

# apk add bash=~5.0

现在,升级系统。apk将升级整个系统,将bash包保持在5.0.0-r0或者更低级别:

# apk upgrade

之后将bash升级到当前最新版本,运行:

# apk add bash>5.0.0-r0

如何安装本地.apk文件包?

语法如下:

# apk add --allow-untrusted /path/to/foo.apk
 apk add --allow-untrusted pkg1.apk pkg2.apk

如何按名称删除/卸载软件包

语法是:

# apk del pkgName
 # apk del pkgName1 pkgName2

例如,删除htop包运行:

# apk del htop

如何删除Alpine Linux上的旧包缓存?

要删除旧版本的包,运行clean命令,如下所示:

# apk cache clean
 ## 或者 ##
 # apk -v cache clean

清理缓存后,下载丢失的包:

# apk cache -v sync

如何升级正在运行的Alpine Linux

语法是:

# apk update && apk upgrade

如何只升级选定的软件包?

语法是

# apk add -u pkgName

仅升级到htop包:

# apk update
 # apk add -u htop

Alpine Linux如何列出已安装的软件包?

语法是:

# apk info
 # apk info -vv | grep 'foo'
 # apk info -vv | sort

Alpine Linux中如何找出命令文件属于哪个软件包。

查看/etc/passwd或者/sbin/apk的文件属于哪个包:

#   apk info --who-owns /etc/passwd
 /etc/passwd is owned by alpine-baselayout-3.0.4-r0
 #  apk info --who-owns /sbin/apk
 /sbin/apk is owned by apk-tools-2.6.8-r2

Alpine Linux中如何列出软件包的内容

# apk -L info pkgName
 # apk -L info htop

输出示例:

htop-2.0.2-r0 contains:
usr/bin/htop
usr/share/applications/htop.desktop
usr/share/pixmaps/htop.png

Alpine Linux中检查包是否安装

# apk -e info pkgName

查看atop包是否已安装
 # apk -e info atop

Alpine Linux中列出软件包所依赖的包

# apk -R info atop
 # apk -R info atop

Alpine Linux中列出和PACKAGE相关的所有软件包

# apk info -r pkgName
 # apk info -r bash

查看安装包的大小

# apk info -s pkgName
 # apk info -s atop

查看安装包说明

# apk info -d pkgName
 # apk info -d bash

Alpine Linux中查看安装包的所有信息

# apk info -a pkgName
 # apk info -a bash

如何查看有关存储库和安装的统计信息?

运行命令:

# apk stats

apk命令选项和示例

命令说明示例
apk update更新软件包列表apk update
apk upgrade升级系统apk update
apt ugrade
apk add pkg安装软件包apk add apache
apk del pkg卸载软件包apk del nginx
apk search -v搜索软件包apk search -v
apk search -v -d 'top*'
apk search -v 'nginx*'
apk info列出所有已安装的软件包apk info
apk fix不修改主依赖的情况下修复软件包apk fix
apk policy pkg查看软件包的存储库策略apk policy bash
apk stats查看软件包和存储库的统计信息apk stats