linux的软件安装方式总结

Linux系统中软件的“四”种安装原理详解:源码包安装、RPM二进制安装、YUM在线安装、脚本安装包

一、Linux软件包分类

1.1 源码包

优点:

  1. 开源,如果有足够的能力,可以修改源代码
  2. 可以自由选择所需的功能;
  3. 软件是编译安装,所以更加适合自己的系统,更加稳定、效率更高;
  4. 卸载方便;

缺点

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

注:
    对于要求效率的软件,要安装源码包版本,因为是本机编译,更具有兼容性和效率,rpm包是软件开发者提供的大众版本,可用于不注重效率的应用。

1.2 二进制包(RPM包)

优点:

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

缺点:

  1. 经过编译,不再可以看到源代码;
  2. 功能选择不如源码包灵活;
  3. 依赖性;

1.3 yum在线安装

可以方便的解决RPM安装依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。

注:RedHatyum是收费服务,而CentOSyum是免费服务。

1.4 脚本安装包

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

优点:安装简单、快捷;

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

总结:

其实Linux中软件包只有源码包二进制(RPM)包两种软件安装包。

二、源码包安装(推荐方式

2.1 源码包与RPM包区别

安装之前的区别: 概念上的区别 
安装之后的区别: 安装位置不同

2.2 安装位置不同带来的影响

2.2.1 rpm包安装位置

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

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

请注意:rpm包安装也是可以指定安装位置的,service命令是redhat的专有命令,所以/etc/rc.d/init.d/XXXX start是最标准的启动方式。如果为rpm包指定了安装目录,抱歉,两个启动方法都不能用了。

2.2.2 源码包安装位置

安装在指定位置当中,一般是:

/usr/local/软件名/

源码包安装的服务,只能用绝对路径进行服务的管理。

2.2.3 总结

  1. 源码包是不能使用【service】命令来启动服务,因为源码包的安装位置由用户指定,放在哪并不统一。而rpm包安装后,通常都是放在【/etc/rc.d/init.d】目录中的,而【service】命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使【service】命令。
  2. 综上所述,安装位置不同,启动方法是有区别的。
  3. 使用绝对路径启动程序的方法是通用的,通常软件包中会写上启动程序的方法的。
  4. 如果将源码包安装后的启动程序复制到【/etc/rc.d/init.d】目录中,则也是可以使用【service】命令执行的。
  5. 源码包一定要指定安装目录,不指定的话,会和rpm一样安装的到处都是。但是,不能用-e卸载了。一般指定目录是/usr/local(可以看出WindowsProgram Files)。同时,源码包不能用service命令启动的,原因在于service命令是搜索/etc/rc.d/init.d/目录来启动服务的。

2.3 源码包安装步骤(重点

2.3.1 安装准备和源码包获取

  1. 由于源码都是c语言写的,所以要先安装c语言编译器:gcc
  2. 从官方网站下载源码包,若是下载到了windows上面,可以使用winSCP传到linux

注:若已安装了二进制包,则源码包也是可以继续安装的,因为两者安装目录不一样。但是,并不建议这样做,因为端口会冲突。

2.3.2 源码包安装详细过程

下面以安装apache2为例

2.3.2.1 确保有gcc编译器

gcc -v # 是否能打印你使用gcc版本信息

2.3.2.2 下载源码包,解压

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

winSCP拖到/local/usr/src目录下保存

解压:tar -zvxf httpd-2.2.31.tar.gz解压缩后的目录为【httpd-2.2.31

2.3.2.3 安装

安装时必须进入到解压缩后的目录【httpd-2.2.31】中

安装步骤 执行【./configure】命令,该命令用于软件配置与检查(基本上每个源码包都会有该命令,即使个别的没有该命令,也会提供相关替代命令),它有以下几点功能:

  • 定义需要的功能选项;
  • 检测系统环境是否符合安装要求;
  • 把第一项中定义好的功能选项和第二项中检测系统环境的信息都写入Makefile文件,用于后续的编辑。(后续的【make】和【make install】命令都会依赖该文件)

执行命令【./configure --prefix=/usr/local/apache2】,该命令用于指定安装位置为:【/usr/local/apache2】(其中的【apache2】目录不需要提前创建,【make install】命令执行时会自动创建)。命令执行后,会在当前目录生成Makefile文件。

检查依赖库:make depend

安装步骤 执行【make】命令,编译源码(这一步通常比较耗时)

安装步骤 执行【make install】命令,安装程序,此时会创建【/usr/local/apache2】目录

2.3.2.4 Tips

  1. 如果命令执行过程中发生终止,并且出现error、warnno提示,则表明出错,否则,一切正常。
  2. 若执行【./configure】或【make】命令时出现错误,是不需要删除【/usr/local/apache2】目录的,因为程序还没有真正安装。只需要执行【make clean】命令即可,该命令用于清除缓存、临时文件等,使安装环境恢复到未安装状态。
  3. 若执行【make install】命令时报错,则需要删除【/usr/local/apache2】目录,并且执行【make clean】命令才行。

三、RPM命令管理

3.1 RPM包的来源

所有RPM包都在系统光盘Packages目录中

3.2 RPM包命名规则

软件包名-软件版本-软件发布的次数-适合的Linux平台-适合的硬件平台-包扩展名

httpd-2.2.15-15.el6.centsos.1.i686.rpm

httpd软件包名-2.2.15软件版本-15发布的次数-el6.centos适合的Linux平台-i686适应的硬件平台-rpm包扩展名,el6redhat的企业版

3.3 RPM包依赖性

a. 树形依赖:a->b->c 解决方法:从后往前安装
b. 环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可
c. 模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就 是以【.so.数字】结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。

yum在线安装可以方便的解决依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。

注:RedHatyum是收费服务,而CentOSyum是免费服务。

3.4 RPM安装

rpm -ivh 包全名

-i(install) 安装; -v(verbose) 详细信息; -h(hash) 进度;

3.5 RPM升级和卸载

升级命令

rpm -Uvh 包全名(要升级到的软件版本),如果没有安装这个软件的任何版本,这个命令可以代替rpm -ivh

卸载命令

rpm -e 包名(比如Httpd,不需要包全名)

这个命令不同于安装和升级,它可以在任何目录运行,原理是去/var/lib/rpm目录中的数据库(如__db0)中查找对应的软件包(已经安装过的rpm包都在这些数据库中),然后卸载。
--nodeps这个选项不管是在安装和卸载的时候,最好都不要使用。

rpm安装包安装的位置是由软件包开发者决定的,安装后的位置会非常凌乱,所以最好是使用rpm -e命令卸载。

相对于二进制安装,源码安装是指定安装目录了,卸载的时候只需要删除对应的目录就可以完全的卸载,不留一点残余。

3.6 RPM包查询

1.查询是否安装

rpm -q  包名

rpm -qa
# q ==> query  a ==> all

查询所有已经安装的RPM包

 rpm -qa | grep httpd

grep 后跟正则表达式, find 后跟通配符

2. 查询软件包详细信息

rpm -qi 包名
rpm -qip 包全名

# i ==> infomation

# p ==> package : 查询**`未安装包`**信息

有时遇到问题, 可根据未安装包信息中所提供的网站进行查询资料

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

rpm -ql 包名

# l ==> list
# -p ==> package : 查询未安装包信息

可查看包作者欲将包安装的位置

RPM 包默认安装位置

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

rpm -qf 系统文件名
# f ==> file : 查询系统文件属于哪个软件包

该文件必须是通过 RPM 包安装的

5. 查询软件包的依赖性

rpm -qR 包名

R ==> requires : 查询软件包的依赖性
p ==> package : 查询未安装包的信息

3.7 RPM 包校验

 rpm -V 已安装的包名

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

执行 rpm -V httpd 后, 无任何提示, 代表该文件没有被做任何修改

判断本地的apache 与官方给出的是否一致, 从而判断是否被人修改。

修改文件 /etc/httpd/conf/httpd.conf , 在注释行添加任意内容后, 再次执行
    提示 : S.5....T. c /etc/httpd/conf/httpd.conf

验证内容中的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) : 描述文件
MD5校验

作用:
    用来校验文件的完整性(文件内容是否被改变)。

例如, 在官网下载的游戏, 官方会给出MD5校验码, 将下载的游戏通过专用的MD5校验工具校验后生成一份MD5校验码, 对比两份校验码是否一致, 不一致则说明,下载的文件可能丢包, 可能文件损坏, 可能被其他人动过手脚一直木马等。

四、yum在线安装

4.1 yum源文件

yum的优点:
    将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)。

redhatyum在线安装需要付费,CentOS不需要。

在【/etc/yum.repos.d/】目录中,默认有4yum源文件,其中【CentOS-Base.repo】是基本yum源文件,如果我们能上网,那它是默认生效的,而其他的都是默认不生效的。

4.2 yum命令

  1. 查询
    yun list --查询所有可用软件包列表
    yum search 关键字 --搜索服务器上所有和关键字相关的包
  2. 安装

    yum -y install 包名 (-y 自动回答yes)
    yum安装只写包名即可! eg:yum -y install gcc --c语言编译器
  3. 升级/卸载

升级:yum -y update 包名

-update:升级;
-y:自动回答yes;

卸载:yum -y remove 包名

-remove:卸载;
-y:自动回答yes;

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

①LANG=en_US:切换至英文;(临时生效)
    ②LANG=zh_CN.utf8:切换至中文;(临时生效)

五、脚本安装

5.1 脚本安装包

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

优点:加单,快速,方便
    缺点:

1.不能定义安装软件的版本;
2.不能定义所需要的软件功能;
3.源码包的优势几乎完全丧失;

5.2 脚本安装包:准备工作

1、本节以安装LNMP1.0为例,所以需要先停止之前安装的apachemysql服务(最好也将源码包安装的apache/usr/local/apache2】删除)

nignx非常优秀,可以支持更大的并发量。apache的默认并发量是400,如果给它改大,比如到> 2000,就要测一测了,如果稳定才能再继续增加。nginx不用测试就可以设置到50000(用户同一时刻刷新网页)。可以说一台nignx服务器顶3apache

2、保证yum源正常:可以使用【yum list】命令测试。(若是光盘yum源,记得挂载光盘)
    3、关闭SELinux和防火墙:

a、永久关闭SELinux的方法:编辑文件【/etc/selinux/config】,将【SELINUX=enforcing】改为【SELINUX=disabled】,然后重启系统即可。
b、永久关闭防火墙的方法:【chkconfig iptables off】,开启为:【chkconfig iptables on】;临时关闭防火墙的方法:【service iptables stop】,开启为:【service iptables start】。

4、脚本安装过程中,会将系统中已有的apache、mysql、php等卸载掉。下面是安装脚本【centOS.sh】的部分内容:
......部分内容省略......

yum install -y ntp
ntpdate -u pool.ntp.org
date

rpm -qa|grep httpd
rpm -e httpd
rpm -qa|grep mysql
rpm -e mysql
rpm -qa|grep php
rpm -e php

yum -y remove httpd*
yum -y remove php*
yum -y remove mysql-server mysql
yum -y remove php-mysql

......部分内容省略......
    注:安装后,如果安装卡在了【php-fpm】那里,通常表示已安装成功,只是【php-fpm】那里卡住了(物理机少见,但虚拟机比较常见),解决的方法就是:使用命令【pkill -9 php-fpm】杀掉【php-fpm】进程,然后重新启动该进程【/etc/rc.d/init.d/php-fpm start】即可。

LNMP一键安装包安装地址

注意:转发网址:https://segmentfault.com/a/1190000011325357

原文地址:https://www.cnblogs.com/hfdp/p/9314452.html

时间: 2024-11-06 10:00:00

linux的软件安装方式总结的相关文章

Linux平台上的多种软件安装方式与更友好的包管理软件介绍

一.Linux平台上软件安装卸载的四种方式 1.源码包安装.卸载 优点:性能最好,稳定 缺点:安装稍微复杂,容易出错 一般软件的源码包都进行了压缩,压缩的格式分为gz和bz(或bz2)两种格式. 源码包的格式:***.tar.gz(或bz,bz2). 如下图所示,是PHP的源码包: 源码包(以PHP的安装包为例)的安装.卸载的方法如下: 1)安装: 第一步:解压安装包 gz后缀用:tar -zxvf php-5.5.14.tar.gz bz(或bz2)后缀用:tar -jxvf php-5.5.

【转】Linux下软件安装的几种方式

转自Linux下软件安装的几种方式 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统级的目录,可以理解为              C:/Windows/, /usr/lib理解为                                       C:/Windows/System32. /usr/bin:几乎所有的系统可执行文件都会安装在这里 /usr/local/bin:则是可以存放一些系统用户自己

云计算学习路线图素材课件,Linux中软件安装的方式

很多初学者感觉云计算就是一个听起来比较高大上的名词,每次想要了解它的时候都像是雾里看花,迷迷糊糊看不真切,至于它是干什么的就更不了解了,其实云计算学起来在IT行业中还是比较容易上手的,接下来我给大家分享Linux中软件安装的方式: 一.源代码形式 绝大多数开源软件都是直接以原码形式发布的,源代码一般会被打包成.tar.gz的归档压缩文件,需要编译成为二进制形式之后才能够运行使用. 源代码基本编译流程: 1).configure 检查编译环境,这里可以通过--prefix等命令配置安装路径(好像)

Linux 基础入门----Linux 下软件安装

介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二进制软件包安装 从源代码编译安装 这几种安装方式各有优劣,而大多数软件包会采用多种方式发布软件,所以我们常常需要全部掌握这几种软件安装方式,以便适应各种环境.下面将介绍前三种安装方式,从源码编译安装你将在 Linux 程序设计中学习到. 二.在线安装 试想一下,平时我们在使用 Windows 的时候

linux下软件安装

一.Linux 上的软件安装 通常 Linux 上的软件安装主要有四种方式: 在线安装 从磁盘安装de软件包 从二进制软件包安装 从源代码编译安装 二.在线安装 在不同的linux发行版上面在线安装方式会有一些差异包括使用的命令及它们的包管理工具, 本文以ubuntu为例. 1. 先体验一下 比如我们想安装一个软件,名字叫做 w3m(w3m是一个命令行的简易网页浏览器),那么输入如下命令: $ sudo apt-get install w3m $ w3m www.shiyanlou.com/fa

Linux 下软件安装

Linux 下软件安装 实验介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二进制软件包安装 从源代码编译安装 这几种安装方式各有优劣,而大多数软件包会采用多种方式发布软件,所以我们常常需要全部掌握这几种软件安装方式,以便适应各种环境.下面将介绍前三种安装方式,从源码编译安装你将在 Linux 程序设计中学习到. 二.在线安装 试想一下,平时我们在

Linux 之 软件安装

单纯一个操作系统是没有办法满足我们的需求的,所以需要各种安装各种软件来满足我们日常工作.生活需求.一般情况下,Linux常用的安装方式有两种,以CentOS为例: 1.从源代码安装软件 将软件源代码编译安装适用于所有针对linux系统开发的软件,以及部分针对类unix系统开发的软件. 步骤为: 执行configure,它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息.为随后的编译工作做准备. 在检查过程中,如果出现问题,会停止检查并提示错误,方便用户根据

Linux入门基础教程之Linux下软件安装

Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc APT(Advanced Packaging Tool), 包括apt-get, apt-cache, apt-cdrom等工具,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程,Ubuntu是Debian的发行版.Debian使用的包管理工具是dpkg

Linux 之 软件安装-yum、rpm、源码安装

软件安装-yum.rpm.源码安装 感谢:[千峰教育] 一.Yum安装软件: 基本说明: 1.yum相当于windows上面的360的软件中心,appstore,安卓的应用商店. 2.yum是redhat系列发行版的软件安装命令,debian系列用的是apt-get. 3.yum安装软件的来源得存在一个地方,这个地方叫做软件仓库,又叫yum源. 4.yum源的配置文件在/etc/yum.repos.d/这个目录下面. 更换yum源: 进入目录:cd /etc/yum.repos.d 备份文件:m