08Linux基础-软件包的管理与安装

1  软件包的管理

软件包的类型

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

tar源码包—–》需要编译

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

1.1  rpm软件包的管理

rpm包的获取方式:

1、Centos系统镜像光盘  

2、 站rpmfind.net

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

rpm包格式的说明

1:[root@test ~]# ls /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm

/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使用时,什么情况下使用软件包全名,什么时候使用软件包名p>

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

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

1.2.1  从本地安装

[root@test ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm

[root@test ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

/bin/zsh

1.2.2  从 上下载直接安装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@test mnt]# rpm -q zsh   —>查询指定的包是否安装

[root@test mnt]# rpm -qa     —>查询所有已安装包

[root@test mnt]# rpm -qa |  grep vim    —>查询所有已安装包中带vim关键字的包

[root@test ~]# which find     #查看find命令的路径

/usr/bin/find

[root@test ~]# rpm  -qf /usr/bin/find   #查询文件或命令属于哪个安装包

查询已经安装的rpm包的详细信息或作用  rpm -qi  rpm包名

[root@test ~]# rpm -qi lrzsz

 

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

[root@test ~]# rpm -qpi /mnt/Packages/php-mysql-5.4.16-42.el7.x86_64.rpm

。。。

Summary     : A module for PHP applications that use MySQL databases  #php使用mysql数据库的一个模块

 [root@test mnt]# rpm -qpl  /mnt/Packages/zip-3.0-10.el7.x86_64.rpm  #查看rpm安装后,将生成哪些文件

 

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

rpm -V包名

rpm -Vf 文件路径

例:

[root@test ~]# which  find

/usr/bin/find

[root@test ~]# rpm -qf /usr/bin/find

findutils-4.5.11-5.el7.x86_64

[root@test ~]# rpm -Vf /usr/bin/find   #检查具体文件

[root@test ~]# echo aaa >> /usr/bin/find

[root@test ~]# rpm -Vf /usr/bin/find

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

[root@test ~]# 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@test ~]# rpm -Va  > rpm_check.txt

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

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

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

 

1.5  rpm包卸载和升级

用法:rpm  -e(erase) 包名

[root@test ~]# rpm -qa zsh

zsh-5.0.2-28.el7.x86_64

[root@test ~]# rpm -e zsh

[root@test ~]#

[root@test ~]# rpm -qa zsh

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

[root@test ~]# rpm -e –nodeps lrzsz

升级:

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

1.6  解决rpm依赖关系:

[root@test ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm

警告:/mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY

错误:依赖检测失败:

mariadb(x86-64) = 1:5.5.56-2.el7 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要

perl-DBD-MySQL 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要

解决:

[root@test ~]# rpm -ivh /mnt/Packages/mariadb-5.5.56-2.el7.x86_64.rpm

[root@test ~]# rpm -ivh /mnt/Packages/perl-DBD-MySQL-4.023-5.el7.x86_64.rpm

[root@test ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm

2  YUM的使用

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

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

C=clientS=ftphttpfile

2.1  配置yum源

2.1.1  配置本地yum源

1、挂载镜像:

先确定虚拟机光驱中有加载系统镜像

 

 

方法5:  使用yum去搜索

[root@test Packages]# yum search ext2fs

安装库:

[root@test Packages]# rpm -ivh e2fsprogs-libs-1.41.12-11.el6.x86_64.rpm

warning: e2fsprogs-libs-1.41.12-11.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing…                                                            ########################################### [100%]

package e2fsprogs-libs-1.41.12-11.el6.x86_64 is already installed

互动:这里显示库已经安装,但是configure时又说找不到。怎么办p>

解决:安装了库,却显示找不到。 这种情况: 需要安装库的开发文件

[root@test]# rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm

扩展:技巧

查看rpm包安装后生成的文件:

[root@test Packages]#rpm -qpl e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm | more

[root@test extundelete-0.2.4]# make  -j 4  

[root@test extundelete-0.2.4]# make install  #安装

[root@test extundelete-0.2.4]# ls /usr/local/bin/extundelete   #查看安装后的文件

/usr/local/bin/extundelete

 

总结,软件安装方法特点:

rpm+yum:方便,软件版本低。稳定性好、管理方便。性能稍差。

源码编译安装:麻烦,软件版本新,可以定制。稳定性稍差、管理稍差。性能好。

源码编译安装:主要是安装LAMP或LNMP 架构时,我们会用

 

3.4  安装.src.rpm源码包的方法(了解)  

srpm: Source RPM 的意思,也就是这个 RPM 档案里面含有原始码( Source Code )。

上传lrzsz-0.12.20-27.1.el6.src.rpm linux的/root目录

[root@test ~]# rpm -e lrzsz  #先卸载软件包

编译:

[root@test ~]# rpmbuild –rebuild  lrzsz-0.12.20-27.1.el6.src.rpm     #根据将src.rpm中源码文件编译成可执行的二进制文件。

若顺利执行成功则会在root用户家目录下生成一个:/root/rpmbuild目录。

/root/rpmbuild/RPMS/x86_64/目录下生成lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm这个rpm文件。

# rpm -ivh rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm   #安装

相关资源:Android程序中安装其它软件包_设计一个Android程序-Android代码类…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月28日
下一篇 2019年6月28日

相关推荐