在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,但是linux系统下安装一个软件其实并不这么轻松了,由于我们不是在图形界面下。所以你要学会怎样在linux下安装一个软件。
在后面的内容中多次提及的yum,这个yum是Redhat所特有的安装RPM程序包的工具,使用上去相当便捷。由于使用RPM安装某一个程序包有可能会由于该程序包依赖另一个程序包而难以安装。而使用yum工具就可以连同依赖的程序包一起安装。其实CentOS同样可以使用yum工具,但是在CentOS中你可以免费使用yum,但Redhat中只有当你付费后才会使用yum,默认是难以使用yum的。在介绍yum之前先说一说RPM相关的东西。
【RPM工具】
RPM是”RedhatPackageManager”的简写,按照名子也能猜到这是Redhat公司开发下来的。RPM是以一种数据库记录的形式来将你所须要的套件安装到你的Linux主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装上去十分快捷。并且也有一些缺点,例如安装的环境必须与编译时的环境一致或则相当;包与包之间存在着互相依赖的情况;卸载包时须要先把依赖的包卸载掉,假如依赖的包是系统所必须的,那就不能卸载这个包,否则会导致系统崩溃。
假如你的硬盘中还有系统安装盘的话,你可以通过”mount/dev/cdrom/mnt”命令把硬盘挂载到/mnt目录下,这么你会在/mnt/CentOS目录下看见好多.rpm的文件,这就是RPM包了。
每一个rpm包的名称都由”-“和”.”分成了若党员分。就拿a2ps-4.13b-57.2.el5.i386.rpm这个包来解释一下,a2ps为包名;4.13b则为版本信息;57.2.el5为发布版本号;i386为运行平台。其中运行平台常见的有i386,i586,i686,x86_64,须要你注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。诸如alacarte-0.10.0-1.fc6.noarch.rpm。下边介绍一下rpm常用的命令。
1)安装一个rpm包
-i:安装的意思
-v:可视化
-h:显示安装进度
另外在安装一个rpm包时常用的附送参数有:
--force强制安装,虽然覆盖属于其他包的文件也要安装
--nodeps当要安装的rpm包依赖其他包时,虽然其他包没有安装linux 版本,也要安装这个包
2)升级一个rpm包
rpm-Uvhfilename-U:即升级的意思
3)卸载一个rpm包
rpm-efilename这儿的filename是通过rpm的查询功能所查询到的,稍后会作介绍。
卸载时前面跟的filename和安装时的是有区别的。里面命令提及的“|”在linux系统中用的特别多也十分有用,它是一个管线符,拿来把上面运行的结果传递给前面的命令。之后会做详尽介绍,而后出现的grep命令则是拿来过滤某个关键词的工具,在后续章节中会做详尽介绍。
4)查询一个包是否安装
rpm-qrpm包名(这儿的包名,是不带有平台信息以及后缀名的)
倘若加上了平台信息以及后缀名反倒不能查下来。你还可以查询当前系统中所安装的所有rpm包。
由于太多,所以笔者列举前十个。
5)得到一个rpm包的相关信息
rpm-qi包名(同样不须要加平台信息与后缀名)
6)列举一个rpm包安装的文件
rpm-ql包名
通过前面的命令可以看出vim是通过安装vim-enhanced-7.0.109-6.el5这个rpm包得来的。这么反过来怎样通过一个文件去查找是由安装那个rpm包得来的?
7)列举某一个文件属于那个rpm包
rpm-qf文件的绝对路径
上面讲过怎么查找一个文件(可执行命令)的绝对路径
所以你也可以把这两条命令连上去写
听到了吗,whichvim这条命令是由两个反顿号造成来的,这代表引用反顿号上面的命令所形成的结果。关于rpm工具的使用还有好多内容,笔者就不一一列出了,只要你把握里面那些内容,完全够你平常工作用的了。
【yum工具】
介绍完rpm工具后,还须要你把握最常用的yum工具,这个工具比rpm工具好用多了,其实前提是你使用的linux系统是支持yum的。yum最大的优势在于可以联网去下载所须要的rpm包,之后手动安装,在这个工程中假如要安装的rpm包有依赖关系,yum会帮你解决掉那些依赖关系依次安装所有rpm包。下边笔者介绍常用的yum命令。
1)列举所有可用的rpm包“yumlist“
限于篇幅,笔者只列出下来前7个包信息。从上例中可以见到有””信息出现,这是在告诉用户,它是从这儿下载到的rpm包资源。假如你使用的是CentOS则你可以从/etc/yum.repos.d/CentOS-Base.repo这个文件下见到相关的配置信息。从前面的事例中你还可以见到最右边是rpm包名子,中间是版本信息,最左边是安装信息,假如安装了就显示installed,未安装则显示base或则extras,倘若是该rpm包已安装但须要升级则显示updates。
2)搜索一个rpm包“yumsearch[相关关键词]”
不仅这样搜索外,笔者常用的是借助grep来过滤
相信你也会喜欢用前者吧,这样看上去简明的多。
3)安装一个rpm包“yuminstall[-y][rpm包名]”
倘若不加-y选项,则会以与用户交互的形式安装,首先是列举须要安装的rpm包信息,之后会问用户是否须要安装,输入y则安装linux安装rpm命令,输入n则不安装。而笔者嫌这样太麻烦,所以直接加上-y选项,这样就省略掉了问用户是否安装的那一步。
4)卸载一个rpm包“yumremove[-y][rpm包名]”
卸载和安装一样,你也可以直接加上-y选项来省略掉和用户交互的步骤。在这儿笔者要提醒你一下,卸载某个rpm包一定要认清楚了,不要连其他重要的rpm包一起卸载了,以免影响正常的业务。
4)升级一个rpm包“yumupdate[-y][rpm包]”
以上介绍了怎样使用yum搜索、安装、卸载以及升级一个rpm包,假如你把握了这种这么你就早已可以解决日常工作中遇见的与rpm包相关问题了。其实yum工具还有很多其他好用的命令,笔者不在列出下来,假如你感兴趣就去man一下吧。除此之外,笔者就会教你一些关于yum的小应用。
1使用本地的光碟来制做一个yum源
有时侯你的linux系统不能联网,其实就不能很方便的使用联网的yum源了,这时侯就须要你自己会借助linux系统光碟制做一个yum源。具体步骤如下:
a.挂载光碟
[root@fortestServer]#mount-tiso9660-oloop/dev/cdrom/mnt
b.删掉/etc/yum.repos.d目录所有的repo文件
[root@fortestServer]#rm-rf/etc/yum.repos.d/*
c.创建新文件dvd.repo
[root@fortestServer]#vim/etc/yum.repos.d/dvd.repo
加入以下内容:
[dvd]
name=installdvd
baseurl=file:///mnt
enabled=1
gpgcheck=0
d.刷新repos,生成缓存
[root@fortestServer]#yummakecache
之后就可以使用yum命令安装你所须要的软件包了
2借助yum工具下载一个rpm包
有时,我们须要下载一个rpm包,只是下载出来,拷贝给其他机器使用,上面也介绍过yum安装rpm包的时侯,首先得下载这个rpm包之后再去安装,所以使用yum完全可以做到只下载而不安装。
a.首选要安装yum-downloadonly
#yuminstall-yyum-downloadonly.noarch
b.下载一个rpm包而不安装
#yuminstalltest.rpm-y--downloadonly//这样即使下载了,而且并没有保存到我们想要的目录下,这么怎么指定目录呢?
c.下载到指定目录
#yuminstalltest.rpm-y--downloadonly--downloaddir=/usr/local/src
【安装源码包】
虽然,在linux下边安装一个源码包是最常用的,笔者在日常的管理工作中,大部份软件都是通过源码安装的。安装一个源码包,是须要我们自己把源代码编译成二补码的可执行文件。假如你读得懂这种源代码,这么你就可以去更改那些源代码自定义功能,之后再去编译成你想要的。使用源码包的益处除了可以自定义更改源代码外还可以订制相关的功能,由于源码包在编译的时侯是可以附加额外的选项的。
源码包的编译用到了linux系统里的编译器,常见的源码包通常都是用C语言开发的,这也是由于C语言为linux上最标准的程序语言。Linux上的C语言编译器称作gcc,借助它就可以把C语言弄成可执行的二补码文件。所以假如你的机器上没有安装gcc就没有办法去编译源码。你可以使用yuminstall-ygcc来完成安装。
安装一个源码包,一般须要三个步骤:
1../config在这一步可以订制功能,加上相应的选项即可,具有有哪些选项可以通过”./config--help”命令来查看。在这一步会手动检查你的linux系统与相关的套件是否有编译该源码包时须要的库,由于一旦缺乏某个库就不能完成编译。只有检查通过后才能生成一个Makefile文件。
2.make使用这个命令会依照Makefile文件中预设的参数进行编译,这一步当然就是gcc在工作了。
3.makeinstall安装步骤,生成相关的软件储存目录和配置文件的过程。
前面介绍的3步并不是所有的源码包软件都一样的,笔者曾经也以前遇见过,安装步骤并不是这样,也就是说源码包的安装并非具有一定的标准安装步骤。这就须要你领到源码包解压后,之后步入到目录找相关的帮助文档,一般会以INSTALL或则README为文件名。所以,你一定要去看一下。下边笔者会编译安装一个源码包来帮你更深刻的去理解怎么安装源码包。
1.下载一个源码包
这儿要提一下linux安装rpm命令,建议之后你把所有下载的源码包放在/usr/local/src/目录下,这个并不是必须的,只是一个约定。便捷你和你的朋友将来更好的去运维这台服务器。wget即为下载的命令,上面跟源码包的下载地址。该地址为笔者从网上找的一个apache的下载地址。
2.解压源码包
通常的源码包都是一个压缩包,怎么解压一个.tar.gz的包上一章讲过的。
3.配置相关的选项,并生成Makefile
使用./config--help可以查看可用的选项。通常常用的有”--prefix=PREFIX“这个选项的意思是定义软件包安装到那里。到这儿国内linux主机,笔者再提一个小小的约定,一般源码包都是安装在/usr/local/目录下的。例如,我们把apache安装在/usr/local/apache2下,这么这儿就应当这样写”--prefix=/usr/local/apache2”。其他还有很多选项,假如你有耐心你可以逐个去看一看都有哪些作用。
笔者在这儿只定义了apache的安装目录,其他都是默认。回车后,开始执行check操作。
等check结束后生成了Makefile文件
不仅查看有没有生成Makefile文件来判断有没有完成./config的操作外,还可以通过这个命令”echo$?”来判断,倘若是0,则表示上一步操作成功完成,否则就是没有成功。
4.进行编译
这一步操作,就是把源代码编译成二补码的可执行文件,这一步也是最漫长的一步,编译时间的长短取决于源代码的多少和机器配置。
5.安装
在安装前,先确认上一步操作是否成功完成。
makeinstall会创建相应的目录以及文件。当完成安装后,会在/usr/local目录下多了一个apache2目录,这就是apache所安装的目录了。
虽然在日常的源码安装工作中,并不是每位都像笔者这样顺利完成安装的,遇见错误不能完成安装的情况是好多的。一般都是由于缺乏某一个库文件造成的。这就须要你仔细寻思报错信息或则查看当前目录下的config.log去得到相关的信息。另外,假如自己不能解决那就去网上google一下吧,一般你会得到你想要的答案。