Centos7软件包的管理与安装

  • 2019-03-05
  • 0
  • 0

本节所讲内容:

使用rpm命令-安装-查看-卸载-rpm软件包

 yum管理软件包

实战tar源码包管理-srpm源码包安装方法

1  软件包的管理

软件包的类型

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

tar源码包—–》需要编译

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

1.1  rpm软件包的管理

rpm包的获取方式:

1、CentOS系统镜像光盘  

2、网站rpmfind.net

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

rpm包格式的说明

例1:[root@wang30 ~]# 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使用时,什么情况下使用软件包全名,什么时候使用软件包名?

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

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

1.2.1  从本地安装

[root@wang30 ~]# rpm -qa vsftpd

vsftpd-3.0.2-25.el7.x86_64

[root@wang30 ~]# ls /var/lib/rpm           //从该目录中查询vsftpd是否安装

Basenames     __db.003    Name          Requirename

Conflictname  Dirnames    Obsoletename  Sha1header

__db.001      Group       Packages      Sigmd5

__db.002      Installtid  Providename   Triggername

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

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

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

/bin/zsh                             #shell的一种,兼容bash的所有(特性:显示绝对路径)

[root@wang30 ~]# zsh

[root@wang30]~# cd /etc/sysconfig/network-scripts

[root@wang30]/etc/sysconfig/network-scripts#

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

例:

[root@wang30]~# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm   

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

 (base:可以理解为光盘镜像,有些软件包(如nginx)没有安装在base源上,需要安装epel源)

1.3  rpm查询功能

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

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

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

[root@wang30 ~]# rpm -qf /usr/bin/vim

vim-enhanced-7.4.160-6.el7_6.x86_64   //通过反查命令所在的路径,查询到命令的安装包

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

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

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

-R 查询软件包的依赖性

例:

[root@wang30 mnt]# rpm -q zsh   —>查询指定的包是否安装

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

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

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

/usr/bin/find

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

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

[root@wang30 ~]# rpm -qi lrzsz

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

[root@wang30 ~]# 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@wang30 mnt]# rpm -qpl  /mnt/Packages/zip-3.0-10.el7.x86_64.rpm  

#查看rpm安装后,将生成哪些文件

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

rpm -V包名

rpm -Vf 文件路径

例:

[root@wang30 ~]# which  find

/usr/bin/find

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

findutils-4.5.11-5.el7.x86_64

[root@wang30 ~]# rpm -Vf /usr/bin/find   #检查具体文件,没有输出任何内容,说明没有被修改

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

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

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

[root@wang30 ~]# rpm -V findutils   #检查包

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

(linux中没有反馈,就是正常)

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

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

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

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

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

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

D — 设备

U — 用户,文件的属主

G — 用户组

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

? — 不可读文件

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

c 配置文件

d 普通文件

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

l 授权文件(license file)

r 描述文件

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

root@wang30 ~]# rpm -Va  > rpm_check.txt

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

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

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

扩展:

MD5校验:

[root@wang30]~# md5sum /etc/passwd

7757baaec4910866d9c3828da5c5eef1  /etc/passwd   //对文件进行hash算法

[root@wang30]~# echo 123 | md5sum

ba1f2511fc30423bdbb183fe33f3dd0f  –

1.5  rpm包卸载和升级

用法:rpm  -e(erase) 包名       //擦除软件

[root@wang30 ~]# rpm -qa zsh         //不需要写版本号

zsh-5.0.2-28.el7.x86_64

[root@wang30 ~]# rpm -e zsh

[root@wang30 ~]# 

[root@wang30 ~]# rpm -qa zsh

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

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

升级:

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

8.1.6  解决rpm依赖关系: 

[root@wang30 ~]# 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

错误:依赖检测失败:(centos7以后使用mariadb,mysql被oracle收购,redhat担心版权问题,使用mariadb)

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@wang30 ~]# rpm -ivh /mnt/Packages/mariadb-5.5.56-2.el7.x86_64.rpm 

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

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

//按tab补齐,不要手动敲,容易敲错,手动解决依赖关系

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@wang30 Packages]# mount /dev/cdrom /mnt/ 

[root@wang30 Packages]# ls /mnt/

2、配置yum源文件:(一般目录中会存在很多以.repo结尾的源)

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

[centos7]

name=CentOS7

baseurl=file:///mnt

#baseurl=ftp://

#baseurl=http:// 文件共享

enable=1

gpgcheck=1

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校验的公钥文件地址

[root@wang30 yum.repos.d]# cat /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

(公钥验证私钥)

报错:

如果遇到报错公钥问题,需要导入公钥:

[root@wang30 ~]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

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@wang30 yum.repos.d]# vim /etc/yum.repos.d/CentOS-Base.repo

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

注:$releasever系统的版本的值等于

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

CentOS Linux release 7.4.1708 (Core) 

$basearch 等于:x86_64

排错: 如果下载Centos-7.repo后,不用能。$ releasever为变量,版本号会变动

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

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

[root@localhost ~]# sed -i  ‘s/$releasever/7.6.1810/g’ /etc/yum.repos.d/CentOS-Base.repo

#sed 全文替换,-i 插入,把releaseserver中的值替换成最新版本

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

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

2.2  yum使用

yum常用操作:

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

 [root@wang30 ~]# yum install /usr/local/xx.rpm   #安装本地指定路径下的rpm包

或:

[root@wang30 ~]# yum localinstall /usr/local/xx.rpm

[root@wang30 ~]#  yum -y update    #升级软件包,改变软件设置和系统设置,系统版本内核都升级(2.6升级3.0 配置文件和版本)

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

[root@wang30 ~]#  yum -y update  # 不加任何包,表示整个系统进行升级

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

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

[root@wang30 ~]# yum provides “*libmysqlclient.so*”

[root@wang30 ~]#  yum -y remove  包名    #卸载包或erase 

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

[root@wang30 ~]# yum repolist    #列出已经启用的软件仓库

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

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

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

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

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

# yum grouplist   #查看有哪些软件包组

语法:yum groupinstall GROUPNAME

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

[root@bogon Packages]# echo $LANG 

zh_CN.UTF-8     

[root@bogon Packages]#LANG=en_US.UTF-8

yum grouplist

[root@localhost Packages]# yum grouplist

测试:

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

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

实战一:自建yum仓库(不能上网,本地仓库,本地源。网络稳定,网络仓库,网络源)

  1. 创建一个目录,保存对应的软件

[root@wang30 soft]# ls

esound-libs-0.2.41-12.el7.x86_64.rpm

xlockmore-5.56-1.el7.x86_64.rpm   #锁屏软件

  • 建立repo文件

[centos7]

name=CentOS7

baseurl=file:///mnt/cdrom         #确定挂载的路径一致

enable=1

gpgcheck=0   #不校验

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

[root@wang30 yum.repos.d]# yum clean all

[root@wang30 yum.repos.d]# yum makecache

  • 使用createrepo扫描该目录下的软件,会自动生成软件关系目录

[root@wang30 ~]# createrepo /soft

-bash: createrepo: command not found    #命令不存在或者输入错误

[root@wang30 ~]# yum -y install createrepo   #从本地光盘安装该软件

[root@wang30 ~]# which createrepo

/usr/bin/createrepo

[root@wang30 ~]# rpm -qf /usr/bin/createrepo

createrepo-0.9.9-28.el7.noarch   #反查软件包

[root@wang30 ~]# createrepo /soft/    #扫描后多出repodata,建立软件包之间的依赖关系

[root@wang30 soft]# ls    #该目录就是一个本地仓库

esound-libs-0.2.41-12.el7.x86_64.rpm  xlockmore-5.56-1.el7.x86_64.rpm  repodata

[root@wang30 soft]# ls repodata/

12187f9f71f49162c7139d34c04cf71e76640f747b4048054542c14804a3948a-primary.sqlite.b

  1. 配置本地yum源

[root@wang30 yum.repos.d]# vim centos7.repo   #是可以添加到一个或两个文件中的

[centos7]

name=CentOS7

baseurl=file:///mnt/cdrom

enable=1

gpgcheck=0

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7        gpgcheck=1就取消注释

[myself]

name=myself

baseurl=file:///soft

enable=1

gpgcheck=0

[root@wang30 yum.repos.d]# yum clean all

[root@wang30 yum.repos.d]# yum makecache

[root@wang30 soft]# yum list | grep xlockmore

xlockmore.x86_64                        5.56-1.el7        myself  #从自建仓库中获取的软件包

  • 安装软件

[root@wang30 soft]# yum -y install xlockmore-5.56-1.el7.x86_64.rpm

Dependency Installed:

  mesa-libGLU.x86_64 0:9.0.0-4.el7         #在光盘中寻找到依赖,自动安装上

实战二:配置特定软件包的yum源

[root@wang30 ~]# wget -P /soft     #-P 指定下载mysql5.7的镜像源位置
https://repo.mysql.com/mysql57-community-release-el7.rpm

[root@wang30 ~]# cd /etc/yum.repos.d/

[root@wang30 yum.repos.d]# ls

back  backup91  centos7.repo

[root@wang30 yum.repos.d]# rpm -ivh /soft/mysql57-community-release-                                                              el7.rpm

[root@wang30 yum.repos.d]# ls

back      centos7.repo          mysql-community-source.repo

backup91  mysql-community.repo    #安装mysql软件的yum源连接互联网即可

[root@wang30 yum.repos.d]# yum list | grep mysql   #查询到关于mysql的安装包

[root@wang30 yum.repos.d]# cat mysql-community.repo

# Enable to use MySQL 5.5

[mysql55-community]

name=MySQL 5.5 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/

enabled=0

gpgcheck=1

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

# Enable to use MySQL 5.6

[mysql56-community]

name=MySQL 5.6 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/

enabled=0

gpgcheck=1

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

注意:文件中存在众多版本,默认会去寻找版本高的进行安装,避免安装更高版本的,需要删除

[root@wang30 yum.repos.d]# vim mysql-community.repo

注释多行:ctrl+v向下键选择    按大写I  输入#  按esc退出  发现所

[mysql57-community]

name=MySQL 5.7 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql            #只保留5.7版本

[root@wang30 yum.repos.d]# yum install mysql-community-server.x86_64   #这样就会特定yum源中安装mysql5.6

其他软件可以采用类似方法:

3 实战tar源码包管理-srpm源码包安装方法

3.1  源码安装nginx
1. 编译环境如gcc和 gcc-c++编译器,make 
2. 准备软件 : nginx-1.12.2.tar.gz

部署Nginx(更换到阿里源)
# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel  

zlib:压缩库

openssl:提供https支持

pcre: 支持正则表达式,地址重写rewrite

注意:报错,先不要baidu,自己先看懂错误,思考错误原因。

nginx下载位置:

http://nginx.org/download/


开始安装

源码编译3把斧:./configure  , make  ,make install

[root@wang30 ~]# tar xvf nginx-1.12.2.tar.gz

[root@wang30 ~]# cd nginx-1.12.2
[root@wang30 ~]#./configure  –prefix=/usr/local/nginx       //依赖库全部安装不会报错,如果存在error

[root@wang30 nginx-1.12.2]# echo $?            //返回为0,表示没有任何错误

[root@wang30 ~]#  make -j 4           //4个cpu进程同时编译(可在执行过程中按top查看 cpu占用可能超过100%)


[root@wang30 ~]#  make install

3. 详解源码安装3把斧
./configure
a. 指定安装路径,例如 –prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 –enable-ssl, –disable-filter –with-http_ssl_module
c. 和其它软件关联,例如–with-pcre
d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求
最终生成:Makefile
make  -j 4   #按Makefile文件编译,可以使用-j 4指定4核心CPU编译,提升速度

make install  #按Makefile定义的文件路径安装

# make clean   //清除上次的make命令所产生的objectMakefile文件。使用场景:当需要重新执行configure时,需要执行make clean(参数出错、重新make时候)

例如:

[root@wang30 nginx-1.12.2]# ls

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src

[root@wang30 nginx-1.12.2]# make clean

rm -rf Makefile objs

[root@wang30 nginx-1.12.2]# ls         #不存在两个文件

auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  

3.2  删除源码包:

安装完,删除:

make  uninstall   

有时删除不干净,所以建议大家安装时,在configure步骤添加一个: –prefix  参数。这样删除或备份时,直接对删除–prefix指定的安装目录操作就可以了。

3.3  实战2:源码编译出错的5个种完美解决方法

从windows上传extundelete文件到linux 

解压并安装extundelet

[root@wang30 data]# yum install bzip2

[root@wang30 extundelete-0.2.4]# tar jxvf extundelete-0.2.4.tar.bz2 

[root@wang30 ~]# cd extundelete-0.2.4

 [root@wang30 extundelete-0.2.4]# ./configure   #检查系统安装环境

Configuring extundelete 0.2.4

configure: error: Can’t find ext2fs library

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

[root@wang30 Packages]# rpm -ivh libcom_err*

源码编译出错后,常见解决方法:

共5种方法

方法1:[root@wang30 Packages]# rpm -ivh ext2fs^C   #按两下tab键。 一般情况,ext2fs就是要安装的软件包的名字开头。如果存在 自动补全

方法2:[root@wang30 Packages]# ls *ext2fs*   #查找完整关键字

方法3:[root@wang30 Packages]# ls *2fs*    #查找部分关键字

方法4:  终极大招

http://www.rpmseek.com/index.html

方法5:  使用yum去搜索

[root@wang30 Packages]# yum search ext2fs

安装库:

[root@wang30 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时又说找不到。怎么办?

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

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

扩展:技巧

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

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

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

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

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

/usr/local/bin/extundelete

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

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

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

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

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

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

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

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

编译:

[root@wang30 ~]# 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   #安装

总结:

1  使用rpm命令-安装-查看-卸载-rpm软件包

2  yum管理软件包

3  实战tar源码包管理-srpm源码包安装方法

评论

还没有任何评论,你来说两句吧