Linux下软件包安装
关于Linux软件包安装
Linux下的软件包安装分两大类,一种是二进制方法安装,另一种是源代码方式安装。
我们先来说二进制方法安装。二进制安装相对于源代码是很简单的,因为这些软件厂商事先已经把源代码编译成了模块的形式,我们可以直接通过工具来进行安装即可。
二进制安装
关于二进制方法安装,在Linux下我们经常用的工具有两种,一种是rpm工具,一种是yum。这两种工具各有各的优点和长处。下面我们一一道来。
rpm工具:
rpm是RedHat Package Manager(RedHat软件包管理工具)的缩写。
rpm这类的包的格式一般都为:软件包名称—版本号—修订号.平台.rpm
例如:httpd-2.2.15-26.el6.centos.x86_64.rpm 这是一个http的安装包,它的版本号为2.2.15。第一个2是主版本号,第二个2是次版本号,15代表的是末版本。要注意中间那个数字,中间这个数字如果是偶数的话代表这是一个通过测试后发行的稳定版,为奇数的话代表是开发版。el6.centos.x86_64代表这个软件适合在RHEL 6和centos 6的x86_64的机器上安装运行
下面我们来讲讲如何使用rpm工具:
安装:
基本安装指令为: rpm -ivh 软件包名 (这个包名必须为软件包的全称)。我们安装一个http来演示一下:
在你所挂载的光盘中有个目录里边儿放的是其自带的所有软件包
[root@server1 dev]# cd /media/cdrom/Packages/ //光盘挂载在了/media/cdrom下, Packages/ 里包含了所有的软件包
[root@server1 Packages]# ll http*
[root@server1 Packages]# ll |grep http
-r--r--r--. 2 root root 840792 Feb 24 2013 httpd-2.2.15-26.el6.centos.x86_64.rpm
-r--r--r--. 2 root root 153372 Feb 24 2013 httpd-devel-2.2.15-26.el6.centos.i686.rpm
-r--r--r--. 2 root root 153328 Feb 24 2013 httpd-devel-2.2.15-26.el6.centos.x86_64.rpm
-r--r--r--. 2 root root 801884 Feb 24 2013 httpd-manual-2.2.15-26.el6.centos.noarch.rpm
-r--r--r--. 2 root root 74100 Feb 24 2013 httpd-tools-2.2.15-26.el6.centos.x86_64.rpm
第一个为我们我们所需要的包,接下来安装http
[root@server1 Packages]# rpm -ivh httpd-2.2.15-26.el6.centos.x86_64.rpm
error: Failed dependencies:
httpd-tools = 2.2.15-26.el6.centos is needed by httpd-2.2.15-26.el6.centos.x86_64
我们发现它提示了错误。好,问题出来了。
error: Failed dependencies: 这个提示是我们使用rpm安装软件包时最常出现的,它提示的是什么呢?
出现这个错误的原因是由于rpm包之间存在依赖性关系,导致rpm包无法一次性安装。
那怎么解决这个问题呢?
解决:按照报错提示依次安装存在依赖性关系的RPM包。
即安装它所提示的需要安装httpd-tools那个安装包。
Rpm工具的其它命令参数:
rpm -e 卸载(只可以卸载本身不可以卸载存在依赖关系的软件包)
-vh:显示安装进度;
-U:升级软件包;
-qpl:列出RPM软件包内的文件信息;
-qpi:列出RPM软件包的描述信息;
-qf:查找指定文件属于哪个RPM软件包;
-Va:校验所有的RPM软件包,查找丢失的文件;
-qa: 查找相应文件,如 rpm -qa mysq
yum安装
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基于rpm包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
比起rpm安装yum则是容易方便的多了,yum最大的优点就是可以一次性解决这个软件包所依赖的所有软件包。Yum会自动为你安装依赖的包。
yum安装的命令:yum --disablerepo=\* --enablerepo=c6-media install 软件包名
例如:[root@server1 ~]# yum --disablerepo=\* --enablerepo=c6-media install httpd //yum安装时不必输入软件包的全称,只需要输入包名就可以。
在安装过程中我们可以看到安装这个软件包时它所依赖的包都有哪些,以及一些这些软件包的大小等等。所以用yum安装软件包时是很方便的。
yum常用的命令
yum --disablerepo=\* --enablerepo=c6-media remove 软件包名 (yum卸载可以卸载其所有存在依赖关系的软件包)
源代码安装
比起二进制方法安装,源代码安装就麻烦的多了。大致来说分为五个步骤:
1.下载源码
1.关于源码我们一般都是从该软件的官网去进行下载
2.拆包解压缩
一般的源代码包如 vsftpd-3.0.2.tar.gz 它的后缀名为 .tar.gz 这是经过了先打包后压缩形成的因为tar可以打包多个文件而bzip2或gip等可以进行压缩但是只能压缩一个文件,所以为了网络传输的方便对源代码进行了打包再压缩。
如果由tar+gip拆包的话我们直接使用 tar -zxvf 包名.tar.gz -C 解压路径
如果由tar+gip拆包的话我们直接使用 tar -jxvf 包名.tar.bz2 -C 解压路径
一般我们把源代码解压到/usr/local/src/ 目录下
我们以vsftpd-3.0.2.tar.gz 这个软件包为例进行安装。
拆包: [root@server1 ~]# tar -zxvf vsftpd-3.0.2.tar.gz -C /usr/local/src/ // /usr/local/src/ 这个目录一般来存放解压完后的源代码
解压完后我们可以看到许多以 .c .h结尾的文件,这就是一个软件的源代码。每一个软件源代码包里都有一个名为README或INSTALL的文件,这里边儿存放的有源代码安装这个软件的步骤。
例如这个INSTALL这个文件里边儿的描述
这里边儿写的有step1、step2 分别提示我们先创建一个目录来解压缩源代码包。然后执行“builddefs.h” 再进行make编译。但是在make之前我们得检查自己的机子上有没有预编译环境。
3.配置
(1)检测预编译环境
在编译源代码前我们先要在本机上搭建好预编译环境,安装及几个软件组【】即可。
安装完毕后,我们编译源代码时就能解决大部分错误了。
4.Make
5.Makefile
本文出自 “梦想从这里起飞” 博客,请务必保留此出处http://mao5788.blog.51cto.com/8820527/1396578
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。