Linux rpm包、rpm源码包及tar源码包的安装详解

  1. 云栖社区>
  2. 博客>
  3. 正文

Linux rpm包、rpm源码包及tar源码包的安装详解

余二五 2017-11-09 14:41:00 浏览1677
展开阅读全文

     在使用linux系统的过程中,软件包的安装是避免不了的,在linux下,软件安装程序的种类很多,安装方法也格式各样,论安装的舒适肯定比不上windowswindows安装软件基本就是用鼠标点击下一步,如果学习linux的软件包安装,还像windows那样点击鼠标下一步安装,那就太对不起linuxshell了,linuxshelllinux的图形化界面要强大太多了。好了废话不多说了,安装软件包,首先要了解软件包的组成

      软件包由二进制文件、库文件、配置文件、帮助文件、头文件等这重要的部分组成。他们分别存放在系统的那些路径里面?

二进制文件:/bin,  /sbin,  /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

库文件:/lib,  /usr/lib, /usr/local/lib

配置文件:/etc

帮助文件:/usr/share/man,  /usr/local/share/man,  {像README, INSTALL文件主   要存放在 /usr/share/doc}

头文件:/usr/include/


1、软件包的安装方法之rpm安装的相关操作

rpm包的组成:name-version-release.arch.rpm

      name:表示包的名称,包括主包名和分包名

      version:表示包的版本信息

      release:用于标识rpm包本身的发行号,可还包含适应的操作系统

      arch:表示主机平台,noarch表示此包能安装到所以平台上面

gd-devel-2.0.35-11.el6.x86_64.rpm

      gd是这个包的主包名,devel是这个包的分包名,

      2.0.35是表示版本信息,2为主版本,0为此版本,35为修订号,

      11.el6中的11是表示发行号,el6表示是RHEL6

      x86_64是表示包适合的平台,如果是noarch这表示与平台无关




option

参数解释

Example

安装

-i

安装



-v|-vv|-vvv

显示详细信息



-h

#显示安装进度一个#表示2%的进度

rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm


--nodeps

忽略依赖关系



--test

测试安装



--replacepkgs

重新安装(安装的包已经安装了)


升级

-U   -Uvh

升级+安装



-F    -Fvh

升级(此包已经安装了)



--force

有冲突强制升级



--nodeps

忽略包依赖性关系


卸载

-e

卸载

rpm  -e  包名


--nodeps

忽略包依赖性关系


查询

-q  |--query


rpm -q|--query  包名


-qa

查看所有已经安装的包

rpm -qa  查看所有包名

rpm -qa |  grep 包名查看某个包名


-qi

查看包的摘要信息



-qf

查看文件是有那个包安装的

rpm  -qf  /path/to/file


-ql

查看包安装生成的文件清单



-qc

查看包安装生成的配置文件



-qd

查看包安装生成的帮助文档



-q  --scripts

查看相关的脚本

rpm -q--script   包名


-qp[i|l|d|c]

查看尚未安装包的详细信息

rpm -qpi /path/to/rpm_file

校验

-V


rpm -V   包名

数据库管理

--initdb

新建

rpm  --initdb


--rebuilddb

重建

rpm  --rebuilddb

094646713.png


094717497.png


2、软件包的安装方法之yum安装的相关操作

    yum(Yellowdog Update  Manager),yumRPM的前端工具,是基于RPM的一个管理工具,他能自动的解决安装rpm包产生的依赖关系。

    yum的配置文件    /etc/yum.conf

    yum  repository仓库的配置文件/etc/yum.repos.d/*.repo


yum仓库的搭建是使用yum安装的前提,如何搭建一个好的yum仓库?

     1)首先要在yum仓库的文件(/etc/yum.repos.d/)中建立一个以.repo结尾的文件;

     2)[  ]方括号里面是写仓库的ID(repository_ID),名称可以随便取,但必须唯一;

     3)name是yum的名称也可以随便取,也必须唯一;

     4)baseurl指定你可以能通过本机、http或者ftp访问到那些rpm包的所在路径,该路径下必须有一个    

        repodata的文件,比如/media下面有那个repodata的文件,那你的baseurl指向/media/,如果  

是/media/Server下面有那个repodata的文件,那你的baseurl指向 /media/Server/目录;

     5)enabled默认为11表示启用此仓库,0表示不启,

     6)gpgcheck默认也是为11表示检查公钥,当检查公钥时要指定gpgkey的地址,0表示不检查,不

        检查公钥就不用指gpgkey的地址,如果是本地光盘搭建yum仓库,则可以设置gpgcheck=0

     7)当gpgcheck=1时,gpgkey指向包含RPM-GPG-KEY-CentOS-6这个文件的路径

     8)cost是表示花费代价,cost默认是2000,越小越先访问

用光盘搭建本地yum仓库的方法:

1
2
3
4
5
6
7
8
mount/dev/cdrom   /media
cat>> /etc/yum.repos.d/iso.repo<<EOF
[iso]
name=centos6.4-x86_64
baseurl=file:///media/
gpgcheck=0
enable=1
EOF


搭建外网的yum仓库(sohuyum仓库)的方法

1
2
3
4
5
6
7
8
cat>> /etc/yum.repos.d/sohu.repo<<EOF
[sohu]
name=Internet-centos
baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch
gpgcheck=1
enable=1
gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6
EOF

$releasever:表示你的系统的版本,变量会自动的检测你的版本


$basearch:表示CPU的架构,是x86_64,还是i386系列



如果自己在网上下载了很多rpm软件包,也想搭建一个yum仓库,则使用createrepo

createrepo会生成一个repodata的软件信息仓库文件,然后搭建该目录的yum仓库

rpm包可以在下面两个网站去搜索

http://rpm.phone.net

http://www.rpmfind.net

http://pkgs.org/


103521896.png

103641463.png


103553135.png

1
2
3
4
5
6
cat>> /etc/yum.repos.d/xen.repo << EOF
[xen]
name=centos-xen
baseurl=file:///root/xen-4.1  #存放软件的路径且路径中有repodata这个文件
gpgcheck=0
EOF

搭建完xen的yum后,可以用yum安装xen了

104159653.png

yum常用的命令:


操作命令

命令解释

列表

yum list  <package_name>

列出指定安装软件的清单


yum list installed

列出所有已安装的软件包


yum list extras

列出所有已安装但不在 Yum  仓库內的软件包


yum grouplist

列出所有的组


yum grouplist "Group1"

列出指定组的软件包列表

安装

yum -y install  <package_name>

安装指定的软件


yum  -y groupinstall   "Group1"  "Group2"  

安装指定的组


yum -y localinstall <package_name>

yum安装下载到本地的rpm

更新

yum check-update

列出所有可更新的软件清单


yum update

安装所有更新软件


yum update  <package_name>

更新指定的软件

信息

yum  info

显示所有包的信息


yum  info <package_name>

显示指定包的信息


yum  groupinfo "Group1"   "Group2"

显示指定组的信息

清除

yum clean all

清除所有yum所保存的信息


yum clean metadata

只清空保存的数据信息

其它操作

yum  repolist [all|enable|disable]

查看yum仓库的个数,默认显示启用的


yum   makecache

手动生成缓存


yum search  <package_name>

查询rpm包


yum reinstall  <package_name>

重新安装一遍


yum provides  <package_name>

列出软件包提供哪些文件


yum安装开发组

(RHEL6.x)

yum  -y groupinstall        "DesktopPlatform Development"     "Development  tools"  "Server Platform Development"

(RHEL5.x)

yum  -y  groupinstall       "Development  tools " "Development  Libraries"


3、软件包安装之tar源码包编译安装

tar编译安装的三部曲:

     在安装三部曲之前,建议先看看解压之后目录里面的包含README, INSTALL文件,这里面的文件会告诉你详细安装步骤。

    1)configure        检测编译环境

     2)make               进行编译

     3)make install     编译安装

http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.bz2

下载apache的tar源码包地址

1
2
3
4
5
6
7
8
9
10
11
#安装tar源码包可以先安装开发工具,可以减少安装相关的依赖性包
[root@Redhat6 ~]# yum  -y groupinstall   "DesktopPlatform Development"     "Development tools"  "Server Platform Development"
[root@Redhat6 ~]#tar xf httpd-2.2.25.tar.bz2    #先解压
[root@Redhat6 ~]# cd httpd-2.2.25  #进入到解压后的目录
[root@Redhat6 httpd-2.2.25]# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite   #检查编译环境
[root@Redhat6 httpd-2.2.25]# make  #编译
[root@Redhat6 httpd-2.2.25]# make install  #编译安装
[root@Redhat6 httpd-2.2.25]# cd /usr/local/apache  #进入到安装的目录下面
[root@Redhat6 apache]# ls    #查看安装生成了那些文件
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual

tar安装包后需要修改几个地方,使得tar安装包后能与系统识别的路径相关联

1)、改PATH环境变量

写到/etc/profile.d/*.sh------>source /etc/profile 里面写安装软件后bin的路径

1
2
echo"PTAH=/usr/local/apache/bin:$PATH">>/etc/profile.d/apache.sh
source/etc/profile

或者直接 export PATH=/usr/local/apache/bin:$PATH


2)、添加库文件的搜索  /etc/ld.so.conf/    etc/ld.so.conf.d/*.conf

在/etc/ld.so.conf.d/*.conf   lib的路径  ldconfig -v    

1
2
echo"/usr/local/apache/lib">>/etc/ld.so.conf.d/apache.conf
ldconfig -v| grepapache


3)、帮助文档的使用  /etc/man.conf    MANPATH

/etc/man.config man手册的路径

1
echo"MANPATH /usr/local/apache/man ">>/etc/man.config

然后就可以直接使用man httpd等命令了,不在配置文件中指定路径可以直接

man -M /usr/local/apache/man httpd


4)、关联系统所识别的头文件

把头文件的路径链接到系统头文件中, ln  -sv 源  目的  /usr/include

1
ln-sv /usr/local/apache/include//usr/include/apache

做完这些操作后源码包安装的软件的使用方法可以和rpm安装的使用方法相似了

[root@Redhat6 ~]# apachectl start    #开启服务

114007712.png


4、软件包安装之rpm源码包src安装

1)先用rpm安装rpm源码包生成spec文件,这个文件在用户家目录的rpmbuild目录下的SPECS里面

      2)在用rpmbuild编译spec文件生成rpm文件

      3)然后用rpm或者yum安装生成的rpm包


下载nginx的rpm源码包,通过此包来安装nginx,所需包的下载地址

http://mirrors.sohu.com/fedora-epel/6Server/SRPMS/nginx-1.0.15-5.el6.src.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-devel-1.4.8-1.el6.x86_64.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-1.4.8-1.el6.x86_64.rpm


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@Redhat6 opt]#yum -y install rpm-build
[root@Redhat6 opt]#useradd -r mockbuild  #先添加一个用于安装src包的系统用户
[root@Redhat6 opt]#rpm -ivh nginx-1.0.15-5.el6.src.rpm  #在安装src包,安装完成后会再用户的家目录生成一个rpmbuild的文件
[root@Redhat6 ~]# cd ~/rpmbuild/
[root@Redhat6 rpmbuild]# ls
SOURCES  SPECS
[root@Redhat6 rpmbuild]# cd SPECS/
[root@Redhat6 SPECS]# ls
nginx.spec
[root@Redhat6 SPECS]# rpmbuild -ba nginx.spec  #编译rpm源码包
error: Failed build dependencies:  #需要解决依赖性包,GeoIP-devel包可以在网上下载
    GeoIP-devel is needed by nginx-1.0.15-5.el6.x86_64
    gd-devel is needed by nginx-1.0.15-5.el6.x86_64
    libxslt-devel is needed by nginx-1.0.15-5.el6.x86_64
    pcre-devel is needed by nginx-1.0.15-5.el6.x86_64
#在网上下载这些包了之后用yum安装解决依赖性
[root@Redhat6 opt]#yum -y install  GeoIP-1.4.8-1.el6.x86_64.rpm GeoIP-devel-1.4.8-1.el6.x86_64.rpm  libxslt-devel pcre-devel gd-devel
[root@Redhat6 rpmbuild]# cd SPECS/
[root@Redhat6 SPECS]# rpmbuild -ba nginx.spec   #编译生成rpm包
[root@Redhat6 SPECS]# cd /root/rpmbuild/
[root@Redhat6 rpmbuild]# ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
[root@Redhat6 rpmbuild]# cd RPMS/
[root@Redhat6 RPMS]# ls
x86_64
[root@Redhat6 RPMS]# cd x86_64/
[root@Redhat6 x86_64]# ls
nginx-1.0.15-5.el6.x86_64.rpm  nginx-debuginfo-1.0.15-5.el6.x86_64.rpm
[root@Redhat6 x86_64]# rpm -ivh nginx-1.0.15-5.el6.x86_64.rpm
Preparing...                ########################################### [100%]
   1:nginx                  ########################################### [100%]
[root@Redhat6 x86_64]# service nginx start
Starting nginx:                                            [  OK  ]


122153281.png


通过rpm源码包安装的访问已经能够成功了。










本文转自 jie783213507 51CTO博客,原文链接:http://blog.51cto.com/litaotao/1258450,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注