linux中软件包的安装(源码/RPM/YUM)

时间:2020-12-06 21:49:48

源码包:

未经过编译的源代码压缩包,解压后可以看到其中的源代码。其优点有:代码开源、功能选择灵活、效率高、卸载方便,例如要安装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包安装的服务。

LinuxRPM包:

在安装光盘(镜像)中的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安装,自动解决依赖性问题。

Redhatyum在线安装是需要付费的在线安装服务。

Yum源:

/etc/yum.repos.d/CentOS-Base.repo文件内,写着yum的源,如图:

前面#号都是注释,[源名称],name=说明介绍,mirrorlist=yum源镜像,baseurl=yum源地址,默认地址是国外centos官网,可以修改为国内的镜像地址,更快。enable=0不生效,默认为1gpgcheck=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