目录
前言:
>>>Linux开发商现在固定的硬件平台上将需要安装或升级的软件编译好,然后将这个软件的所有相关文件打包成一个特殊格式的文件(包含预先侦测系统与相应软件的脚本),并记载该软件提供的所有文件资讯,最终将这个软件释出
>>>用户端取得这个文件后,只需用特定命令来安装,若安装环境符合需求,就会开始安装
>>>安装完成后,还会将该软件的资讯写入软件管理机制中,以便后续升级;、移除等操作包名称中隐藏的信息
①包名称信息(包全名)
>>>包全名:操作的包是没有安装的软件包
>>>在rhel、centos、fedora系统上,包名称都是以rpm结尾,分为二进制和源码包
例:nginx-1.14.0-1.e16.ngx.x86_64.rpm
以此nginx包名称为例对包名称信息解读:
字段 | 含义 |
nginx | 表示包名 |
1.14.0 | 表示版本号 格式如下:朱版本号.次版本号.修正号 |
1 | 表示软件发布次数 |
e16 | 表示适合的操作系统平台和版本 |
x86_64 | 表示适合的硬件平台(根据cpu架构决定) |
②软件包分类
>>>软件包分为:源码包与二进制包
源码包:从未编译过的包,用户可以自行编译或者用源码包制作自己专属的二进制包
rpm包格式:以.src.rpm结尾
优势:开源,可进行二次开发,添加自己需要的功能
采用编译安装的方式进行安装,更适合自己的系统,效率稳定性更好
二进制包:将源码进行编译过的包,并将必要的文件(如服务启动脚本)打包进二进制包中
rpm包格式:没有以.src结尾的rpm包
优势:管理简单,安装速度快,难度小
③Linux包管理工具
RPM
>>>全称Red Hat Package Manager ,是由Redhat公司开发的
>>>RPM是以一种数据库记录的方式将我们需要的套件安装到Linux主机上的一套管理程序
>>>Linux主机上回保存一个有关RPM的数据库,记录了安装的包以及包与包之间的依赖关系
命令详解
选项 | 描述 | 搭配 |
-q | 表示查询系统是否安装了某个具体的软件包 |
|
-a | 表示输出所有符合条件的软件包,-qa表示输出系统上所有已安装的rpm包 | 需要搭配-q选项使用 |
-f | 查询某个文件所属的软件包,文件名带绝对路径 | 需要搭配-q选项使用 |
-l | 列出软件包中所有文件安装在何处 | 需要搭配-q选项使用 |
-i | 表示安装(此时不与q搭配)或显示软件包信息,包括名称、版本和描述 | 需要搭配-q选项使用 |
-c | 只列出配置文件,通常与-l配合使用 | 需要搭配-q选项使用 |
-d | 查询软件包的帮助文档 | 需要搭配-q选项使用 |
-R | 列出该软件包依赖包和文件 | 需要搭配-q选项使用 |
-U | 表示升级 |
|
-F | 表示升级已经安装过的包(未安装过的包不能被升级) |
|
-h | 显示安装进度(进度条) |
|
-v | 显示指令执行过程 |
|
-e | 表示卸载 |
|
RPM软件管理机制优缺点
>>>优点:rpm软件已经编译打包好,所以在软件传输和安装很方便
与软件相关信息都记录在安装主机的数据库上,方便查询、升级、卸载
>>>缺点:软件文件安装的环境必须与源码文件编译打包时的环境一致或兼容
需要满足或解决软件的依赖包问题
对通过rpm软件管理机制安装的软件,卸载时底层软件不可移除,否则容易造成系统崩溃
系统上与软件安装相关的目录
/etc | 一些配置文件放置的目录,可用命令查询:rpm -qc PackageName |
/usr/bin 或 /usr/sbin | 一些可运行文件 |
/usr/lib 或 /sur/lib64 | 一些使用了动态函数库 |
/usr/share/doc | 一些基本的软件使用手册和说明文档 |
/usr/share/man | 一些man page 文件 |
RPM安装过程:
(1)在官网查找指定版本的软件包,复制url(网站链接),使用wget命名下载该url
(2)使用rpm命令安装软件包: rpm -ivh 包全名 #此时包已经安装好
(3)使用rpm命令升级软件包:rpm -Uvh 包全名 #只能更新比原来版本更新的包
>>> -U 选项: 如果该软件未安装在Linux系统上,系统会直接安装
如果该软件是安装过的旧版本,则系统自动升级为新版本
>>> -F 选项: 如果该软件未安装在Linux系统上,软件不会被安装
如果该软件是安装过的旧版本,则系统自动升级为新版本
想要大量的升级系统旧版本的软件时,使用 rpm -Fvh 是比较好的做法,因为只有安装过的软件才会被升级
SRPM
>>>SRPM即为source RPM,就是没有经过编译的RPM文件包(含有源码)
>>>SRPM扩展名一般以.src.rpm结尾
>>>源码文件中含有该软件对应依赖包和所有RPM提供的数据(包括配置文件)
>>>优势:解决了RPM软件管理方式的弊端——安装的环境必须与当初编译环境一致,可修改源码,进行特性化定制
RPM vs SRPM
文件格式 | 档名格式 | 直接安装与否 | 内含程序类型 | 可否修改参数并编译 |
RPM | xxx.rpm | 可 | 已编译 | 不可 |
SRPM | xxx.src.rpm | 不可 | 未编译之原始码 | 可 |
YUM——解决RPM软件包依赖关系的工具
>>>yum的优势:一站式服务:下载+检查+安装 (会解析软件的依赖包)
>>>选项:
安装:yum install software_name
更新:yum update software_name
yum的源
>>>yum的源存放在这个目录:/etc/yum.repos.d/ (文件格式以.repo结尾),
当需要安装或更新时,yum命令会去遍历这个目录
[root@localhost ~]# ls -al /etc/yum.repos.d/
total 40
drwxr-xr-x. 2 root root 4096 Jul 15 05:07 .
drwxr-xr-x. 104 root root 12288 Sep 15 20:47 ..
-rw-r--r--. 1 root root 1991 Mar 28 2017 CentOS-Base.repo
-rw-r--r--. 1 root root 647 Mar 28 2017 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 289 Mar 28 2017 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 738 Jul 15 01:38 CentOS-Media.repo
-rw-r--r--. 1 root root 7989 Mar 28 2017 CentOS-Vault.repo
yum源的文件详解(以/etc/yum.repos.d/CentOS-Debuginfo.repo 为例)
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Debuginfo.repo
[base-debuginfo]
name=CentOS-6 - Debuginfo
baseurl=http://debuginfo.centos.org/6/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6
enabled=0
[base-debuginfo] | 代表容器的名字,名字可随意取,但不可重复 |
name | 说明容器的意义(不重要) |
baseurl | 容器的实际网址(重要) |
gpgcheck | 是否需要查阅RPM文件内的数码签章(认证) |
gpgkey | 数码签章的公钥档所在位置 |
enable | 是否让这个容器被启动,0表示不想启动 |
镜像源的缓存问题
>>>使用yum命令去镜像源下载安装软件时,系统会将镜像站中有的软件清单信息下载到/var/cache/yum目录下
>>>若本机的清单与镜像源清单不一致,会造成系统无法安装或升级
>>>解决方法:yum clear all,将本机清单清除
YUM工具之软件查询
>>>yum [list|info|search|provides] 包头
参数 | 描述 |
search | 搜索某个软件名称或者是描述的重要关键字 |
list | 列出目前yum所管理的所有软件名称和版本(类似rpm -qa) |
info | 同上,(类似rpm -qai的运行结果) |
provides | 从文件去搜寻软件 (类似rpm -qf的功能) |
④源码安装
(1)下载源码包
>>>软件的下载使用wget命令
命令格式:wget url (网站链接)
(2)解压源码包
>>>使用tar进行解压
首先,需要用file命令查看下载好的源码包的压缩方式
然后,再用对应压缩方式的解压方法去解压该文件
如果是gzip 压缩包,解压命令 :tar -zxvf file
如果是bzip2压缩包,解压命令 :tar -jxvf file
(3)安装源码包三部曲
>>>配置(./configue)
在解压好的目录里找到configure文件
在命令行输入: ./configure --sbin-path=软件可执行二进制文件所放路径 --conf-path=配置文件所放路径 --pid-path=进程id所放路径 --with-http_ssl_module(启动http模块)
>>>编译(make)
完成配置操作,会在软件的目录生成Makefile文件,输入命令:make ——>执行编译操作
>>>安装(make install)
完成编译操作后,输入命令 make install ——>完成安装
说明:
>>>以上内容是本人学习的总结
>>>如还有错误,请留言,指正
>>>亦可分享自己的想法,互相学习