Linux——软件安装

Linux下的软件安装对于初学者来说非常糊涂和混乱,并不像windows操作系统一样简单易懂,要想灵活的使用Linux系统,掌握软件安装方法必不可少。


软件安装的方法:(redhat系列,如果的debian则使用dpkg和apt-get)

1.rpm安装 2.yum在线安装3.源码包安装4.脚本安装。


安装的软件包,也就是安装包分为下面两类:

1.源码包(tar.gz) 2.二进制包rpm包

源码包

优点:1.开源 2.可以自由选择其中功能  3.编译安装,系统效率更高4.卸载方便

缺点:1.安装较为麻烦 2.编译时间长3.出问题不容易解决。

二进制包(rpm包)

优点:1.简单 2.安装速度快,因为是二进制文件。

缺点:1.看不到源码  2.功能选择不多  3.软件依赖性麻烦。


接下来我们先了解rpm包。

首先要了解rpm包的命名规则:

我们随便找一个rpm包:

mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm

mysql-connector-odbc是包名,5.2.5为版本号,6为升级次数,el7表明这是linux平台使用,x86_64说明硬件体系为64位机。


rpm包是怎么来的呢?

1.网上下载 2.安装的光盘中的/Packet目录

挂载光盘使用mount就可以了,进入查看Packet目录就可以看到所有的rpm包了。


接下来我们需要知道,rpm包存在依赖关系,也就是说,当前这个rpm包安装的软件需要在其他软件的支持下才能运行,这就需要依赖关系了。

依赖关系可以简单的分成以下几种:

1.树形依赖 a->b->c这个时候,想要装a软件,依赖于b,b又依赖于c,所以安装顺序为c,b,a。

2.环形依赖 a->b->c->a这个时候,我们想要安装好其中一个软件的话,就需要三个软件同时安装,也就是在同一条命令下安装。否则不能成功。

3.模块依赖 依赖于某个模块,而不是某个包。具体的就是依赖某个.so.2文件。

模块依赖比较麻烦,因为我们并不知道这个模块到底属于哪个包的,要安装的包包含了这个模块,依赖就完成了。

那么我们怎么知道哪个模块在哪个包中呢?

linux给我们提供了一个网站去查询:www.rpmfind.net。当我们需要某个模块的时候,上去搜索就能知道对应的包是哪个了。


那么如何使用命令安装呢?

安装命令:

rpm  -ivh  包全名
i: install v: verbose详细信息 h: hash进度

升级:

rpm  -Uvh  包全名
卸载:

rpm  -e 包名
我们也可以通过rpm查询有关的东西。

例如

查询包是否安装:

rpm  -q  包名
查看所有已经安装的rpm软件:

rpm  -qa
查看已安装包的详细信息:

rpm  -qi  包名
查看某个文件对应的安装rpm包:

rpm  -qip  文件
查看这个包安装软件的位置:

rpm  -ql  包名
查看未安装包的详细信息:

rpm  -qip  包全名
等等。


对于rpm安装的文件,我们不能设定安装文件的路径。

那么文件到底安装在哪里呢?安装文件的路径由rpm包的编写者来决定。

不过一般会默认保存在以下目录:

/etc/ 配置文件

/usr/bin/ 可执行文件

/usr/lib/ 函数库

/usr/share/doc 使用手册

/usr/share/man 帮助文件

当然这个只是默认的,没有强制性规定,一些命令执行文件如果是比较重要的也可能会放在/sbin目录下,只允许root调用。


rpm也提供一些校验功能。

rpm  -V  包名
如果这个包对应的安装文件如果被修改,可以查到一些信息,让我们做出判断。

一般安装rpm都是所有文件安装,如果我们只需要其中一部分呢?

也可以做到,使用rpm2cpio:

rpm2cpio  绝对路径包全名  | cpio  -idv  提取的文件
即可得到文件。



rpm安装非常麻烦,安装a,需要依赖b,b可能又依赖c,d。c,d又依赖别的...这样就弄的很烦。

所以linux提供了一个成为yum的软件管理工具。

通过yum我们可以不需要考虑这些繁琐的依赖关系,让安装变得非常简单,一条命令全自动完成!

yum在red Hat中是需要付费才能使用的。。。所以我们使用centOs。

对于yum,我们首先需要知道yum源文件在哪里,是如何生效的。

yum源文件存放在/etc/yum.repos.d/中。

[root@localhost Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
默认是CentOS-Base文件起作用。

以下是CentOS-Base.repo文件中其中一部分。

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
简单的了解一下,就是说yum的源rpm包会在mirrorlist中的url中获取,大致就是这个意思。下面的gpg..的是为了安装着想的ssh。


我们联网的时候就可以自动到这个url上面访问得到rpm包了。


yum命令

yum  list
查询所有可以用的软件包

yum search
查询对应的软件包。其实更习惯于使用yum list | grep ...

yum  -y  install  包名
安装

yum  -y  update  包名
升级

yum  -y  remove  包名
卸载


yum也提供一种组包的形式让我们安装。

直接安装一组rpm包,我们就不需要去了解实现这个功能需要哪些包,省去了大麻烦。

yum  grouplist
列出组列表

yum  groupinstall  组名
安装组包
yum  groupremove  组名
卸载组包


rpm包研究的差不多了,那么源码包呢?源码包是怎么安装的?

源码包和rpm包在安装了之后的区别在于,安装文件的路径不同。

rpm包安装的路径是由rpm包作者决定的,所以会安装的到处都是,幸好我们有rpm  -e可以完全删除。

源码包安装文件的路径则是完全由我们来决定的。

源码包的安装文件一般安装在/usr/local/目录下。

源码包一般会放在/usr/local/src下,当然你安装完删除掉也没有问题。


要安装源码包,因为要经过编译的步骤,所以linux操作系统中起码需要gcc编译器,否则不能安装。

可以使用rpm安装gcc编译器。

源码包安装方法如下:

1.下载源码包,一般是tar.gz

2.解压源码包。

3.进入解压之后的文件目录。

4.使用./configure进行软件配置和检查。一般会加上安装文件的位置:--prefix=/usr/local/文件名

./configure有什么作用呢?

1.定义软件的功能,软件可选的功能都在这里定义,比rpm灵活。

2.检测环境是否符合软件安装要求。

执行了./configure之后,会在当前目录中生成一个Makefile文件,这个Makefile文件是安装文件,通过它我们就可以编译并生成可执行文件。

使用Makefile非常简单,make编译,make install安装即可。


对于使用源码包安装的文件,只需要删除对应的目录即可删除这个软件。非常干净。

对于源码包的安装过程,在源码的INSTALL文件中有详细的介绍,可以通过这个文件去明白安装的方法。



最后我们需要讨论一下脚本安装包:

脚本安装包的意思就是别人写好了一个脚本,我们只需要执行这个脚本就可以达到一键安装的效果,非常简单快捷。

好处就是快,安装速度快。坏处同样也是显而易见的,就是我们没办法自己控制安装的过程。

脚本安装包一般都是安装rpm。

如果需要脚本安装包,可以去这个链接中查看:https://lnmp.org/

非常简单,只需要下载其中的脚本,执行就可以安装了。

其实质不过也是调用命令安装,不过确实非常方便。


你可能感兴趣的:(linux)