RPM简述:
RPM是Redhat Package Manager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
首先我们先了解一下在Linux下软件的安装方式,我们众所周知的Windows都在是图形化界面下安装软件的,而我们的Linux也有图形化界面但基本上都是不用的,在Linux下安装软件几乎都是在命令行界面下完成的,哈哈… 是不是很神奇!!!
一、我们先介绍一下Linux下软件包种类及软件包的组成:
1、二进制rpm包它的组成如:nginx-1.0.15-5.el6.x86_64.rpm
Nginx: 表示软件包的名称
1.0.15:表示软件包的版本信息;其中1表示主版本信息,0表示次版本信息,15表示修订号
5.el6: 其中5表示发行号,而el6则表示平台。这里表示的是RHEL6
X86_64: 表示软件包支持的系统平台
.rpm: 表示软件包的格式
2、rpm源码包它的组成如:nginx-1.0.15-5.el6.src.rpm
Nginx: 表示软件包的名称
1.0.15:表示软件包的版本信息;其中1表示主版本信息,0表示次版本信息,15表示修订号
5.el6: 其中5表示发行号,而el6则表示平台。这里表示的是RHEL6
Src=\'#\'" (Source)表示是rpm源码包
X86_64: 表示软件包支持的系统平台
.rpm: 表示软件包的格式
3、tar源码包它的组成如:nginx-1.4.1.tar.gz
Nginx: 表示软件包的名称
1.4.1: 表示软件包的版本信息;其中1表示主版本信息,4表示次版本信息,1表示修订号
.tar.gz:表示软件包的格式
4、软件包主要由:二进制文件、配置文件、库文件、帮助文件以及头文件等部分组成。他们分别存放在系统的哪些位置呢?下面我们分别来介绍:
二进制文件:/bin、/sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin
配置文件:/etc、/usr/local/etc
库文件:/lib、/usr/lib、/usr/local/lib
帮助文件:/usr/share/man、/usr/local/share/man、/usr/share/info、/etc/share/doc、
/usr/local/share/info
头文件:/usr/include、/usr/local/include
二、在我们安装软件之前首先要学会rpm命令的一些常用选项:
命令格式:rpm [OPTION...]Packages
安装 |
OPTION |
注释 |
-i |
安装(通常与vh选项一起使用) |
|
-h |
以#进度显示进度信息 |
|
--force |
强制 |
|
--nodeps |
忽略依赖关系 |
|
--test |
测试安装(不真正安装) |
|
--replacepkgs |
重新安装软件包 |
|
升级 |
-U |
升级(如果没有安装则安装) |
-F |
升级(软件包要事先安装过) |
|
--force |
强制 |
|
--nodeps |
忽略依赖关系 |
|
卸载 |
-e |
卸载 |
查询已安装软件 |
-q |
查询单个软件包 |
-qa |
查看所有已安装软件包 |
|
-qi |
查看软件包摘要信息 |
|
-ql |
查看软件包生成的文件列表 |
|
-qd |
查看软件包生成的帮助文件 |
|
-qf |
查看文件是由哪个软件包安装的 |
|
-q �Cscripts |
查看软件包安装脚本 |
|
查询未安装软件 |
-qp[i|c|d] |
选项与-q的一样 |
校验 |
-V |
校验已安装软件包 |
-K |
校验软件包中的文件 |
|
通用选项 |
-v |
显示详细信息 |
-vv |
显示调试信息 |
|
RPM数据库 |
--initdb |
新建RPM数据库 |
--rebuilddb |
重建RPM数据库 |
示例:
1、安装、卸载软件包
2、忽略依赖关系安装软件包
3、查看已安装的软件与一个文件是由哪个软件安装
4、查询未安装软件
5、校验nginx软件是否被修改及重建RPM数据库
三、YUM介绍:
1、YUM是什么:
yum :全称(Yellow dogUpdater, Modified)主要功能是更方便的添加/删除/更新RPM包,它能自动解决包的倚赖性问题,它能便于管理大量系统的更新问题
2、yum特点
可以同时配置多个资源库(Repository) ,简洁的配置文件(/etc/yum.conf )自动解决增加或删除rpm包时遇到的倚赖性问题,使用方便并保持与RPM数据库的一致性
YUM常用选项及使用:
3、YUM客户端配置文件:/etc/yum.repos.d/*.repo
4、yum命令选项
命令格式:yum [OPTION...] [Packages]
-y 自动应答为yes
yum check-update 列出所有可以更新的软件列表
yum update 安装所有可以更新的软件
yum update-to 升级到指定版本
yum install 安装软件包
yum reinstall 重新安装软件包
yum list 列出yum源所有可以安装的软件包
yum list available 列出所有升级源上面的软件包
yum list updates 列出所有可以更新的软件包
yum list installd 列出所有已安装的软件包
yum remove 删除软件包
yum search 模糊查找软件包
yum info 查看软件包信息
yum provides 列出软件包生成哪些文件
yum history 列出yum历史操作命令
yum clean [ packages |metadata | expire-cache | rpmdb | plugins | all ] 清除缓存
yum repolist[all|enable|disable] 查看yum仓库,默认只查看已启用的
yum grouplist 查看所有软件包组
yum groupinfo 显示组包含的软件包
yum groupinstall 安装RPM组
yum groupupdate 更新RPM软件包组
yum groupremove 删除RPM软件包组
yum makecache 手动生成YUM缓存
注:yum安装开发环境:
RHEL6|CentOS6: "Developmenttools"、"Server PlatformDevelopment" "Desktop Platform Development"
RHEL5|CentOS5:"Development tools"、"DevelopmentLibraries"
5、介绍完Yum命令的使用,接下来我们来制作一个Yum仓库示例:
[root@station79 ~]#yum -yinstall createrepo #先安装用来创建本地仓库的软件包
[root@station79 ~]#createrepo xen/ #创建本地源仓库,在xen文件夹下面会生成”repodata“文件夹
配置并查看yum源
接下来就可以使用yum来安装Xen软件包了,安装完成Xen就可以使用了
三、tar源码包安装软件及常用选项:
1、命令格式:tar [OPTION...] [FILE]...
-c:创建一个新归档
-x:从归档中解压出文件
-f filename:指定归档文件名称,一般以.tar作为文件名后缀
-t:列出归档内容
-C:指定展开位置
-z:调用gzip格式压缩工具
-j:调用bzip2格式压缩工具
-J:调用xz格式压缩工具
-v:详细地列出要处理的文件
2、在安装软件之前,我们需要先把开发包装上,来解决软件包依赖关系:
[root@localhost~]# yum -y groupinstall "Development tools" "Server Platform Development""Desktop Platform Development"
[root@localhost ~]# tar jxf httpd-2.2.21.tar.bz2 #解压软件包
[root@localhost ~]# cd httpd-2.2.21 #切换到刚解压的软件包内
[[email protected]]# ./configure --prefix=/usr/local/apache --enable-rewrite--enable-so #编译前配置,后面有很多选项,可以根据自己需求来定
[root@localhost httpd-2.2.21]#make && make install #编译并安装
[[email protected]]# ls /usr/local/apache/ #查看已成功安装并生成了文件
bin build cgi-bin conf error htdocs icons include logs man manual modules lib
3、用源码包编译安装后,需要调整PATH环境变量、帮助文档、库文件及头文件,以便系统能够识别。
(1)、把二进制文件“bin”目录加入到系统环境变量中,可以添加到”/etc/profile”或”
/etc/profile.d/*.sh”文件中,然后用”source”命令重新读取。还有就是可以直接使用“export”命令。export PATH="/usr/local/apache/bin:$PATH"
[root@localhost ~]# echo "PATH=/usr/local/apache/bin:$PATH" >> /etc/profile
[root@localhost ~]# source /etc/profile
(2)、添加库文件到搜索路径”/etc/ld.so.conf”或”/etc/ld.so.conf.d/*.conf”
[root@localhost ~]# echo "/usr/local/apache/lib" >> /etc/ld.so.conf
[root@localhost ~]# ldconfig -v #重新读取配置文件
(3)、把帮助文档加入到系统搜索路径“/etc/man.conf”文件中
将“MANPATH/usr/local/apache/man” 写入到”/etc/man.conf”文件中
如果不加入到”/etc/man.conf”配置文件中可以使用”man �CM /usr/local/apache/man httpd”指定man手册的路径
(4)、将头文件加入到系统搜索路径中,可以使用”ln �Cs”来创建软链接的方式加入到”/usr/include”
如:ln �Cs /usr/local/apache/include/ /usr/include/apache
(5)、到此源码包安装软件一系列过程就大功告成了。接下来我们启动apache来测试一下:启动命令 apachectl [start|stop|restart] 分别为:启动/停止/重启
启动apache: [root@localhost ~]#apachectl start
四、rpm源码包安装
1、下面以nginx-1.0.15-5.el6.src.rpm为例来介绍rpm源码包安装过程:
[root@localhost ~]# yum -y install rpm-build #安装rpm软件包制作工具
[root@localhost ~]# useradd mockbuild #添加用户,用户安装rpm源码包
[root@localhost ~]# rpm -ivh nginx-1.0.15-5.el6.src.rpm #安装软件包会在用户家目录生成”rpmbuild”文件夹
[root@localhost ~]# cd rpmbuild/SPECS/ #进入rpmbuild/SPECS文件夹,有一个nginx.spec是用来生成nginx的rpm包文件
[root@localhost SPECS]# ls
nginx.spec
[root@localhost SPECS]#rpmbuild -ba nginx.spec #制作”nginx”rpm包,-ba选项会生成两个文件一个是rpm包二进制文件另一个是rpm源码包文件,而-bb只生成一个rpm二进制文件包。(这一步根据个人计算机环境,会有软件包依赖关系)
[root@localhost ~]# ls rpmbuild/ #查看生成的rpm软件包在rpmbuild/RPMS文件夹下,而rpm源码包在SRPMS文件夹内
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
[root@localhost ~]# ls rpmbuild/RPMS/x86_64/ #查看生成的软件包
nginx-1.0.15-5.el6.x86_64.rpm
[root@localhost ~]# ls rpmbuild/SRPMS/
nginx-1.0.15-5.el6.src.rpm
[root@localhost x86_64]# rpm -ivh nginx-1.0.15-5.el6.x86_64.rpm #安装软件包
2、已经制作安装完成,接来下我们来启动测试一下是否正常(启动前要确定80端口没有被占用)。启动命令: service nginx {start|stop|reload|status|restart} 分别为:启动、停止、重新加载、查看状态、重启
[root@localhost x86_64]#service nginx start #启动nginx成功
Starting nginx: [ OK ]
访问成功,那么我们rpm源码包安装也就告一段落到此结束。