介绍在Linux上,安装软件一般有几种方式:系统包管理器安装、源码编译、二进制包,现在桌面系统多用Snap、AppImage、Flatpak等。Linux包管理DPKGdpkg是Debian系统的包管理系统,包后缀为.deb。apt命令可以快速安装dpkg包,解决包之间的依赖关系。常用命令:#从软件源同步最新的软件信息并缓存到本地aptupdate#安装指定包,同时安装它依赖的其他包。aptinstall[package]#更新软件版本aptupgrade#查找软件,不加参数则显示所有软件包,加关键字搜索指定包aptlistzlib*#列出已安装的软件版本aptlist--installed#关键字搜索软件aptsearchzlib的名称和描述*#卸载包,但配置文件仍会保存下载的软件Packageaptclean#类似于clean,只是删除过期的包(即不能下载或者没用的包)aptautocleanRPMRPM是RedHat的包管理系统,包后缀为.rpm。yum是一个类似于apt的前端工具,可以很好的解决包之间的依赖关系。dnf是yum的升级版,yum的下一代。dnf和yum的参数基本一样。常用命令:#安装软件,-y表示不询问直接安装yum-yinstallnginx#重新安装yumreinstallnginx#查找软件yumlistnginx#查看包组(不加组名会列出所有组)yumgrouplist#搜索根据tokeywordsyumsearchnginx#根据文件路径找到包名。如果不知道文件的具体路径,也可以使用通配符来匹配包yum-yupdate#如果不更新指定的包,可以使用-x参数yum-yupdate-xnginx#卸载yumremovenginx#卸载并删除配置yumerasenginx#更新索引,可以加快查找依赖包的速度yummakecachePacmanPacman是Arch系统的包管理系统。新版本的扩展名为.pkg.tar.zst,旧版本为.pkg.tar.xz。常用命令:#更新系统pacman-Syu#同步本地包数据库到远程仓库pacman-Sypacman-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]#Deletealldependenciesthatarenotusednotusedotherinstalledpackageswhiledeletethepackagepacman-Rs[package]#Deletealldependenciesonthissoftwarewhiledeletethepackage包的程序pacman-Rsc[package]#]不删除包时检查依赖关系pacman-Rd[package#Searchforpackagescontainingkeywordsinrepositoriespacman-SsKeywords#Searchforinstalledpackagespacman-QsKeywords#查看包的详细信息pacman-Qipackagename#列出包的文件pacman-ql包名#只下载包,不安装pacman-Sw包名#清理未安装的包文件,包文件位于/var/cache/pacman/pkg/目录pacman-Sc#清除所有缓存文件pacman-SccapkAlpine使用apk进行包管理,查看com通过apk–help命令完成包管理命令。常用命令:#从远程镜像源更新本地镜像源索引apkupdate:#安装包apkaddopensshopenntpvimapkadd--no-cachemysql-clientapkadddocker--update-cache--repositoryhttp://mirrors.ustc.edu.cn/alpine/v3。4/main/--allow-untrusted#安装指定版本的软件包apkaddasterisk=1.6.0.21-r0apkadd'asterisk<1.6.1'apkadd'asterisk>1.6.1'#卸载删除apkdelopensshopenntpvim#升级软件apkupgrade#指定升级部分Packageapkadd--upgradebusybox#Findallavailablepackagesapksearch#Findallavailablepackagesandtheirdescriptionapksearch-v#Findpackagesbypackagenameapksearch-v'nginx*'#Findaspecificpackagebydescriptionfileapksearch-v-d'docker'#列出所有已安装的包apkinfo#显示完整的包信息apkinfo-azlib#显示指定文件所属的包apkinfo--who-owns/sbin/lbu其他管理器也有其他包管理器,我只是没有'用过它们。Zypper是openSUSE包管理器。Portage是Gentoo的包管理器。
