软件安装及实例

一、软件包分类

1.源码包

优点:

1)开源,可以修改。
2)自由选择所需的功能。
3)软件是编译安装,所以更加适合自己的系统,更加稳定也更加高效。
4)卸载方便

缺点:

1)安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误。
2)编译时间过长,安装比二进制安装时间长。
因为是编译安装,安装过程中一旦报错新手难以解决。

2.二进制包

二进制包中也是有分类的。

DPKG包:

由Debian Linux所开发出来的包管理机制,通过DPKG包,Debian Linux就可以进行软件包管理。但这类二进制包主要是应用在Debian和unbuntu系统中。

RPM包:

系统的默认包,注意,yum不是单独的包,只是RPM的一种在线安装方法。
由Red Hat公司开发的包管理系统。功能强大,安装、升级、查询和卸载都非常简单方便。目前很多Linux的系统都使用的这种包管理方式。包括Red Hat、Fedora、CentOS、SuSE等。

特点:

RPM包的优点:
1)包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载。
2)安装速度比源码包安装快得多。

RPM包的缺点:

1)经过编译,不再可以看到源代码
2)功能选择不如源码包灵活
3)依赖性。有时候我们会发现需要软件包a时需要先安装软件b和c,而安装b时需要安装d和e,最后才能安装a包。
这个依赖性也分了几种:
树形依赖:a–>b–>c
环形依赖:a–>b–>c–>a (这种情况,一般就要三个包一起安装即可。)

模块依赖(函数库依赖):
如果出现模块依赖,提示哪个函数库没有安装。这里的函数库可能只是单个文件,而你并不知道这个文件是属于哪个包的。www.rpmfind.net,可以在这个网站查。网站会告诉你,在哪个版本,应该安装哪个包。

二、软件包选择建议(不绝对)

源码包:

如果程序或者服务是给大量客户端提供法昂问的,建议使用源码包,因为源码包效率更高。

RPM包:

如果程序或者服务是给少量用户访问,或者本地使用的,建议RPM包,因为RPM包简单,并且管理方便。

三、源码包的命名规则:

以apache为例:

包全名:如果操作的是未安装软件包,则使用保全名,而且需要注意绝对路径。
如:httpd-2.2.15-l5.e16.centos.l.i686.rpm

Httpd:软件包名
2.2.15:软件版本
L5: 软件发布次数
El6: 软件发行商。El6是RedHat公司发布,使用RHEL6.x和CentOS6.x使用。
I686 : 适合的硬件平台。RPM包可以在不同的硬件平台安装,选择适合不同CPU的软件版本,可以最大化发挥CPU性能。norarch表示没有硬件限制。
Rpm: rpm包的扩展名

包名:如果操作的是已经安装的软件包,则使用包名即可,因为系统会生成RPM包的数据库。而且可以在任意路径下操作,不需要注意绝对路径。
(已安装的软件包过才进入数据库(数据库在/var/lib/rpm/ 可以ls查看,不能vim查看具体文件,因为全是二进制文件))。
httpd

四、RPM包安装

1.语法:

rpm -ivh 包全名

选项:
-i install安装
-v 显示更详细的信息
-h 打印#显示安装进度
–nodeps 不检测依赖性安装。软件时会检测依赖性,确定所需的底层软件是否安装。如果没有安装会报错。不管依赖性,强行安装可以使用这个选项。

–replacefiles 替换文件安装。如果安装软件包,可是包中部分文件已经存在,那么正常安装时候,会报错"某个文件已经存在",使用这个选项可以忽视这个报错,覆盖安装。

–replacepkgs 替换软件包安装。软件软件包已经安装,此选项可以把软件包重复安装一遍。

–force 强制安装。不管是否安装,都重新安装。
一般来说,如果不小心删除了某个文件的配置文件,需要重新安装,又提示已存在的话,都用这个命令安装。rpm -ivh apache-xxx --force

–prefix 执行安装路径。为安装软件指定安装路径,而不是用默认安装路径。注意:如果指定了,软件没有安装到系统默认路径,系统找不到这些案件软件,需要进行手工配置才能被系统识别。所以rpm包,我们都采用默认路径安装。
例:rpm -ivh httpd-2.xxx-xxx.rpm --prefix=/usr/local/httpd/ --prefix在前面后面都行。

例:
rpm -ivh /run/media/root/CentOS\ 7\ x86_64/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm windows文件转换成Linux格式。

注意:Windows的隐藏符号和Linux是不一样的。有些时候从Windows中上传的文件Linux不一定能识别,所以需要转换一下。比如Windows中的脚本,在Linux中就无法使用。

2.RPM安装的默认位置(部分):

目录备注
/etc/配置文件安装目录
/usr/bin可执行的命令安装目录
/usr/lib程序所使用的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置

3.RPM包建议安装在默认路径中:

1)默认安装位置是系统的习惯位置。
2)RPM包管理系统是由卸载命令的(数据库会记录安装位置,卸载的时候会全部文件位置都会卸载)

4.启动RPM安装包服务方法(假设安装的是apache):

service httpd restart|start|stop(不一定所有版本都有service工具,比如centos7就systemct l restart|start|stop httpd)

/etc/rc.d/init.d/httpd restart|start|stop(标准启动)

Apache网页位置:
/var/www/html/

Apache配置文件的位置:
/etc/httpd/conf/httpd.conf

5.升级和卸载

RPM包升级:
rpm -Uvh 包全名
-U 升级安装,如果没有安装过,系统直接安装。如果安装过的版本较旧,则升级到新版本。(upgrade)

rpm -Fvh 包全名
-F 升级安装,如果没有安装过,则不会安装。必须安装有较旧版本,才能升级(freshen)

卸载:
rpm -e 包名
–nodeps 不检查依赖性。
-e 卸载。

查询(所有查询都要-q选项):

rpm -q 包全名
-q 查询(query)
在这里插入图片描述

查询系统中所有安装软件包:
rpm -qa 包名
-q 查询
-a 所有
所以,可以用管道符来查看所需的内容,比如:
rpm -qa | grep vim
在这里插入图片描述

查询软件包的详细信息:
rpm -qi 包名
-i 详细信息

查询还没安装的软件包下软件信息:
rpm -qip 包全名
-p 查询没有安装的软件包。

查询已经安装的软件包中的文件列表和安装的完整目录:
rpm -ql 包名
-l 列出软件包中所有的文件列表和软件所安装的目录(list)。

查询还没有安装的软件包中的文件列表和打算安装的位置:
rpm -qpl 包全名
-p 查询没有安装的软件包信息。(package)

查询系统文件属于哪个RPM包:
rpm -qf 系统文件名
-f 查询系统文件属于哪个软件包(file)。

查询软件包所依赖的软件包:
rpm -qR 包名
-R 查询软件包的依赖性包。但是查出来的依赖,不知道安装过没有。

查询软件包所依赖的软件包中,没有安装过的:
rpm -qpR 包全名

查询软件包的配置情况:
Rpm -qc 包名
-c 查看包的配置文件

6.RPM包安装方法

1.手动命令安装
需要自己解决依赖性。
rpm -ivh 包全名

2.yum在线安装

7.RPM包的在线安装(yum)

系统中是没有yum的安装包的。yum仅仅是RPM的一种安装方法。

yum源文件解析

yum源的配置文件保存在/etc/yum.repos.d/目录中,文件扩展名是*.repo。也就是说,yum源配置文件只要扩展名是*.repo就会生效。

/etc/yum.repos.d/下有:
CentOS-Base.repo--------------基础yum源,重点是这个就行
CentOS-Debuginfo.repo-------调试yum源
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Vault.repo
在这里插入图片描述

(CentOS-Base.repo是基础yum源也就是网络yum源,默认生效)

vim打开CentOS-Base.repo,每一段都是一个yum源的地址。默认使用base段。
[base]:容器名称,一定要放在[]中。
name:容器说明,可以自己随便写。
mirrorlist:镜像站点,这个可以注释掉。
baseurl:我们的yum源服务器的地址。默认是官方CentOS的yum源服务器,是可以使用的。只是服务器在国外,可能很慢,当然,如果觉得慢,或者版本太低,可以自己换成其他的。
enabled:此容器是否生效,如果不写,或者携程enabled=1则表示此容器生效,携程enabled=0,表示此容器不生效。
gpgcheck:如果是1,表示数字证书生效,如果是0则表示RPM的数字证书不生效。
gpgkey:数字证书公钥保存的位置,不需要修改。
在这里插入图片描述

搭建本地yum源,也就是光盘的yum源

1)记得mount挂载光盘,必须要挂载了光盘才能使用。
2)使CentOS-Base.repo不生效。那么改个名,mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
注意:重要文件不能删,而yum源的配置文件,都是识别repo的后缀名,所以直接改个后缀就行。
3)在[c7-media]下,更改baseurl,第一行的地址改成挂载的光盘地址。后两行直接注释掉,把enabled改成1。
baseurl=file:///mnt/GPmnt/
#file:///media/cdrom/
#file:///media/cdrecorder/

3.yum命令

查询,查询yum源服务器上所有可安装的软件包列表。
yum list:查询所有yum源服务器上可安装的软件包列表。
在这里插入图片描述

yum list 包名:查询yum源服务器上是否包含某个安装包。
在这里插入图片描述

yum search 包关键字:搜索yum源服务器上所有和关键字相关的软件包。
在这里插入图片描述

yum info 包名:查看指定文件包的信息。
在这里插入图片描述

yum安装:
yum -y install 包名
install 安装
-y 自动回答yes。如果不加-y,那么每个安装的软件都需要手动yes

注意:yum在线安装中,包名不再分清包名和包全名,都包名即可。

yum升级:
yum -y update 包名
-y 自动yes
update 升级
升级指定的软件包。不加包名,单yum -y update 升级本机所有软件包。(少见,比如5以前的版本升级包括内核,内核升级后无法加载,老内核又内覆盖。所以老系统中严禁升级。)

yum卸载:
yum remove 包名
remove 卸载。
例如:yum remove samba
注意:有可能导致系统崩溃,原因:依赖性。a->b->c->d。如果卸载b,那么因为依赖性,有可能会同时卸载a,哪怕在重新安装,也是安装的b、c、d。a可能丢失导致系统崩溃。卸载不用y。

注意:yum的查询命令,比如yum list yum search 查询的是yum源服务器上的所有可安装的软件包。查询本机的最好还是rpm -q 不能互相取代的。

yum组管理命令:

yum grouplist:查询可用的软件组列表

yum groupinfo 软件组名:列出软件组中包含的软件。
例如:yum groupinfo “Web Server”

yum groupinstall 软件组名:安装指定软件组,组名可以由yum grouplist查询出来
例如:yum -y groupinstall “Web Server”

yum groupremove 软件组名:卸载指定软件组。

五、源码包安装

源码包从哪里来:
rpm包是从光盘中直接包含的,所以不需要用户单独下载。而源码包是通过官方网站下载的,如果需要使用,是需要单独下载的。

小提示:apache不需要装两个,除非要求不同版本,那么可以,否则就是浪费资源,哪怕是有几个单独的网站,那么apache也有自己的功能可以达到这个目的。

安装过程:
1.下载源码包。
2.解压缩。
3.进入压缩目录。
4…/configure 编译前准备。
编译前准备的作用:
1)在安装之前需要检测系统环境是否符合安装要求。
2)定义需要的功能选项。“./configure”支持的功能选项较多,可以执行“./configure --help”命令查询其支持的功能。一般都会通过"./configure --prefix=安装路径"来指定安装路径。
3)把系统环境的检测结果和定义好的功能选项写入Makefile文件,后续的编译和安装需要依赖这个文件的内容。
注意:configure不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用./configure方式执行。./表示在当前目录下。

5.make 编译
make会调用gcc编译器,并读取Makefile文件中的信息进行系统软件编译。编译的目的就是把源码程序转变为能被Linux识别的可执行文件,这些可执行文件保存在当前目录下。编译过程较为耗时,需要有足够的耐心。

6.make clean:清空编译内容(非必要步骤)。建议只用在安装报错时。
如果在“./configure”或“make”编译中报错,那么我们在重新执行命令前一定药记得执行make clean命令,它会清空Makefile文件或编译产生的.o头文件。

7.make install:编译安装
这才是真正的安装过程,一般会写清楚程序的安装位置。如果忘记指定安装目录,则可以把这个命令的执行过程保存下来,以备将来删除使用。
注意:如果在make install中报错,那么不仅需要make clean清空Makefile文件或编译产生的内容,还需要删除安装出来的文件。

源码包安装过程报错:
1)安装过程已经停止。
2)查看是否出现no、warning、error关键字。

源码包删除:
源码包没有删除命令,需要直接删除安装目录。
所以在./configure的时候–prefix==安装路径是非要必要的。

源码包打入补丁:
补丁的生成:
diff 对比两个文件之间的不同。
diff [option] 老文件 新文件
比较old文件和new文件的不同。注意,两个文件你都需要写绝对路径,也就是完整的路径。

选项:
-a 将任何文档当作文本文档处理。
-b 忽略空格造成的不同。
-B 忽略空白行造成的不同。
-I 忽略大小写造成的不同。
-N 当比较两个目录时,如果某个文件只在一个目录中,则在另一个目录中视作空文件。

-r 当比较目录时,递归比较子目录。
-u 使用同一的输出格式。

例如:diff -NarbuBb /root/test/old.txt /root/test/new.txt > pat.txt

打入补丁:
patch -pn < 补丁文件
按照补丁文件进行更新。

选项:
-pn n为数字,代表按照补丁文件中的路径,是几级目录n就是几,例如/data/pat.txt 2级目录,就写2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值