Linux常用包管理及命令

简介

在Linux上,安装软件的方式一般有几种:系统包管理器安装、源码编译、二进制包,还有现在桌面系统用比较多的Snap、AppImage、Flatpak等。

Linux包管理

DPKG

dpkg是Debian系的包管理系统,包后缀名是.deb。

apt命令可以快速安装dpkg包,解决包与包的依赖关系。

常用命令:

# 从软件源同步最新的软件信息并缓存到本地 
apt update 
# 安装指定的包,并同时安装其依赖的其他包。 
apt install [package] 
# 更新软件版本 
apt upgrade 
# 查找软件,没有添加参数就是展示所有的软件包,加关键字就是搜索指定的包 
apt list zlib* 
# 列出已经安装的软件版本 
apt list --installed 
# 关键字搜索软件的名称和描述 
apt search zlib* 
# 卸载包,但是配置文件还是会保存着 
apt remove [package] 
# 卸载包,并删除配置文件 
apt purge [package] 
# 卸载因安装软件自动安装的依赖 
apt autoremove 
# 删除所有已下载的软件包 
apt clean 
# 类似clean,但删除的是过期的包(即已不能下载或者是无用的包) 
apt autoclean 

RPM

RPM是红帽系的包管理系统,包后缀名是.rpm。

yum就是类似apt一样的前端工具,可以很好地解决包与包之间的依赖关系。

dnf是yum的升级版本,是下一代的yum。dnf与yum的参数基本一致。

常用命令:

# 安装软件,-y 表示直接安装不询问 
yum -y install nginx 
# 重新安装 
yum reinstall nginx 
# 查找软件 
yum list nginx 
# 查看包组(后面不加组名,就会列出所有的组) 
yum grouplist 
#根据关键字查找 
yum search nginx 
#根据文件路径查找包名,如果不知道文件具体路径也可以用通配符进行匹配 
yum provides  /usr/bin/vim 
yum provides  */vim 
#检查更新 
yum check-update 
# 更新软件,如果不执行包名就是更新所有的包 
yum -y update 
#如果不更新指定的包可以使用-x参数 
yum -y update -x nginx 
# 卸载 
yum remove nginx 
# 卸载并删除配置 
yum erase nginx 
#更新索引,可以加快查找依赖包的速度 
yum makecache 

Pacman

Pacman是Arch系的包管理系统,新版本包后缀名是.pkg.tar.zst,之前的版本是.pkg.tar.xz。

常用命令:

# 更新系统 
pacman -Syu 
#  将本地的包数据库与远程的仓库进行了同步 
pacman -Sy  
pacman -Su 
# 安装包 
pacman -S  [package] 
# 更新仓库并安装包 
pacman -Sy [package] 
# 更新本地包,一般用于降级,如果是url会自动去下载 
pacman -U /var/cache/pacman/pkg/yay-10.1.2-1-x86_64.pkg.tar.zst 
# 只删除包,保留其全部已经安装的依赖关系 
pacman -R  [package] 
# 在删除包的同时,删除其所有没有被其他已安装软件包使用的依赖关系 
pacman -Rs [package] 
#在删除包的同时,删除所有依赖这个软件包的程序 
pacman -Rsc [package] 
# ]在删除包时不检查依赖 
pacman -Rd [package 
#在仓库中搜索含关键字的包 
pacman -Ss 关键字 
# 搜索已安装的包 
pacman -Qs 关键字 
#查看有关包的详尽信息 
pacman -Qi 包名 
#列出该包的文件 
pacman -Ql 包名 
#只下载包,不安装 
pacman -Sw 包名 
#清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录 
pacman -Sc 
#清理所有的缓存文件 
pacman -Scc 

apk

Alpine使用apk进行包管理,通过apk –help命令查看完整的包管理命令。

常用命令:

# 从远程镜像源中更新本地镜像源索引 
apk   update: 
# 安装包 
apk add openssh openntp vim 
apk add --no-cache mysql-client 
apk add docker --update-cache --repository http://mirrors.ustc.edu.cn/alpine/v3.4/main/ --allow-untrusted 
#安装指定版本软件包 
apk add asterisk=1.6.0.21-r0 
apk add 'asterisk1.6.1' 
 # 卸载并删除 
apk del openssh openntp vim 
#升级软件 
apk upgrade  
 #指定升级部分软件包 
apk add --upgrade busybox 
#查找所以可用软件包 
apk search  
#查找所以可用软件包及其描述内容 
apk search -v 
#通过软件包名称查找软件包 
apk search -v 'nginx*'  
#通过描述文件查找特定的软件包 
apk search -v -d 'docker'  
#列出所有已安装的软件包 
apk info  
#显示完整的软件包信息 
apk info -a zlib  
#显示指定文件属于的包 
apk info --who-owns /sbin/lbu  

其他管理器

还有其他的包管理器,只是我没用过。

Zypper 是openSUSE包管理器。 Portage是Gentoo包管理器。