目录
1. 软件安装包格式类型
rpm:Red-Hat Package Manager(RPM软件包管理器)的缩写。包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用。
deb:应用于Ubuntu和Debian系统。我们这里使用的是Redhat系统。
tar:
- 绿色软件,调用脚本可以直接运行;
- 源码编译,需要编译以后才可以执行。
2. rpm包名称分析
dhcp-4.2.5-68.el7_5.1.x86_64.rpm
1 2 3 4 5
软件名称:dhcp
软件版本:4.2.5-68
软件授权:el7_5.1
软件位:x86_64
软件后缀:后缀名为rpm表示该软件包为rpm类型
3. rpm命令
命令 | 参数 | 功能 |
rpm | -ivh | 安装 |
-v | 显示过程 | |
-h | hash 检测查看软件中的hash值是否有改变 | |
-i | install安装 | |
-e | 卸载 | |
-q | 查看 | |
-a | 所有 | |
-qa | 查看所有安装过的软件 | |
-l | 列出安装后在系统中生成的文件 | |
-p | 操作对象为软件包 | |
--scripts | 查看软件在安装或卸载时在系统中执行的脚本 | |
--force | 强制安装 | |
-nodeps | 忽略软件依赖性安装 | |
-K | 检测软件是否是原版软件 |
软件包拆解方式:rpm2cpio dhcp-4.2.5-68.el7_5.1.x86_64.rpm | cpio -id
4. yum软件仓库
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum中包含了查找、安装、删除某一个、一组甚至全部软件包的命令。
4.1 搭建软件仓库的目的
由于rpm命令不可以自动处理依赖性关系,所以这里通过yum仓库来解决该问题,自动处理依赖性关系。
4.2 搭建软件仓库的步骤
- 得到与当前系统匹配的系统安装景象文件
- 建立系统安装景象挂载点:
mkdir /softwaresource
- 挂载景象到景象挂载点:
## 两种方式
mount /rhel7-xxxxxx.xxxxxx.iso /software
mount /dev/cdrom /software
将镜像挂载到挂载点即可,在这里我通过光驱挂载
mount /dev/cdrom /softwaresource/
- 配置系统访问软件路径(yum仓库指向文件)
cd /etc/yum.repos.d
vim dsd.repo
[dsdrhel7.6]
name=dsd rhel7.6 source ## 仓库名称
baseurl=file:///softwaresource ## 资源路径
gpgcheck=0 ## 软件包授权检测开关
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release ## 软件包授权码
enabled=1 ## 仓库启用开关
[dsdAppStream]
name=dsd rhel8.1 AppStream
baseurl=file:///softwaresource/AppStream
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1
[dsdBaseOS]
name=dsd rhel8.1 BaseOS
baseurl=file:///softwaresource/BaseOS
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1
- 清空yum缓存识别新文件案内容
yum clean all
5. yum命令
命令 | 作用 |
yum install | 安装 |
yum remove | 卸载 |
yum reinstall | 重新安装 |
yum list installed|available|all|软件名称 | 列出 |
yum update | 更新 |
yum repolist | 列出仓库信息 |
yum history | 查看yum历史 |
yum info | 查看软件包信息 |
yum clean all | 清楚yum缓存 |
yum search | 根据软件信息搜索 |
yum whatprovides | 根据软件包含文件搜索 |
yum groups install | 组安装 |
yum groups remove | 组卸载 |
yum groups info | 组信息 |
- yum clean all
- yum search dhcp
6. 第三方软件库
- 把所有rpm结尾的软件包存放到一个目录/software中
mv *.rpm /software
- createrepo -v /software ##生成软件数据库存放软件属性
- vim /etc/yum.repos.d/dsd.repo
[software]
name=dsd rhel7.6 source
baseurl=file:///software
gpgcheck=0
enabled=1
- yum clean all
7. 共享软件仓库
7.1 实验环境
rhel7_node1,为共享仓库方
rhel7_node2,为接收共享仓库方
7.2 软件仓库支持的访问方式
file:// ## 本地文件
ftp:// ## 文本传输协议
http:// ## 超文本传输协议
nfs: ## 网络文件系统
7.3 搭建共享软件仓库的方式
- 在含有软件资源的主机中安装共享软件
- 关闭selinux和firewald
vim /etc/sysconfig/selinux
SELINUX=disabled
reboot
7.4 建立共享目录
mkdir /var/ftp/rhel7.6
mkdir /var/ftp/software
7.5 在共享目录中存放软件
- 所有第三方软件放入/var/ftp/software并执行createrepo -v /var/ftp/software
cp /software/* /var/ftp/software/ ## 将/software/目录下的所有内容复制到/var/ftp/software/中
createrepo -v /var/ftp/software/
- 挂载系统zhong安装镜像资源到/var/ftp/rhel7.6
mount /dev/cdrom /var/ftp/rhel7.6 ## 使用此命令将系统镜像临时挂载到/var/ftp/rhel7.6处
vim /etc/rc.d/rc.local ## 永久挂载系统安装镜像资源到/var/ftp/rhel7.6处,并将上命令添加到其中。
chmod 755 /etc/rc.d/rc.local ## 增加执行权限,要不然无法生效。
- 在rhel_node2中测试
ftp://192.168.43.10/software/ ## 显示资源
ftp://192.168.43.10/rhel7.6/ ## 显示资源
但是,这个时候我们去通过yum repolist查看仓库中还是没有信息
接下来我们给rhel7.6_node2中配置信息,读取共享软件仓库信息,如下步骤: