包管理apt和yum(换源)

apt

  1. 最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。

  2. apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。

  3. 在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

apt和apt-get命令之间的区别

apt 命令 取代的命令 命令的功能
apt installapt-get install安装软件包
apt removeapt-get remove移除软件包
apt purgeapt-get purge移除软件包及配置文件
apt updateapt-get update刷新存储库索引
apt upgradeapt-get upgrade升级所有可升级的软件包
apt autoremoveapt-get autoremove自动删除不需要的包
apt full-upgradeapt-get dist-upgrade在升级软件包时自动处理依赖关系
apt searchapt-cache search搜索应用程序
apt showapt-cache show显示装细节

apt 还有一些自己的命令:

  1. apt list 列出包含条件的包(已安装,可升级等)
  2. apt edit-sources 编辑源列表

yum和apt-get用法及区别

一般来说著名的linux系统基本上分两大类:

  1. RedHat系列:Redhat、Centos、Fedora等

  2. Debian系列:Debian、Ubuntu等

RedHat系列

1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
2 包管理工具 yum
3 支持tar包

Debian系列

1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
2 包管理工具 apt-get
3 支持tar包

apt-get

参数

 -h 		帮助文件。  

 -q 		输出到日志 - 无进展指示  

 -qq 		不输出信息,错误除外  

 -d 		仅下载 - 不安装或解压归档文件  

 -s 		不实际安装。模拟执行命令  

 -y 		在需要确认的场景中回应 yes

 -f 		尝试修正系统依赖损坏处  

 -m 		如果归档无法定位,尝试继续  

 -u 		同时显示更新软件包的列表  

 -b 		获取源码包后编译  

 -V 		显示详细的版本号  

 -c=? 		阅读此配置文件  

 -o=? 		设置自定的配置选项,如 -o dir::cache=/tmp  

升级 & 安装

apt-get update						// 更新源文件,并不会做任何安装升级操作

apt-get upgrade						// 升级所有已安装的包

apt-get install packagename				// 安装指定的包

apt-get install packagename --only-upgrade		// 仅升级指定的包

apt-get install packagename --reinstall   		// 重新安装包

apt-get -f install   					// 修复安装

apt-get build-dep packagename				// 安装相关的编译环境

apt-get source packagename  				// 下载该包的源代码

apt-get dist-upgrade 					// 升级系统

apt-get dselect-upgrade 	

查询 & 显示

apt-cache search packagename 				// 查询指定的包    

apt-cache show packagename 				// 显示包的相关信息,如说明、大小、版本等 

apt-cache depends packagename 				// 了解使用该包依赖哪些包

apt-cache rdepends packagename 				// 查看该包被哪些包依赖

删除 & 清理

apt-get remove packagename				// 删除包    

apt-get remove packagename -- purge 			// 删除包,包括删除配置文件等 

apt-get autoremove packagename --purge 			// 删除包及其依赖的软件包+配置文件等(只对6.10有效,推荐使用)

apt-get clean 						// 清理无用的包 

apt-get autoclean 					// 清理无用的包 

apt-get check 						// 检查是否有损坏的依赖

yum

参数

-h:显示帮助信息; 

-y:对所有的提问都回答“[yes](http://man.linuxde.net/yes)”;

-c:指定配置文件;

-q:安静模式;

-v:详细模式; 

-d:设置调试等级(0-10); 

-e:设置错误等级(0-10); 

-R:设置yum处理一个命令的最大等待时间; 

-C:完全从缓存中运行,而不去下载或者更新任何头文件。

更新 & 升级

yum update 				// 更新所有的包

yum upgrade				// 升级所有的包 

yum check-update 			// 检查所有可更新的包

yum update package1			// 更新指定程序包package1

yum upgrade package1			// 升级指定程序包package1

yum groupupdate group1 			// 升级程序组group1

yum --exclude=python* update		// 升级的时候不升级python相关的包

安装

yum install 				// 全部安装 

yum install package1 			// 安装指定的安装包package1 

yum localinstall ~ 			// 从硬盘安装rpm包并使用yum解决依赖

yum groupinsall group1 			// 安装程序组group1

查找 & 显示

um list 				// 显示所有已经安装和可以安装的程序包 

yum list python				// 显示出名为python的包

yum list python*			// 显示出名为python开头的所有的包

yum list updates			// 显示出所有可以更新的包

yum list installed			// 显示出所有已经安装的包

yum list extras				// 显示出所有已安装但是不在yum仓库里的包

yum grouplist 				// 查看系统中已经安装的和可用的软件组,可用的可以安装


yum info				// 显示所有已经安装和可以安装的程序包的信息

yum info python				// 显示出名为python的包的信息

yum info python*			// 显示出名为python开头的所有的包的信息

yum info updates			// 显示出所有可以更新的包的信息

yum info installed			// 显示出所有已经安装的包的信息

yum info extras				// 显示出所有已安装但是不在yum仓库里的包的信息

yum groupinfo group1			// 显示程序组group1信息


yum search python 			// 根据关键字python查找相关的包

yum deplist python 			// 查看程序python依赖情况

yum provides python			// 检测python包中包含的文件以及软件提供的功能。

删除 & 清除缓存

yum remove package1 			// 删除程序包package1 

yum groupremove group1 			// 删除程序组group1 

yum clean packages        		// 清除缓存目录下的软件包 

yum clean headers			// 清除缓存目录下的 headers 

yum clean oldheaders 			// 清除缓存目录下旧的 headers

yum update和yum upgrade的区别

yum update和yum upgrade的功能是一样的,都是将需要更新的package更新至软件源中的最新版。区别是 yum upgrade会删除旧版本的package,而yum update则会保留。因此如果软件依赖旧版本的package,最好是使用 yum update,确保不会出现兼容问题。

换源操作

在使用 yum 进行软件包管理时,可能需要更改软件源(也称为镜像源),例如切换到更快的镜像或使用特定的源来获得更新的软件包。以下是更改 yum 源的步骤:

1. 备份原有的 yum 源配置

在更改之前,建议备份原有的 yum 源配置文件,以防万一需要恢复。

sudo cp -r /etc/yum.repos.d /etc/yum.repos.d.backup

2. 查找新的镜像源

首先,找到适合你 Linux 发行版的镜像源地址。对于 CentOS 和 RHEL,有许多官方和第三方镜像源可以选择。例如,CentOS 官方镜像、阿里云镜像等。选择合适的镜像源并获取其地址。

3. 更新 yum 源配置

yum 源配置文件通常位于 /etc/yum.repos.d/ 目录下,文件以 .repo 为后缀名。每个 .repo 文件代表一个或多个软件源。

以 CentOS 为例:

  1. 删除或禁用现有的 .repo 文件
    可以选择删除现有的 .repo 文件或禁用其中的某些源。在 /etc/yum.repos.d/ 目录下,所有 .repo 文件都可以被编辑。

    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 添加新的镜像源文件
    创建新的 .repo 文件并添加新的镜像源。可以使用文本编辑器创建并编辑一个新的 .repo 文件。例如:

    sudo nano /etc/yum.repos.d/CentOS-Mirror.repo
    

    在文件中添加新的镜像源配置,例如:

    [base]
    name=CentOS-$releasever - Base
    baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

    baseurl 替换为你选择的镜像源地址。保存并关闭文件。

4. 清理 yum 缓存

在更改源后,清理 yum 缓存以确保使用新的源进行操作:

sudo yum clean all

5. 更新 yum 源列表

重新生成源列表并确保可以访问新的镜像源:

sudo yum repolist

6. 安装和更新软件包

使用 yum 命令安装或更新软件包,检查是否能从新的镜像源成功下载:

sudo yum update

示例:使用阿里云镜像

以下是一个示例,展示如何将 CentOS 的 yum 源切换到阿里云镜像:

  1. 备份原有配置

    sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 添加阿里云镜像源配置

    sudo nano /etc/yum.repos.d/CentOS-Base.repo
    

    添加以下内容:

    [base]
    name=CentOS-$releasever - Base
    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-7
    
    [updates]
    name=CentOS-$releasever - Updates
    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/RPM-GPG-KEY-CentOS-7
    
    [extras]
    name=CentOS-$releasever - Extras
    baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/RPM-GPG-KEY-CentOS-7
    
  3. 清理缓存并更新

    sudo yum clean all
    sudo yum repolist
    sudo yum update
    

在使用 yum 进行软件包管理时,yum makecacheyum clean allyum repolistyum update 是常用的命令,各自有不同的作用。下面详细介绍它们的区别和用途:

  1. yum makecache

作用

  • yum makecache 命令用于生成和更新 yum 的缓存文件。
  • 它会从配置的仓库中下载元数据(如包的列表和元数据),并将其保存在本地缓存中,以加快后续的包安装和更新操作。

使用场景

  • 当你添加或更改了软件源后,运行 yum makecache 可以快速获取和更新缓存,以便 yum 可以使用最新的源信息。

示例

sudo yum makecache
  1. yum clean all

作用

  • yum clean all 命令用于清除 yum 的所有缓存,包括元数据缓存、软件包缓存和临时缓存文件。
  • 它会删除所有已经下载的包和元数据,从而释放磁盘空间,并确保 yum 不使用任何过时的缓存信息。

使用场景

  • 当遇到软件源配置问题或需要确保 yum 从源服务器重新获取所有信息时,可以使用 yum clean all 清除缓存。
  • 在切换软件源或更改源配置后,清理缓存以确保不会使用旧的或不准确的缓存数据。

示例

sudo yum clean all
  1. yum repolist

作用

  • yum repolist 命令用于列出当前启用的 yum 仓库(软件源)的列表。
  • 它显示所有可用的仓库及其状态,帮助你确认 yum 正在使用哪些软件源。

使用场景

  • 当你需要查看和确认启用的仓库,确保 yum 连接到正确的软件源时,可以使用 yum repolist

示例

sudo yum repolist
  1. yum update

作用

  • yum update 命令用于更新系统中已安装的所有软件包到最新版本。
  • 它会检查所有启用的仓库,下载并安装可用的更新包。

使用场景

  • 定期更新系统软件包以获取最新的功能和安全修复。
  • 在添加或更改软件源后,运行 yum update 以确保系统中的所有软件包都是最新版本。

示例

sudo yum update

总结

  • yum makecache:生成或更新 yum 的缓存,以便加快包管理操作。
  • yum clean all:清除所有缓存,以释放空间并确保从源服务器获取最新信息。
  • yum repolist:列出所有启用的仓库,以确认当前使用的软件源。
  • yum update:更新所有已安装的软件包到最新版本。

这些命令结合使用,可以帮助你管理和维护 yum 软件包的缓存和更新状态。

FQA

yum安装软件时检索密钥问题

在这里插入图片描述

该错误信息提示在使用 YUM 安装或更新软件包时,YUM 试图从阿里云镜像站点获取 GPG 公钥,但无法找到相应的公钥文件,导致出现 404 错误。GPG 公钥用于验证软件包的完整性和来源,因此无法获取公钥可能会阻止软件包的安装或更新。

解决方法:

1. 手动导入正确的 GPG 公钥

可以手动导入 CentOS 7 的 GPG 公钥,以下是步骤:

sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

此命令会直接从系统的本地文件导入 CentOS 7 的 GPG 公钥,避免从外部站点获取。

2. 检查并更新 YUM 源配置

可能当前配置的 YUM 仓库的源文件指向了错误的 GPG 公钥地址。可以通过以下步骤更新源配置:

  • 编辑相关的 .repo 文件(通常是 /etc/yum.repos.d/CentOS-Base.repo 或阿里云的 .repo 文件):

    sudo vim /etc/yum.repos.d/CentOS-Base.repo
    
  • 确保 gpgkey 配置指向正确的 GPG 公钥地址,例如:

    gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
    

如果文件中有不正确的 GPG 公钥路径(如404的链接),你可以手动修改为上述正确的阿里云 GPG 公钥地址。

3. 清理本地缓存并重新生成缓存

在更正 YUM 源配置后,建议清理本地缓存并重新生成:

sudo yum clean all
sudo yum makecache

这将清除旧的缓存和元数据,并重新获取最新的软件包信息。

4. 尝试重新安装或更新

在完成公钥导入和源配置后,再次尝试安装或更新软件包:

sudo yum update
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Generalzy

文章对您有帮助,倍感荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值