源码包:
未经过编译的源代码压缩包,解压后可以看到其中的源代码。其优点有:代码开源、功能选择灵活、效率高、卸载方便,例如要安装apache这样需要效率的软件,用源码包较好。相应的也带来了缺点:安装过程繁琐易出错,安装时间由于需要编译,时间长。
源码包安装需要指定安装位置,一般为:/user/local下,如不指定,会导致软件自动安装在系统到处都是。删除时只需删除源码包即可。
启动方法:绝对路径 start
安装方法:
1、首先保证安装好了C语言的编译器gcc。从官方网站下载源码包。(由于我使用windows下载,之后通过winscp软件将文件拖到了虚拟机中)。
2、解压缩.tar.gz包。进入解压缩后的文件目录。
3、运行./config --prefix=/usr/local/apache2,检测安装环境,并指定安装位置。
4、编译 make。安装 make install。
5、启动服务:查看其中INSTALL文件,例如启动apache:/usr/local/apache2/bin/ct1 start。
二进制包(RPM):
由于源码安装过程缓慢,太过繁琐,不利于linux的发展,诞生了RPM包,它是进过二进制编译的软件包,安装速度更快,且操作简洁,仅需要几个命令行即可。但是由于它进过编译,无法进行灵活的功能选择以及查看源码,而且RPM包之间还存在依赖性。
RPM包不需要指定安装位置,它会将不同的文件安装在其默认的位置。系统命令也会到默认目录下查找相关文件。删除执行rpm -e会将不同文件夹下的文件删除。
启动方法:service 包名 start命令,可以启动RPM包安装的服务。
Linux下RPM包:
在安装光盘(镜像)中的Packages文件下可以看到许多rpm包,其全名格式为:
软件名-主版本.副版本.次版本-发布次数.适用的软件平台.适用的硬件平台.扩展名,安装的时候要写清楚路径与全名,而在操作的时候只需写软件名即可。
RPM包的依赖性分为树形依赖,需要包1->包2->包3依次安装,
环形依赖包1->包2->包3->包1,这需要同时安装三个,
模块依赖,指依赖的不是一个包,而是包中的函数,需要找到函数所在的包。可以到www.rpmseek.com网站查询函数所在的包。Yum在线安装方法可以自动为你选择进行安装,免去繁琐的依赖安装。
安装RPM包:
Rpm -ivh 包全名,按照提示安装所依赖的包。
升级RPM包:
Rpm -Uvh 新版本包全名
卸载RPM包:
Rpm -e 包名(这里由于已经安装了,所以不需要输入包全名),按照依赖性进行卸载
查询RPM包:
Rpm -q 包名,查询是否安装该包,rpm -qa查询所有安装的包,通常配合管道符|grep查询相关的包,rpm -ql 包名,查询安装包的安装位置,rpm -qf文件名,查询文件来自于哪个包。
校验RPM包:
Rpm -V 包名,查看包的文件是否被修改过
提取RPM包:
Rpm2cpio 包位置 | cpio -idv .文件绝对路径。如果你的重要文件被删除了,可以先查找该问价所属的rpm包,然后在光盘中提取该包到原来的位置。
脚本安装包:
所谓的脚本安装包实际上是开发者把源码包或者RPM包的安装命令写成了脚本文件,排出了常见错误,使安装方便简单快捷,但带来的缺点就是无法对安装软件的版本进行自定义,使源码包的优势丧失。
Yum安装:
将所有RPM软件包放在服务器上,进行yum安装,自动解决依赖性问题。
Redhat的yum在线安装是需要付费的在线安装服务。
Yum源:
在/etc/yum.repos.d/CentOS-Base.repo文件内,写着yum的源,如图:
前面#号都是注释,[源名称],name=说明介绍,mirrorlist=yum源镜像,baseurl=yum源地址,默认地址是国外centos官网,可以修改为国内的镜像地址,更快。enable=0不生效,默认为1,gpgcheck=1数字证书验证通过
使用本地光盘镜像yum:
1、将光盘挂载到/mnt/cdrom目录下
2、修改CentOS-Base.repo文件后缀名,用mv命令添加后缀.bak成为备份文件,使网络yum源失效。
3、修改光盘yum源使其生效:将baseurl指向光盘挂载点/mnt/cdrom,将其他url注释,将enable=1。
Yum命令:
Yum list |
列出所有可用yum源 |
Yum search 关键字 |
搜索包含关键字的包 |
Yum -y install 包名 |
安装yum包 |
Yum -y update 包名 |
升级yum包 |
Yum -y remove 包名 |
卸载yum包 |
Yum grouplist |
列出所有可用软件组 |
Yum groupinstall 软件组 |
安装指定软件组 |
Yum groupremove 软件组 |
卸载指定软件组 |
注:-y是每个包询问是否安装时自动回答yes