常见的软件封包类型
封包类型 | 说明 |
---|---|
rpm软件包 | 扩展名以.rpm结尾,使用户redhat系列 |
deb软件包 | 扩展名以.deb结尾,适用于Debian系列 |
源代码软件包 | 以.tar.gz/.tar.bz2格式结尾的压缩包提供包含程序的原始代码文件 |
RPM的含义
1.RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。
2.RPM里面都包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件。
3.一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的,Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的 RPM包文件名特征-软件名-版本信息.操作系统.硬件架构.rpm
RPM的默认安装位置
rpm命令
linux rpm 命令用于管理套件
rpm(英文全拼:redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。
linux rpm 的常用参数说明
rpm [-参数] [包名] #命令格式
使用rpm安装软件
安装httpd
rpm -ivh httpd-2.4.6-80.el7.centos.x86_64.rpm
显示软件的安装信息
rpm -qi httpd-2.4.6-80.el7.centos.x86_64.rpm
2. 安装软件是出现错误,描述是依赖包检测失败
3.解决依赖关系
<1>先安装/卸载要求的包,如果RPM包齐全但是比较多时,可以用通配符*
<2>忽略依赖关系(不建议使用)使用--nodeps可以忽略依赖关系
Yum 命令
1.yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的Shell 前端软件包管理器。
2.基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 3.yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
Yum原理
YUM工作原理及使用_Galaxy的博客-CSDN博客blog.csdn.net/guohaosun/article/details/81481848
Yum本地仓库
软件仓库的提供方式
本地目录:file://
FTP或HTTP服务:ftp:// 、 http://
2.RPM软件包的来源
Red Hat发布的RPM包集合
第三方、用户自定义的rpm包集合
yum常用命令
yum配置解析
影响yum使用的主要文件
基本设置: /etc/yum.conf
仓库配置: /etc/yum.repo.d/*.repo
日志文件: /var/log/yum.log
2.*.repo的基本配置项
[base]:代表容器名称,名称可以随意取
name:描述容器含义
baseurl:后面接容器地址,是指定一个固定容器地址
enabled:是否启用此频道(1为启动,0为不启用)
gpgcheck:是否需要查阅RPM文件内数字证书
gpgkey:数字证书公钥文件所在位置,使用默认值
仓库文件*.repo文件的简单书写
准备本地镜像仓库
mkdir /yum #创建目录
lsblk #查看镜像磁盘是否存在
mount /dev/sr0 /yum mount: /dev/sr0 写保护,将以只读方式挂载
2.*.repo文件的简单书写
[development] #代表容器名称,名称可以随意取
name=nsd01 #描述容器含义
baseurl=file:///yum #后面接容器地址,是指定一个固定容器地址
enabled=1 #是否启用此频道(1为启动,0为不启用)
gpgcheck=0 #是否需要查阅RPM文件内数字证书
yum命令工具
查看软件列表
格式: yum list [软件名] ==>配合管道可查询软件包全称
eg: yum list | grep python-u
python-urlgrabber.noarch 3.10-8.el7 @anaconda
python-urllib3.noarch 1.10.2-5.el7 development
python-urwid.x86_64 1.1.1-3.el7 development
检索软件及相关信息
yum search 关键字 - yum search httpd
yum info [软件名] - yum info httpd # 显示相关信息
yum provides 文件路径/软件提供的命令
yum provides */syslinux #文件路径
yum provides semanage #软件包提供的命令
安装/卸载软件包
命令格式: yum [-y] 指令 [软件名]
- yum -y install httpd #安装软件
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-80.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-80.el7.centos,它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-80.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-3.el7_4.1 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-80.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
- yum remove httpd #卸载软件
移除 1 软件包
安装大小:9.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : httpd-2.4.6-80.el7.centos.x86_64 1/1
验证中 : httpd-2.4.6-80.el7.centos.x86_64 1/1
删除:
httpd.x86_64 0:2.4.6-80.el7.centos
完毕!
国内yum源
使用方式
centos镜像-centos下载地址-centos安装教程-阿里巴巴开源镜像站developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11oWqegF
前提:虚拟机/服务器与外网互通 1. 备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份) CentOS 7 (其他版本的请自行参考阿里yum源)
yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
运行 yum makecache 生成缓存
其他 非阿里云ECS用户会出现 Couldn't resolve host 'mirrors.cloud.aliyuncs.com' 信息,不影响使用。用户也可自行修改相关配置: eg:
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
自定义yum源
作为yum源的条件
- 大量的.rpm的软件包文件
- 针对软件包的repodata/ 仓库档案
2.使用自定义Yum源时,需要另外创建repodata/ 档案
- 将收集到的rpm放到一个linux系统中的一个目录里
- 使用createrepo工具创建repodata/ 档案
1. mkdir /mysql #创建目录
2. mv /root/mysql-5.7.17.tar /mysql/ #把压缩包移动到刚刚新建的目录中
3. tar -xf /mysql/mysql-5.7.17.tar -C /mysql/ #解压放到指定的路径
4. yum -y install createrepo #安装createrepo软件包
5. createrepo ./ #生成repodata文件夹
Spawning worker 0 with 11 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
6. createrepo --update ./ #更新自定义yum源
配置yum客户端的配置文件(本机centos7.5 1804)
1. cd /etc/yum.repos.d/ #进入仓库目录 ,书写repo文件
2. vim mysql.repo
[mysql]
name=mysql5.7
baseurl=file:///mysql
enabled=1
gpgcheck=0
3. yum makecache # 缓存信息
4. yum repolist #显示仓库列表
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
development nsd01 9,911
mysql mysql5.7 11
repolist: 9,922
5.yum install mysql # 检测yum源是否可用
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.56-2.el7 将被 取代
---> 软件包 mysql-community-client.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-common.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-devel.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-embedded.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-embedded-compat.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-embedded-devel.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-libs.x86_64.0.5.7.17-1.el7 将被 舍弃
---> 软件包 mysql-community-libs-compat.x86_64.0.5.7.17-1.el7 将被 舍弃
---> 软件包 mysql-community-minimal-debuginfo.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-server.x86_64.0.5.7.17-1.el7 将被 安装
---> 软件包 mysql-community-test.x86_64.0.5.7.17-1.el7 将被 安装
--> 正在处理依赖关系 perl(JSON),它被软件包 mysql-community-test-5.7.17-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 perl-JSON.noarch.0.2.59-2.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
评论区