Linux常用包管理及命令,


简介

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


Linux包管理

DPKG

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


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

常用命令:

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

RPM

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


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

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

常用命令:

  1. # 安装软件,-y 表示直接安装不询问 
  2. yum -y install nginx 
  3. # 重新安装 
  4. yum reinstall nginx 
  5. # 查找软件 
  6. yum list nginx 
  7. # 查看包组(后面不加组名,就会列出所有的组) 
  8. yum grouplist 
  9. #根据关键字查找 
  10. yum search nginx 
  11. #根据文件路径查找包名,如果不知道文件具体路径也可以用通配符进行匹配 
  12. yum provides  /usr/bin/vim 
  13. yum provides  */vim 
  14. #检查更新 
  15. yum check-update 
  16. # 更新软件,如果不执行包名就是更新所有的包 
  17. yum -y update 
  18. #如果不更新指定的包可以使用-x参数 
  19. yum -y update -x nginx 
  20. # 卸载 
  21. yum remove nginx 
  22. # 卸载并删除配置 
  23. yum erase nginx 
  24. #更新索引,可以加快查找依赖包的速度 
  25. yum makecache 

Pacman

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


常用命令:

  1. # 更新系统 
  2. pacman -Syu 
  3. #  将本地的包数据库与远程的仓库进行了同步 
  4. pacman -Sy  
  5. pacman -Su 
  6. # 安装包 
  7. pacman -S  [package] 
  8. # 更新仓库并安装包 
  9. pacman -Sy [package] 
  10. # 更新本地包,一般用于降级,如果是url会自动去下载 
  11. pacman -U /var/cache/pacman/pkg/yay-10.1.2-1-x86_64.pkg.tar.zst 
  12. # 只删除包,保留其全部已经安装的依赖关系 
  13. pacman -R  [package] 
  14. # 在删除包的同时,删除其所有没有被其他已安装软件包使用的依赖关系 
  15. pacman -Rs [package] 
  16. #在删除包的同时,删除所有依赖这个软件包的程序 
  17. pacman -Rsc [package] 
  18. # ]在删除包时不检查依赖 
  19. pacman -Rd [package 
  20. #在仓库中搜索含关键字的包 
  21. pacman -Ss 关键字 
  22. # 搜索已安装的包 
  23. pacman -Qs 关键字 
  24. #查看有关包的详尽信息 
  25. pacman -Qi 包名 
  26. #列出该包的文件 
  27. pacman -Ql 包名 
  28. #只下载包,不安装 
  29. pacman -Sw 包名 
  30. #清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录 
  31. pacman -Sc 
  32. #清理所有的缓存文件 
  33. pacman -Scc 

apk

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


常用命令:

  1. # 从远程镜像源中更新本地镜像源索引 
  2. apk   update: 
  3. # 安装包 
  4. apk add openssh openntp vim 
  5. apk add --no-cache mysql-client 
  6. apk add docker --update-cache --repository http://mirrors.ustc.edu.cn/alpine/v3.4/main/ --allow-untrusted 
  7. #安装指定版本软件包 
  8. apk add asterisk=1.6.0.21-r0 
  9. apk add 'asterisk<1.6.1' 
  10. apk add 'asterisk>1.6.1' 
  11.  # 卸载并删除 
  12. apk del openssh openntp vim 
  13. #升级软件 
  14. apk upgrade  
  15.  #指定升级部分软件包 
  16. apk add --upgrade busybox 
  17. #查找所以可用软件包 
  18. apk search  
  19. #查找所以可用软件包及其描述内容 
  20. apk search -v 
  21. #通过软件包名称查找软件包 
  22. apk search -v 'nginx*'  
  23. #通过描述文件查找特定的软件包 
  24. apk search -v -d 'docker'  
  25. #列出所有已安装的软件包 
  26. apk info  
  27. #显示完整的软件包信息 
  28. apk info -a zlib  
  29. #显示指定文件属于的包 
  30. apk info --who-owns /sbin/lbu  

其他管理器

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

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

相关内容