centos 7软件包的安装与管理

1  软件包的管理

  软件包的类型

  rpm二进制包------》已经使用GCC编译后的

tar源码包-----》需要编译

RPM概述:RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

1.1  rpm软件包的管理

rpm包的获取方式:

1、Centos系统镜像光盘 

2、网站rpmfind.net

3、比如安装mysql、nginx软件,我们可以去它的官方网站下载:http://www.mysql.com

rpm包格式的说明:# ls  /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm

zsh     -5.       0.         2-      28.                  el7.             x86_64.rpm

软件名 主版本号 次版本号  修订 release(第几次发布版本) 操作系统版本   软件包是64位包 

#修订指是的第几次修改bug。   发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动。

 

1.2  安装rpm软件

  RPM工具使用分为安装、查询、验证、更新、删除等操作

  命令格式:rpm [参数] 软件包

   参数:

      -i   是install的意思, 安装软件包

     -v  显示附加信息,提供更多详细信息

     -V  校验,对已经安装的软件进行校验

     -h  --hash  安装时输出####标记

互动:rpm使用时,什么情况下使用软件包全名,什么时候使用软件包名?

全名:在安装和更新升级时候使用

包名:对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。

 

1.2.2 从本地安装rpm包

           挂载本地镜像到/mnt  :   [root@52nanxion1 07:48:32 ~]#mount /dev/cdrom /mnt

                                                  [root@52nanxion1 07:48:32 ~]#ls /mnt

                                                  [root@52nanxion1 07:48:32 ~]#rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm

                                                   [root@52nanxion1 07:48:32 ~]#umount /dev/cdrom  /mnt            #取消挂载

1.2.3  从网上下载直接安装centos epel扩展源

      例:

              rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  

              #安装centos epel扩展yum源。 注:epel源是对centos7系统中自带的 base源的扩展。

 

1.3  rpm查询功能

  用法:rpm -q(query) 常与下面参数组合使用

-a(all)  查询所有已安装的软件包

-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询

-i  显示已经安装的rpm软件包信息,后面直接跟包名

-l(list)  查询软件包中文件安装的位置

-p  查询未安装软件包的相关信息,后面要跟软件的命名

-R 查询软件包的依赖性

 

例:

[root@52nanxion1 07:48:32 ~]# rpm -q zsh    --->查询指定的包是否安装

[root@52nanxion1 07:48:32 ~]# rpm -qa      --->查询所有已安装包

[root@52nanxion1 07:49:32 ~]# rpm -qa |  grep vim     --->查询所有已安装包中带vim关键字的包

[root@52nanxion1 07:49:32 ~]# which find      #查看find命令的路径

    /usr/bin/find

[root@52nanxion1 08:49:32 ~]# rpm  -qf /usr/bin/find    #查询文件或命令属于哪个安装包

[root@52nanxion1 08:49:32 ~]# rpm -qi lrzsz                #查询已经安装的rpm包的详细信息或作用  rpm -qi  rpm包名

 

   针对没有安装的RPM包,要加参数:  -p

# rpm -qpi /mnt/Packages/php-mysql-5.4.16-42.el7.x86_64.rpm

  [root@52nanxion1 07:48:32 ~]# rpm -qpl  /mnt/Packages/zip-3.0-10.el7.x86_64.rpm  #查看rpm安装后,将生成哪些文件

 

1.4 查看软件包内容是否被修改

 rpm -V包名

 rpm -Vf 文件路径

例:

[root@52nanxion1 09:48:32 ~]# which  find

[root@52nanxion1 09:48:32 ~]/usr/bin/find

[root@52nanxion1 09:48:32 ~]# rpm -qf /usr/bin/find

findutils-4.5.11-5.el7.x86_64

[root@52nanxion1 09:48:32 ~]# rpm -Vf /usr/bin/find   #检查具体文件

[root@52nanxion1 09:48:32 ~]# echo aaa >> /usr/bin/find

[root@52nanxion1 09:48:32 ~]# rpm -Vf /usr/bin/find

S.5....T.    /usr/bin/find

[root@52nanxion1 09:48:32 ~]# rpm -V findutils   #检查包

S.5....T.    /usr/bin/find

注:如果出现的全是点,表示测试通过  ..............

出现下面的字符代表某测试的失败:

5 — MD5 校验和是否改变,你也看成文件内容是否改变

S — 文件长度,大小是否改变

L — 符号链接,文件路径是否改变

T — 文件修改日期是否改变

D — 设备

U — 用户,文件的属主

G — 用户组

M — 模式 (包含许可和文件类型)

? — 不可读文件

再后面的c 文件名,它表示的是文件类型

c 配置文件

d 普通文件

g 不该出现的文件,意思就是这个文件不该被这个包所包含

l 授权文件(license file)

r 描述文件

 

互动: 查看系统中所有的rpm包及安装的文件有没有被黑客修改

[root@52nanxion1 09:48:32 ~]# rpm -Va  > rpm_check.txt

 > # 这个> 表示标准输出重定向。 将rpm -qa 输出到屏幕上的信息重定向到 rpm_check.txt 文件中。

在文件中加一下这个参数描述

注: 检验时参考了 /var/lib/rpm 目录下的rpm数据库信息

 

1.5  rpm包卸载和升级

用法:rpm  -e(erase) 包名

[root@52nanxion1 09:48:32 ~]# rpm -qa zsh    #查询所有rpm包中是否安装zsh包

zsh-5.0.2-28.el7.x86_64

[root@52nanxion1 09:48:32 ~]# rpm -e zsh  #卸载rpm包zsh

[root@52nanxion1 09:48:32 ~]# rpm -qa zsh  #再次查询是否还存在zsh包  已验证是否卸载成功

参数: --nodeps 忽略依赖,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum

[root@52nanxion1 09:48:32 ~]# rpm -e --nodeps lrzsz

升级:

[root@52nanxion1 09:48:32 ~]# rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm    #因为升级时会有一些依赖包要解决。 所以一般我们使用yum update 包  来升级。

 

2. YUM的使用

yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记

YUM:解决依赖关系问题,自动下载软件包,它是基于C/S架构

        C=client               S=ftp\http\file...

2.1  配置yum源

 2.1.1  配置本地yum源

1、挂载镜像:

[root@52nanxion1]# mount /dev/cdrom /mnt/

[root@52nanxion1]# ls /mnt/

2、配置yum源文件:

[root@52nanxion1]# vim /etc/yum.repos.d/centos7.repo   #必须以.repo结尾,插入以下内容

[centos7]

name=CentOS7

baseurl=file:///mnt

enable=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

注:

[centos7]                      #yum源名称,在本服务器上唯一的,用来区分不同的yum源                    

name= CentOS7                  #对yum源描述信息

baseurl=file:///mnt      #yum源的路径,提供方式包括FTP(ftp://...)、HTTP(http://...)、本地(file:///...                                                                     光盘挂载目录所在的位置)

enabled=1                           #为1,表示启用yum源;0为禁用

gpgcheck=0                         #为1,使用公钥检验rpm包的正确性;0为不校验

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  #指定进行rpm校验的公钥文件地址

2.1.2  网络yum源

 Centos 7 配置网络yum源

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#wget 下载文件 ,-O 将wget下载的文件,保存到指定的位置,保存时可以重新起一个名字,或者直接写一个要保存的路径,这样还用原来的文件名。

查看:

[root@52nanxion1 yum.repos.d]# vim /etc/yum.repos.d/CentOS-Base.repo

找到这一条:baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/

注:$releasever系统的版本的值等于  cat /etc/centos-release 

[root@52nanxion1 ~]# cat /etc/centos-release

CentOS Linux release 7.4.1708 (Core)

而  $basearch 等于:x86_64

排错: 如果下载Centos-7.repo后,不能用

解决:打开阿里云链接:http://mirrors.aliyun.com/centos/ 找到centos7最新版本号  7.4.1708

然后执行:sed 进行全文替换

[root@52nanxion1 ~]# sed -i  's/$releasever/7.4.1708/g' /etc/yum.repos.d/CentOS-Base.repo

[root@52nanxion1 ~]# yum clean all    #清空一下yum缓存

[root@52nanxion1 ~]# yum list         #查看列表

2.2  yum使用

yum常用操作:

[root@52nanxion1 ~]#  yum install -y httpd   #安装软件包, -y 直接安装

[root@52nanxion1 ~]#  yum -y update    #升级软件包但不加任何包,改变软件设置和系统设置,系统版本内核都升级,表示整个系统进行升级

[root@52nanxion1 ~]#  yum -y upgrade   #升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变

[root@52nanxion1 ~]#  yum info  httpd    #查询rpm包作用 

[root@52nanxion1 ~]#  yum provides /usr/bin/find  #查看命令是哪个软件包安装的 

[root@52nanxion1 ~]#  yum -y remove  包名    #卸载包

[root@52nanxion1 ~]yum search keyword   #按关键字搜索软件包

 

yum报错,注意的几个小问题:

1、确定光盘是否链接,光盘是否挂载

2、配置文件中格式是否正确,字母,符号有没有少写,挂载点和配置文件中设置的是否一致

      3、网络源需要联网,操作和RPM类似,只是会自动安装依赖项。

2.3  yum安装开发工具软件包组

[root@52nanxion1 ~]# yum grouplist   #查看有哪些软件包组

语法:yum groupinstall GROUPNAME

yum grouplist  #显示中文,如果想变成英文,则执行以一下命令

[root@52nanxion1 ~]# echo $LANG

zh_CN.UTF-8    

[root@52nanxion1 ~]#LANG=en_US.UTF-8

yum grouplist

[root@52nanxion1 ~]# yum grouplist

 

测试:

[root@52nanxion1 ~]# yum remove gcc  -y    #卸载开发工具软件组中的gcc包

[root@52nanxion1 ~]# yum groupinstall 'Development tools'  -y  #安装开发工具软件包组,安装这组软件包时,把gcc再安装上了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux学习随笔)