暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux软件安装管理

蒲公英的头发 2019-08-04
472

1-1 Linux软件安装管理概述

如何在Linux中进行软件安装?

Windows软件安装过程简单易用

本门课程就来学习如何在Linux字符界面下安装软件

Linux下也需要软件安装!

课程大纲

一、软件包管理介绍

二、rpm命令管理

三、yum在线管理

四、源码包管理

五、脚本安装包

 

课程目的:学习Linux中最基本的软件安装方法

2-1 Linux软件包管理之源码包

1、软件包分类

◆ 源码包

➢ 脚本安装包

◆ 二进制包(RPM包、系统默认包)

 

Windows中的软件在Linux中无法安装

 

2、源码包

● 源码包的优点是:

◆ 开源,如果有足够的能力,可以修改源代码

◆ 可以自由选择所需的功能

◆ 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高

◆ 卸载方便,直接删除安装目录

● 源码包的缺点:

◆ 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误

◆ 编译过程时间较长,安装比二进制包安装时间长

◆ 因为是编译安装,安装过程中一旦报错新手很难解决

2-2 Linux软件包管理之RPM包和脚本安装包

如果只有源码可用怎么办呢?

初学者很苦恼!!!

源码包安装不适合初学者!!!

3、RPM包

● 二进制包的优点:

◆ 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询、卸载

◆ 安装速度比源码包安装快得多

● 二进制包的缺点:

◆ 经过编译,不再可以看到源代码

◆ 功能选择不如源码包灵活

◆ 依赖性

4、脚本安装包

● 所谓的脚本安装包,就是把复杂的软件包安装过程写成了程序脚本,初学者可以执行程序脚本实现一键安。但是实际安装的还是源码包和二进制包。

◆ 优点:安装简单、快捷

◆ 缺点:完全丧失了自定义性

3-1 Linux中rpm包命名规则

RPM命令管理

● RPM包命名规则

● 安装命令

● 升级与卸载

● RPM包查询

● RPM包校验

1、RPM包的来源

● RPM包在系统光盘中,挂载点/Packages/下

2、RPM包命名原则

● httpd-2.2.15-15.el6.centos.1.i686.rpm

- httpd软件包名

- 2.2.15软件版本

- 15软件发布的次数

- el6.centos适合的Linux平台

- i686适合的硬件平台

-rpm rpm包扩展名

3、RPM包依赖性

◆ 树形依赖:a→b→c

◆ 环形依赖:a→b→c→a

◆ 模块依赖:模块依赖,查询网址:www.rpmfind.net

特征:以.so.数字结尾,模块依赖又称库文件依赖

3-2 Linux中rpm命令管理之安装命令

1、包全名与包名

◆ 包全名:操作的是没有安装的软件包(安装、升级)是,使用包全名。而且要注意路径。

◆ 包名:操作已经安装的软件包(查询、卸载)时,使用包名,是搜索/var/lib/rpm/中的数据库。

2、RPM安装

● rpm -ivh 包全名

● 选项:

-i(install)安装

-v(verbose)显示详细信息

-h(hash)显示进度

--nodeps不检查依赖性,没有实际使用价值的选项,就算装上了也不一定能正常使用

3-3 Linux中rpm命令管理之升级与卸载

3、RPM包升级

● rpm –Uvh 包全名

● 选项:

-U(upgrade)升级

4、卸载(因为不手工指定安装位置,会装的到处都是)

● rpm -e 包名

● 选项:

-e(erase)卸载

--nodeps不检查依赖性

3-4 Linux中rpm命令管理之RPM包查询

1、查询是否安装

● rpm –q 包名

#查询包是否安装

-q(query)查询

● rpm –qa

#查询所有已经安装的RPM包

-a(all)所有

2、查询软件包详细信息

● rpm -qi[p] 包[全]名

● 选项:

-i(information)查询软件信息

-p(package)查询未安装包信息

3、查询包中文件安装位置

● rpm -ql[p] 包[全]名

● 选项:

-l(list)列表

-p(package)查询未安装包信息

RMP包默认安装位置

RPM包默认安装位置

/etc/

配置文件安装目录

/usr/bin/

可执行的命令安装目录

/usr/lib/

程序所使用的函数库保存位置

/usr/share/doc/

基本的软件使用手册保存位置

/usr/share/man/

帮助文件保存位置

4、查询系统文件属于哪个RPM包

● rpm -qf 系统文件名

● 选项:

-f(file)查询系统文件属于哪个软件包

5、查询软件包的依赖性(查询结果意义不大,还不如直接安装看报依赖性错误)

● rpm -qR[p] 包[全]名

● 选项:

-R(requires)查询软件包的依赖性

-p(package)查询未安装包信息

3-5 Linux中rpm命令管理之RPM包校验

1、RPM包校验

● rpm -V 已安装的包名

● 选项:

-V(verify)校验指定RPM包中的文件

● 验证内容中的8个信息的具体内容如下:

◆ S ​文件大小是否改变

◆ M​文件的类型或者文件的权限(rwx)是否被改变

◆ 5​文件MD5检验和是否改变(可以看成文件内容是否改变)

◆ D​设备的主从代码是否改变

◆ L​文件路径是否改变

◆ U​文件的属主(所有者)是否改变

◆ G​文件的属组是否改变

◆ T​文件的修改时间是否改变

● 文件类型

◆ c​配置文件(config file)

◆ d​普通文件(documentation)

◆ g​“鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含

◆ L​授权文件(license file)

◆ r​描述文件(read me)

2、RPM包中文件提取

● rpm2cpio 包全名 | cpio –idv .文件绝对路径

其中:

​rpm2cpio

​#将rpm包转换为cpio格式命令

​cpio

​#是一个标准工具,它用于创建软件档案文件和从档案文件提取文件

● [root@localhost ~]# cpio 选项 < [文件|设备]

● 选项:

-i:copy-in模式,还原

-d:还原时自动新建目录

-v:显示还原过程

 

● rpm –qf /bin/ls

#查询ls命令属于哪个软件包

● mv /bin/ls /tmp/

#造成ls命令误删除假象

● rpm2cpio /mnt/cdrom/Package/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls

#提取RPM包中ls命令到当前目录的/bin/ls下

● cp /root/bin/ls /bin/

#把ls命令复制到/bin/目录,修复文件丢失

4-1 yum源文件

yum在线安装

rpm命令管理

缺点:安装过程中,rpm包依赖性太强

如果所有rpm包都是手工安装,则rpm包使用难度较大 

yum在线安装

好处:将所有软件包放在官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。

Redhat的yum在线安装需要付费

yum在线安装

● yum源文件

● 光盘搭建yum源

● yum命令

yum源文件

● vi /etc/yum.repos.d/CentOS-Base.repo

◆ [base]​​容器名称,一定要放在[]中

◆ name​​容器说明,可以自己随便写

◆ mirrorlist​​镜像站点,这个可以注释掉

◆ baseurl​​我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,​​​是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址

◆ enable​​此容器是否生效,如果不写或写成enabld=1都是生效,写成enable=0​​​就是不生效

◆ gpgcheck​​如果是1是指RPM的数字证书生效,如果是0则不生效

◆ gpgkey​​数字证书的公钥文件保存位置。不用修改

4-2 光盘yum源搭建

Yum在线安装

回顾:yum源文件

疑问:如果没有网络,如何使用yum源?

1、挂载光盘

● mkdir /mnt/cdrom

#建立挂载点

● mount /dev/cdrom /mnt/cdrom

#挂载光盘

2、使网络yum源失效

● cd /etc/yum.repos.d/

#进入yum源目录

● mv CentOS-Base.repo CentOS-Base.repo.bak

#修改yum源文件后缀名,使其失效

3、使光盘yum源生效

● vim CentOS-Media.repo

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///mnt/cdrom/​#地址为你自己的光盘挂载位置

#​file:///media/cdrom/

#​file:///media/cdrecorder/​#注释这两个不存在的地址,否则保错

gpgcheck=1

enable=1​​#把enable=0改为enable=1,让这个yum源配置文件生效

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

验证:yum list

查看yum源里有哪些软件包可以安装。

4-3 yum命令(上)

1、常用yum命令

1)查询

● yum list

#查询所有可用软件包列表

● yum search 关键字

#搜索服务器上所有和关键字相关的包

2)安装

● yum -y install 包名

● 选项:

install​​安装

-y​​​自动回答yes

例如:yum -y install gcc

Gcc:C语言的编译器

Jdk:JAVA语言的开发工具

Bash:shell的解释器

yum安装只写包名即可!无需包全名和路径。

4-4 yum命令(下)

3)升级

● yum -y update 包名

● 选项:

update​​升级

-y​​​自动回答yes

yum -y update后面不跟包名的意思是升级系统当中所有的程序,包含Linux内核,非常浪费时间;Linux内核升级后需要配置才能使用,很容易造成系统崩溃。

4)卸载

● yum -y remove 包名

● 选项:

remove​​卸载

-y​​​自动回答yes

服务器使用最小化安装,用什么软件安装什么,尽量不卸载。

2、YUM软件组管理命令

● yum grouplist

#列出所有可用的软件组列表

● yum groupinstall 软件组名

#安装指定软件组,组名可以是有grouplist查询出来

注意:软件组名必须是英文

如何知道中文对应的英文是什么?

方法一:不要使用终端工具,就在纯字符界面的Linux本机查询。

方法二:LANG=en_US临时修改环境变量,LANG=zh_CN.utf8改回来。

● yum groupremove 软件组名

#卸载指定软件组

5-1 Linux中源码包与RPM包区别

● 1源码包和RPM包的区别

● 2源码包安装过程

1、区别

◆ 安装之前的区别:概念上的区别

◆ 安装之后的区别:安装位置不同

2、RPM包安装位置

● 是安装在默认位置中

RPM包默认安装位置

/etc/

配置文件安装目录

/usr/bin/

可执行的命令安装目录

/usr/lib/

程序所使用的函数库保存位置

/usr/share/doc/

基本的软件使用手册保存位置

/usr/share/man/

帮助文件保存位置

rpm --help | grep prefix

rpm安装可以指定安装位置,但是建议不指定安装位置

3、源码包安装位置

■ 安装在指定位置当中,一般是/usr/local/软件名/

相当于Windows下的C:\Program Files

源码包没有卸载命令,卸载方式是直接删除安装目录

4、安装位置不同带来的影响

● RPM包安装的服务可以用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方式是:

➢ /etc/rc.d/init.d/httpd start

➢ Service httpd start

● 而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如:

➢ /usr/local/apache2/bin/apachectl start

5-2 Linux中源码包安装过程(上)

1、安装准备

◆ 安装C语言编译器

◆ 下载源码包

● http://mirror.bit.edu.cn/apache/httpd/

可以安装一个rpm包的apache,再装一个源码包的apache,因为两个的安装位置不同;

但是真正使用的时候,只会装一个,因为会占用相同的80端口。

rpm包和源码包,选择哪一个呢?根据效率要求。

5-3 Linux下源码包安装过程(下)

2、安装注意事项

◆ 源代码保存位置:/usr/local/src/

◆ 软件安装位置:/usr/loacal/

◆ 如何确定安装过程报错:

➢ 安装过程停止

➢ 并出现error、warning或no的提示

3、源码包安装过程

◆ 下载源码包

◆ 解压缩下载的源代包

◆ 进入解压缩目录

◆ ./configure 软件配置与检查

➢ 定义需要的功能选项。

➢ 检查系统环境是否符合安装要求。

➢ 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。

● make编译

make clean一旦编译报错,清除编译之后的缓存文件、临时文件

● make install编译安装

安装完成之后在安装位置里出现bin conf manual man include等目录

4、源码包的卸载

● 不需要卸载命令,直接删除安装目录即可。不会遗漏任何垃圾文件。

6-1 Linux中脚本安装包(上)

强大的Nginx服务器

● Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄国公司2004年发布。

表1-2 Nginx与Apache、Lighttpd的综合对比

Web服务器

Nginx

Apache

Lighttpd

反向代理

非常好

一般

Rewrite规则

非常好

一般

FastCGI

非常好

热部署

支持

不支持

不支持

系统压力比较

很小

很大

稳定性

非常好

一般

安全性

一般

一般

技术资料

很少

非常多

一般

静态文件处理

非常好

一般

虚拟主机

支持

支持

支持

内存消耗

非常小

很大

非常小

   通过表1-2可以看出,Nginx在反向代理、Rewrite规则、稳定性、静态文件处理、内存消耗等方面,表现出了强大的优势,选用Nginx取代传统的Apache服务器,将会获得多方面的性能提升。

准备工作

● 关闭RPM包安装的httpd和MySQL

● 保证yum源正常使用

● 关闭SELinux和防火墙

下载

● http://lnmp.org/install.html

脚本一键安装包

● wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh

centos.sh脚本分析

● 所谓的一键安装包,实际上还是安装的源码包与RPM包,只是把安装过程写成了脚本,便于初学者安装

● 优点:简单、快速、方便

● 缺点:

- 不能定义安装软件的版本

- 不能定义所需要的软件功能

- 源码包的优势丧失

6-2 Linux中脚本安装包(下)

如果发现Starting php-fpm卡住了,这种错误在虚拟机中非常常见,在真实机到是没有见过,但是其实已经安装完成了,只需要把启动进程杀掉,重新启动php-fpm。

pkill -9 php-fpm

/etc/rc.d/init.d/php-fpm start
文章转载自蒲公英的头发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论