Linux文件系统之程序包管理

目录

①包名称信息(包全名)

②软件包分类

③Linux包管理工具

RPM

SRPM

YUM——解决RPM软件包依赖关系的工具

④源码安装

(1)下载源码包

(2)解压源码包

(3)安装源码包三部曲

配置(./configue)

编译(make)

安装(make install)


前言:

>>>Linux开发商现在固定的硬件平台上将需要安装或升级的软件编译好,然后将这个软件的所有相关文件打包成一个特殊格式的文件(包含预先侦测系统与相应软件的脚本),并记载该软件提供的所有文件资讯,最终将这个软件释出

>>>用户端取得这个文件后,只需用特定命令来安装,若安装环境符合需求,就会开始安装

>>>安装完成后,还会将该软件的资讯写入软件管理机制中,以便后续升级;、移除等操作包名称中隐藏的信息

 

①包名称信息(包全名)

>>>包全名:操作的包是没有安装的软件包

>>>在rhel、centos、fedora系统上,包名称都是以rpm结尾,分为二进制和源码包

例:nginx-1.14.0-1.e16.ngx.x86_64.rpm

以此nginx包名称为例对包名称信息解读:

字段

含义

nginx

表示包名
操作已经安装的包时,使用包名,通过搜索/var/lib/rpm/中的数据

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]

代表容器的名字,名字可随意取,但不可重复
使用yum安装或更新时,紧跟着的就是中括号里的名字

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     ——>完成安装

 

 


说明:

>>>以上内容是本人学习的总结

>>>如还有错误,请留言,指正

>>>亦可分享自己的想法,互相学习

猜你喜欢

转载自blog.csdn.net/Mr_Bei/article/details/82763788