Linux软件安装与依赖问题

发布时间 2023-09-08 15:12:51作者: zhaoLei_Free

apt 与 yum

大部分时间,在Linux发行版中安装软件使用的是apt(Ubuntu),yum(CentOS)。

这两个软件都是高级的软件包管理工具,在使用它们安装软件的时候,会自动解决软件包的依赖关系,可以从指定的软件库获取软件包和其依赖项,并自动进行下载、安装、更新。

rpm与dpkg

它们都用于直接操作软件包文件,提供了较为基本的功能和选项,比如安装、卸载和管理软件包。dpkg主要用于Debian和Ubuntu等基于Debian包管理系统的发行版,而rpm主要用于CentOS和Fedora等基于RPM包管理系统的发行版。

它们不会自动解决软件的依赖问题。如果使用rpm/dpkg遇到依赖问题,需要手动下载需要的依赖并安装。

本地软件包

为什么使用apt install的时候要先运行 apt update

apt update命令会更新本地软件包列表。软件仓库的包列表随时都有可能变化(删除旧的软件包,上传新的软件包)。

因此,如果您有一个非常旧的软件包列表缓存,并且尝试进行apt install安装,很有可能会找不到安装包信息(安装包可能已经在软件仓库被删除了,而你本地软件包列表缓存中还记录着可用)。

先执行update有助成功安装到最新的软件包、解决依赖关系等。

apt 和 apt-get的区别

  apt是新出的工具,用于取代apt-get和apt-cache,目的是更友好、易用的包管理工具; apt-get没有被废弃也没有过时,依然可以放心使用,但普通用户建议转向apt。

apt常用命令

  

#安装软件包
sudo apt remove package-name

#删除软件包
sudo apt remove package-name

#使用apt安装多个软件包
sudo apt install Package-name package-name2

#使用apt删除多个包
sudo apt remove package-name package-name2

#更新本地可用包索引
sudo apt update

#升级软件包
sudo apt upgrade

#使用 apt 命令升级软件包:
sudo apt upgrade package_name

#查看系统上可以升级的软件包列表
apt list --upgradable

#如果要删除软件包及其所有配置文件,请使用purgeapt 命令:
sudo apt purge package_name

#运行以下命令以删除未使用的包:
sudo apt autoremove

#运行以下 apt 命令以列出所有可用的软件包:
sudo apt list

#apt 命令列出唯一安装的软件包:
sudo apt list --installed

#运行以下 apt 命令来搜索包:
sudo apt search package-name

#apt 命令查找有关软件包的信息
sudo apt show package-name

#apt 命令列出包依赖项
sudo apt depends packagename

#apt 命令删除依赖项:
sudo apt autoremove
sudo apt --purge autoremove

 

YUM常用命令

# 使用YUM查找软件包
命令:yum search ~
#列出所有可安装的软件包
命令:yum list
#列出所有可更新的软件包
命令:yum list updates
#列出所有已安装的软件包
命令:yum list installed
#列出所有已安装但不在Yum Repository 內的软件包
命令:yum list extras
#列出所指定软件包
命令:yum list ~
#使用YUM获取软件包信息
命令:yum info ~
#列出所有软件包的信息
命令:yum info
#列出所有可更新的软件包信息
命令:yum info updates
#列出所有已安裝的软件包信息
命令:yum info installed
#列出所有已安裝但不在Yum Repository 內的软件包信息
命令:yum info extras
#列出软件包提供哪些文件
命令:yum provides~

#清除YUM缓存
#yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all 清除所有。
#清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages
#清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers
#清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders
#清除缓存目录(/var/cache/yum)下的软件包及旧的headers
命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)

#yum命令工具使用举例
yum update 升级系统
yum install ~ 安装指定软件包
yum update ~ 升级指定软件包
yum remove ~ 卸载指定软件
yum grouplist 查看系统中已经安装的和可用的软件组,可用的可以安装
yum grooupinstall ~安装上一个命令显示的可用的软件组中的一个
yum grooupupdate ~更新指定软件组的软件包
yum grooupremove ~ 卸载指定软件组中的软件包
yum deplist ~ 查询指定软件包的依赖关系
yum list yum* 列出所有以yum开头的软件包
yum localinstall ~ 从硬盘安装rpm包并使用yum解决依赖