Linux 运维中,为什么现在很多人用rpm源码包安装而不用 RPM 安装

chrinux 的BLOG
用户名:chrinux
文章数:40
评论数:136
访问量:149244
注册日期:
阅读量:5863
阅读量:12276
阅读量:334921
阅读量:1039617
51CTO推荐博文
在windows系统上我们安装软件的时候加上了一些与这些程序相关的信息,将他建立称为了数据库,就可以实现软件的安装、卸载、升级与验证了,类似于windows的&添加删除程序&。由于在linux系统上利用源码包设置编译参数、实际编译、最后还要根据需要的方式来安装程序,这个过程很是麻烦,而且对于不熟悉整个系统的用户来说,更是一种负担,所以后来在我们linux系统下至有两种常见的套件管理程序,分别是RPM和Debian的dpkg,其中RPM最为常见,那么晚我们下面就来介绍下RPM。&&RPM的全名为&RedHat&Package&Manager&,顾名思义它是由RedHat公司开发的。Rpm是以一种数据库记录的方式将所需要的套件安装到linux主机的一套管理程序,它最大的特点就是将要安装的套件先编译并打包,通过包装好的套件中默认的数据库记录,记录这个套件在安装的时候所依赖的属性模块。用户在安装的时候,RPM会根据套件里的记录信息,查询主机的依赖属性套件是否满足,如满足则给予安装。若不满足在不给于安装、安装的时候将该套件的信息全部写入RPM的数据库中,以方便将来的查询、验证与卸载。这样做的优点:&&1、由于已经编译完成并且打包,所有安装方便。&&2、由于套件信息已经记录在了Linux主机的数据库中,方便查询、升级与卸载。&&当然其也有其缺点,由于所有的数据已经编译完成,所以安装的时候一定需要当初安装时的主机环境,也就是说,当初建立这个套件的安装环境,必须在用户主机上出现,如果不出现就无法进行安装。缺点主要如下:&&1、安装环境必须与打包时的环境一致&&2、需要满足套件的依赖属性需求&&3、卸载时需要特别小心,最底层的套件不可先删除,否则可能对整个系统造成问题。&
RPM程序的数据库位置/var/lib/rpm,这里面定义了关于RPM管理的所有属性,当然我们如果还可以更新这个数据库的,&&rpm&--rebuilddb:重建数据库,一定会重新建立。&&rpm&--initdb:初始化数据库,没有才建立,有就不用建立。&
RPM相关软件包名字格式:
name-version-release.arch.rpm&&name-version-release-release.arch.rpm&&version:主版本号.此版本号.发行版本号.平台.rpm,对于其命名需要遵循以下规则:&&主版本号改变:软件的功能发送了重大的改变。&&此版本号改变:某个子功能发生了重大变化&&发行号改变:修改了部分bug,调整了一点点小功能。&
linux下软件管理套件RPM的出现大大降低了基本软件的安装和升级等管理难度,当然linux此'出生'一来就是一一切皆文件、系统字符界面而著称的,所以虽然软件管理套件可以帮我们实现那么大的功能,也不会像windows上面的那样,我们还需要掌握关于RPM的相关命令才能实现软件的安装、升级、卸载等功能,当然现在也有了图形界面下软件的管理套件,但是我们linux系统的伟大之处是可以稳定、永久不宕机的提供服务的系统,我们不会让其运行在图形界面下的,所以作为一个合格的linux系统运维人员掌握软件的管理命令是必备、基础的要求了。下面我们来介绍介绍关于RPM的相关命令吧~~~&
RPM命令主要包括四类:安装、查询、升级、卸载
⑴、rpm安装命令
& & & & & & &
rpm&-i&/PATH/TO/PACKAGE_FILE:安装软件包&&&&&&&&&&&&&&&&&&&&&&&rpm&-h&:以#显示安装进度,每个#表示2%&&&&&&&&&&&&&&&rpm&-v&:显示安装详细信息&&&&&&&&&&&&&&&rpm&-vv&:更详细的信息&&&&&&&&&&&&&&&rpm&-ivh&:组合使用,一般使用这个组合来安装软件&&&&&&&&&&&&&&&rpm&--nodeps:忽略依赖关系。&&&&&&&&&&&&&&&rpm&--replacepkgs:重新安装、替换原来安装。&&&&&&&&&&&&&&&rpm&-ivh&--oldpackage:降级安装。&&&&&&&&&&&&&&&rpm&-ivh&--force:强行安装,可以实现重装或降级&&&&&&&&&&&&&&&rpm&--test:仅测试有没有依赖关系&
安装zsh的安装包
rpm --test:仅测试有没有依赖关系
⑵、rpm软件查询命令:
&&&&&&&&&&&& rpm -q PACKAGE_NAME:查询指定的包是否安装
&&&&&&&&&&&& rpm -qa :查询以安装的所有包
&&&&&&&&&&&& rpm -qi PACKAGE_NAME:查询指定包的说明信息
&&&&&&&&&&&& rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表
&&&&&&&&&&&& rpm -qc PACKAGE_NAME:查询指定包安装的配置文件
&&&&&&&&&&&& rpm -qd PACKAGE_NAME:查询指定包安装的帮助文件
& & & & &&
rpm&-q&--scripts&PACKAGE_NAME:查询指定包中包含的脚本&&&&&&&&&&&&rpm&-qf&/path/to/somefile:查询指定的文件时由那个rpm包安装生成的&&&&&&&&&&&&如果某个rpm包尚未安装,我们需要查询其说明信息,安装后会生成的文件&&&&&&&&&&&&rpm&-qpi&/PATH/TO/PACKAGE_FILE&&&&&&&&&&&&&&&&&&&&i:软件说明信息&&&&&&&&&&&&rpm&-qpL&/PATH/TO/PACKAGE_FILE&&&&&&&&&&&&&&&&&&&&L:软件文件列表&
⑶、软件升级命令:
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,则安装
&&&&&&&&&&&& rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,则退出
&&&&&&&&&&&& rpm -Uvh --oldpackage 低版本的包:降级
⑷rpm软件卸载命令:
卸载的时候此包不能被其他软件包依赖
&&&&&&&&&&&& rpm -e PACKAGE_NAME& //直接卸载、但是此时如果卸载的软件被其他软件包多以来的话则不能卸载
&&&&&&&&&&&& rpm &nodeps& //忽略软件包之间的依赖关系
⑸、其他相关命令
rpm软件校验命令:
& & & & & & &
rpm&-V&PACKAGE_NAME:无输出信息就是正常,(linux的哲学思想:没有回答则是最好的回答!嘿嘿~~)&&&&&&&&&&&&rpm重建数据库:&&&&&&&&&&&&&&&数据库位置:/var/lib/rpm&&&&&&&&&&&&&&&rpm&--rebuilddb:重建数据库,一定会重新建立。&&&&&&&&&&&&&&&rpm&--initdb:初始化数据库,没有才建立,有就不用建立。&&&&&&&&&&&rpm检验来源合法性及软件完整性:&&&&&&&&&&&&&&&加密类型:&&&&&&&&&&&&&&&&&&&对称:加密解密使用同一个秘钥&&&&&&&&&&&&&&&&&&&公钥:一对秘钥,公钥、私钥;公钥隐含与私钥中,可以提取出来并公开出去。&&&&&&&&&&&&&&&&&&&&&&&公钥:加密,私钥:身份验证&&&&&&&&&&&&&&&&&&&&&&&&红帽公钥:ls&/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release&&&&&&&&&&&&&&&rpm&--import&/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入秘钥文件&&&&&&&&&&&&&&&&rpm&-K&/PATH/TO/PACKAGE_FILE&&&&&&&&&&&&&&&&&&&dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature,略过此项&&&&&&&&&&&&&&&&&&&sha1,md5:验证软件包完整性;可以使用--nodigest,略过此项&&&&&&&&&&&&&&&rpm&-K&--nodigest&/PACKAGE_NAME:只验证签名。&
从上面我们学会了利用rpm套件管理工具在linux系统上进行软件包的安装、升级、查询、卸载等相关命令的操作和方法,但是我们从上面了解到我们利用rpm来进行安装软件的时候会存在软件包之间的依赖关系,而rpm并不能自己智能的解析其各个包之间的依赖关系,但是如果我们利用rpm&&nodeps和rpm&-ivh&--force进行安装的时候很可能造成安装的软件无法正常运行,为了解决这个问题,后来又出现了一个功能更强大的工具:YUM,yum在rpm的基础上很好的解决了软件包之间的依赖关系。&&YUM是一种基于C/S架构的服务,需要Server和Client来进行使用,即yum仓库和本地的yum工具。&
⑴、 服务器端配置:yum仓库可以是本地文件、ftp服务器和http服务器。在其服务器端有yum仓库的配置文件,yum仓库的配置文件叫YUM的元数据文件,元数据文件需要存放在一个叫repodata的目录下面,其目录和组成yum池的rpm包需要同处于同一个目录下,下面我们来认识一下yum的元数据把~~
各个元数据文件的解释:
primary.xml.gz:定义了当前仓库中所有的rpm包列表以及各包之间的依赖关系和每个软件包安装生成的文件列表&&filelists.xml.gz:当前仓库中所有RPM包的文件列表&&other.xml.gz:额外信息,rpm包的修改日志&&repomd.xml:记录的是上面三个文件的时间戳和校验和&&comps-*.xml:RPM包分组信息(需要手动定义)&
⑵、YUM服务客户端的配置
首先确定我们系统上面安装了yum服务软件包:yum-3.2.22-39.el5,可以利用rpm&&q&yum来进行查看,趁着也联系联系使用上面的rpm命令~嘿嘿&&&&客户端配置文件在/etc/yum.repos.d/*.repo文件内进行定义,可以定义多个.repo文件,也可以在一个repo文件定义多个yum服务器,其格式如下:&&[Repo_ID]&&name=Description&&baseurl=yum仓库路径&&enabled={0|1}:是否启用此仓库,默认不写的时候是启用&&gpgcheck={0|1}:校验文件的完整性&&注:关于yum仓库的路径有三种:&&ftp服务器的时候:&&ftp://&..&&http服务器的时候:http://&..&&本地文件的时候:&&&fiel:///&
⑶、上面我们完成了YUM服务的相关配置,那么我们下面来说说关于yum操作的相关命令吧
yum&list:查看yum列表&&yum&list&all:默认选项,会列出所有的yum库&&yum&list&available:列出仓库中未安装的包&&yum&list&installed:列出显示已经安装的软件&&yum&list&updates:列出可以升级的软件包&&yum&clean:清除缓存&
yum clean {packages | headers | metadata | dbcache | all}:清除缓存再查看会再次统计数据并显示出来。
⑷、yum的安装命令
yum&install&PACKAGE_NAME&&//安装软件、此项选择会让你选择&&yum&&y&install&PACKAGE_NAME&//直接自动完成软件的安装&&yum&install&--nogpgcheck:不做校验,安装软件,&&yum&update&&PACKAGE_NAME&:&升级软件包&&yum&&&update_to&PACKAGE_NAME&:升级到指定版本&&yum&remove|erase&PACKAGE_NAME&:卸载软件&
yum info PACEAGE_NAME:查看软件包信息
yum provides|whatprovides file:查看指定文件是由那个软件包生成的
⑸、yum关于组的管理命令
yum&&grouplist&//查看组,包括安装或未安装的&&yum&groupinstall&GROUPNAME&&//安装组,注意如果组名中间有空格,需要使用双引号&&groupinfo&&&组名:显示组包含包信息(如果组名中间有空格,使用&&)&
四、源码程序安装
1、在我们进行编译安装的时候需要提前安装编译软件需要的开发环境和开发库:&Development Tools&和&Development Libraries&
先配置好yum库,然后利用yum库安装&&yum&&y&groupinstall&&Development&Tools&&&//安装开发工具&&yum&groupinstall&-y&&Development&Libraries&&&//安装开发库&
2、解压源码程序包
3、cd 进入源码解压目录
./configure&&//编译安装配置命令&&./config&&help&//查看编译帮助信息&&yum&groupinstall&-y&&Development&Libraries&&&--sysconfdir=/PATH/TO/CONFFILE_PATH:配置文件安装路径,如果不指定则在安装目录下的config目录下&&make编译&&make&install安装&&&&
4、安装完成以后我们需要对我们自定义安装的软件进行设置,设置环境和man等信息
修改PATH环境变量,以便识别此程序的文件路径:在/etc/profile.d/目录下简历一个以.sh为后缀的文件,在里面定义export&PATH=$PATH:/path/to/somewhere&&要想此配置生效,重新登录或者自己手动执行此脚本
5、库文件配置:默认情况下,系统搜索库文件的路径为/lib,/usr/要增加额外的搜寻路径:在/etc/ld.so.conf.d/中创建以.conf为后缀的文件,然后把要增加的路径直接写至此文件中。
ldconfig:通知系统重新搜寻库文件。&&ldconfig&-v:显示重新搜寻库的过程&
6、头文件输出
默认是/usr/inclode&&增添头文件搜寻路径,使用链接进行&&添加头文件有两种方式:ln&-s&/usr/local/tengine/include/*&/usr/include/&&或者ln&-s&/usr/local/tengine/include&/usr/include/tengine&
7、man文件路径添加
man文件路径:默认安装在--prefix指定的目录下的man目录内,而系统默认的是/usr/share/man,我们需要在/etc/man.conf内定义man 的查找路径:在/etc/man.config内添加一条MANPATH
下面我们通过编译、安装web服务器来说明编译安装的相关过程
1、安装开发环境
2、解压源码包
tar xf httpd-2.2.22.tar.bz2
3、进入解压包,然后配置参数、编译、安装
cd httpd-2.2.22&&& //进入源码目录
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd&& //设置安装目录/usr/local/apache,配置文件为/etc/httpd
make && make install&& //编译和安装
下面启动httpd服务吧~~测试一下能否做成工作
是不是启动不了?哈哈~那就对了,那是因为现在我们自定义的软件的命令不在当前的环境变量中
那么下面我们来在系统内添加一下环境变量吧~~
vim /etc/profile.d/httpd.sh ,添加如下内容
export PATH=$PATH:/usr/local/apache/bin&& //增加环境变量
此时若想环境变量生效可以重新登录客户端或者执行一下这个脚本
这里执行下脚本吧~~看看能不能生效
. /etc/profile.d/httpd.sh
下面我们来测试一下吧~
为了更好的说明效果,我们把主页内容更改一下~~
刷新下网页,查看下内容
ok,到此就可以实现比较简单的web服务了,但是此时是那么的丑,所以我们需要对其程序进行进一步的优化,man文件、头文件、库文件、服务启动脚本等信息增加等相关操作,由于此处所说内容已经比较多了,暂时把其相关的操作我们就在下一篇博文内进行讨论吧~当然我们利用上面的有关内容是可以自己实现的~对吧,大侠们!下篇博文暂定为&黄金组合LAMP&~~嘿嘿,四天之后放出,到时候希望大家给还是菜鸟的我指正错误--linux系统博大精深,需要逐步、深入!
上面所说内容只是个人总结,还望各位大侠不吝赐教!指出其中错误~~~~--chrinux(chris linux)。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》
16:26:02 18:46:01Linux下源码安装Apache详解_服务器应用_Linux公社-Linux系统门户网站
你好,游客
Linux下源码安装Apache详解
来源:Linux社区&
作者:Linux
一:编译安装和RPm安装区别:
编译安装:指的是将源码包编成二进制文件。
优点:可以自行调整编译参数。自己可以调整需要的结果,也比较安全。
缺点:安装较为复杂。需要调试参数,维护也比较麻烦。
RPM:指的是把已经编译好的二进制文件。安装到对应的目录。
优点:安装快捷。方便。
缺点:卸载的时候可能会出现问题,卸载时有时把依赖包可能直接卸载掉,导致影响其他的程序不能正常使用。
二:下面主要讲解源码编译的安装,公司比较常用,如果服务不是特别重要和急着临时使用可以采取rpm的安装。根据个人需求。
三:源码安装,
编译安装的步骤:
1)拿到需要的源代码,并解压。
tar xf package-version.tar.{gz|bz2|xz}
2)切换至解压的源码目录中
cd package-version
3)执行configure脚本。
./configure
make install
四:以apache为例。也一并介绍一下apache的一些参数的详解。
1)首先就要拿到自己需要的安装包。
下载包的网站常用的有:或
还有一种管用的方式就是用谷歌输入download +需要的包名。比如:download httpd,然后会搜出来你这个包在的一系列的网站。官网也会直接输出来。
这里提供一个官网的下载地址https://www.apache.org/dist/httpd/
2)找到后在linux下载,下载方式有两种。
第一种:wget -c。
第二种 axel。(支持断点续传)
这里使用axel,详细使用参考:http://shunzi./2403
3)解压下载的安装包。
4)切换到解压的目录。
cd httpd-2.4.7
相关阅读:
日志分析工具Awstats实战之Apache篇-多站点日志分析
在 13.10 下安装支持SSL的Apache
再谈伪装Apache版本防止入侵Web服务器
Apache Python 模块mod_wsgi的编译安装
企业Shell脚本分析及切割Apache日志实战
相关资讯 & & &
& (09/12/:37)
& (05/18/:26)
& (03月15日)
& (07/12/:59)
& (01/05/:59)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款linux源码安装还是rpm安装比较好_百度知道Linux 运维中,为什么现在很多人用源码安装而不用 RPM 安装_百度知道}

我要回帖

更多关于 源码安装 rpm yum区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信