注:该文章中“+”等于 空格。“跟” = 无空格。
软件包管理以及如何创建本地yum仓库
- rpm下载安装,升级,卸载和查询
- 如何建立yum仓库
- 把光盘做成本地yum仓库
- 安装:
安装分两种命令,rpm -ivh 和 yum install。两者除了在解决依赖关系上存在差异,其他并无不同。 - 安装分两种形式,本地镜像安装和联网安装。
1.本地镜像安装:
将装有软件包的光盘(路径/dev/cdrom),挂载(mount)到一个目录。然后就可以通过rpm -ivh +目录+软件包的名称 进行安装。
2.联网安装:配置yum源,然后使用yum安装。
1.、RPM:软件包管理器。
rpm下载安装,升级,卸载和查询
- 安装
-rpm - ivh:安装软件包。例:rpm - ivh+目录 或 软件包链接。 但是rpm -ivh 有个最大的弊端是存在依赖关系,需要挨个解决。
什么是依赖关系?即如需安装A,可是需要B作为前置条件,但是B又需要C,等等。解决起来非常麻烦。故而 yum install 诞生了 - 升级: rpm -Uvh
- 卸载: rpm -e
- 查询:
rpm -q:查看指定软件包是否安装
rpm -qa:查看系统中已安装的所有软件包也可指定软件包名字进行过滤。
rpm -qi:查看指定命令或软件的详细信息
rpm -ql:查询指定软件包把文件解压在哪个位置
rpm -qc:查询指定软件包的配置文件所在位置
rpm -qf:查询绝对路径的命令是哪个软件包提供的。但是如果我的绝对路径中没有相关命令,便会导致查询不到对应的安装包,yum可以解决。
yum:软件保管理器,可以通过互联网下载rpm格式的安装包进行安装,自动处理之间的的依赖关系
如何建立yum仓库
执行yum的过程中需要牵扯到一些文件,这些文件就是.repo文件,存放在/etc/yum.repos.d/中,而这些文件就是软件包仓库文件,也就是说执行yum时,yum会根据这些文件内的链接自行搜索,适配,下载。这个链接就被称之“源”,源所指向位置有一堆rpm包,这些存放软件包的地方就被称之为“仓库”,换言之,只要将这个文件里的链接配置好,就是增加了一个yum仓库。
基础源:Base,提供基础的软件包
扩展源:epel,提供第三方软件。比如:nginx
官方源:nginx
- 配置源有两种方法:
1.手动编辑配置文件/etc/yum.reops.d/ 或 下载一个文件到指定位置。
步骤:手动建立仓库,第一步,使用vim创建一个**.repo**格式的文件到/etc/yum.reops.d/,然后将官方提供的源配置代码粘贴到该文件中,保存。运行yum repolist查看仓库是否开启。注意!不要直接粘贴到vim编辑器中,防止被吞首字母。
2.官方提供一个 release.rpm包,当把这个安装释放后,会自动释放一个**.repo放到文件到/etc/yum.reops.d/**目录中。
- 步骤:
1.首先找到需要安装的release.rpm软件包,复制链接。
2.通过rpm -ivh +链接或使用yum install +链接,下载并将自动创建一个.repo文件解压到/etc/yum.repo.d/中。
3.也可以通过wget的方式下载到本地,然后通过rpm -ivh 进行解压。
4.yum repolist 列出本地目前在用仓库,使用yum repolist all 列出 本地所有仓库。
5.使用yum-config-manager --disable(关闭仓库),yum-config-manager --enable(开启仓库)(也可以通过修改repo文件中的enable选项,来开启或关闭仓库)
也可以通过wget的方式下载到本地,然后通过rpm -ivh 进行解压。
- wget:联网下载软件包, 例:wget+软件包链接 = 下载到当前目录,仅下载不安装。如需下载到指定目录,可用 -O 指定, 例:wget -O /etc/yum.repo.d/CentOS-Base.repo+网络地址(通过镜像市场查找)
- yum install:下载安装,升级,卸载和查询
下载安装:
yum install + 软件包名称或链接地址 -y
yum localinstall:用来自动解决本地rpm包的依赖,yum install 是在下载的过程中自动解决依赖,但是如果文件过大,可能导致中断,所以可以通过wget下载到本地,可是这样就无法通过 yum install 来解决依赖,这时就用到了 yum localinstall,分析软件包有哪些依赖,先解决依赖再进行安装。
yum reinstall:重新安装
卸载:
yum remove -y:一般不卸载,因为软件包存在各种依赖关系,所以卸载软件包可能导致命令不可用。
升级:
yum update + 软件包名称 -y :不指定软件包 就是升级所有软件包,甚至可能升级内核,所以一定要指定软件包。
查询:
yum list:查询所有仓库的所有软件包,会把所有仓库的软件包都列出来。
yum list installed:查询系统中已安装的软件包。
yum provides:查看在已配置的联网仓库中,该命令或软件来自哪个软件包。
yum repolist :查看当前有多少仓库在用。
yum repolist all :查看一共有多少仓库,包含禁用的。 - yum history
查看软件包的安装卸载记录。
info+编号=查看该软件包的操作记录信息。
undo+编号=撤销操作。
1、yum history
2、yum history info 编号
3、yum history undo 编号 - yum.conf:yum下载 的配置文件。在/etc/目录中,可修改是否缓存软件包。keepcache=0 ,,将0改为1。
- yum clean all:清除所有软件包的缓存
yum clean packages :清楚缓存的软件包,不清楚已安装的。 - rpm -qa列出所有本机上安装的rpm包, yum list 查询的是yum服务器端所提供的rpm包,所以yum list installed查询到的是存在本机建立的联网仓库中已安装的软件包。
把光盘做成本地yum仓库
1、有个一个光盘,且光盘中有软件包。
2、将光盘的数据拷贝到服务器上。
3、为对应的目录建立仓库数据文件?
4、修改配置文件,配置服务器的yum,将安装的源指向到本地目录。
1.将光盘 挂载到 系统中。
mount /dev/cdrom/ /mnt/
2.将光盘里的Packages里面的文件拷贝到自建的文件夹中,注:Centos8的仓库在AppStream和BaseOs中,光盘中有几个仓库,就将几个仓库的包都拷贝到同一目录。
cp /mnt/AppStream/Packages/*.rpm 指定文件夹
3.将其建立成仓库的数据文件,需要使用createrepo,使其成为一个索引。
使用:createrepo+指定文件夹,!!!每次仓库更新都要执行一次,
4、自建一个.repo的文件
- 自建步骤:
vim /etc/yum.repos.d/local.repo
[repo-local]
仓库名称
name = This Local Repo Database
仓库描述
baseurl = file:///data/base
使用协议,file本地协,前面两个斜杠是协议自带的
enable = 1
启用这个仓库
gpgcheck = 0
是否校验软件包,光盘的不用校验,互联网的需要校验(1=是,0=否)
5、yum makecache 建立对应的缓存。 yum有很多源,大多是网络上的,makecache建立一个缓存,以后用install时就在缓存中搜索,提高了速度。yum makecache知识来源 如果上一步使用的 yum-config-manager --enable + 索引目录(开启仓库),便不需要执行该操作。
6、建立完成。