Linux软件安装管理

一.Linux下软件安装包的类型

1.源码包

  1. 优点
    开源,如果有足够的能力,可以修改源代码,自由选择所需的功能;
    软件是本地编译后安装,所以更加适合自己的系统,更加稳定、效率更高;
    卸载方便,直接删除安装目录即可。
  2. 缺点
    安装步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出错;
    因为需要编译安装,所以安装过程中一旦报错新手很难解决且安装时间较长;
  3. 脚本安装包
    脚本安装包就是把复杂的软件包安装过程写成了脚本程序,通过执行脚本实现一键安装,但实际安装的还是源码包编译后的二进制包;
    优点:安装简单、快捷,适合新手;
    缺点:完全丧失了自定义性。

2.二进制包(RPM包)

  1. 优点:
    包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
    安装速度比源码包快的多(安装的是厂家已编译好的二进制包)。
  2. 缺点
    经过编译,无法看到源代码;
    功能选择不如源码包灵活;
    依赖性,安装时依赖问题比较麻烦

二.rpm包的安装命令

1.安装
rpm -ivh 包全名

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

示例:rpm -ivh httpd-2.2.15-15.e16.centos.1.i686.rpm

2.升级
rpm -Uvh 包全名(要升级到的软件版本)

3.卸载
rpm -e 包名
示例:rmp -e httpd

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

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

4.查询

  • 查询是否安装: rpm -q 包名
  • 查询所有:rpm -qa
    常用的查询命令示例:rpm -qa | grep httpd
    grep 后跟正则表达式
  • 查询软件包详细信息:rpm -qi 包名

5.RPM 包校验
rpm -V 已安装的包名
示例:rpm -V httpd
判断本地的软件文件与官方给出的是否一致, 从而判断是否被人修改
若无任何提示, 代表该文件没有被做任何修改

三.Yum在线安装

使用前确保已安装了gcc(c语言编译器):yum -y install gcc

  • 优点
    所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题

yum的配置文件目录:/etc/yum.repos.d/
其中默认生效的是CentOS-Base.repo
文件中的mirrorlist和baseurl一个是主站点,一个是辅助站点,这两个有一个就行,可替换为国内镜像源地址

使用清华镜像源:https://mirrors.cnnic.cn/help/centos/

  • 命令
    yum search 关键字:搜索服务器上所有和关键字相关的包
    yum -y install 包名 (-y 自动回答yes):安装
    yum -y update 包名:升级,一定要加包名,否则会升级所有软件
    yum -y remove 包名:卸载命令

升级是要付出代价的,有可能造成损失。所以在正式服务器上,除非出现关键的安全问题漏洞,一般不建议升级

服务器原则:使用最小化安装,用什么安装什么,尽量不要去卸载

四.源码包安装

1.由于源码都是c语言写的,所以要先安装c语言编译器:gcc;
2.从官方网站下载源码包,以apache2为例,下载解压后得到目录:httpd-2.2.31;
3.进入到解压缩后的目录【httpd-2.2.31】中;
4.执行命令:./configure --prefix=/usr/local/apache2

  • configure命令:用于软件的配置与检查,生成Makefile文件,后续安装将依赖此文件;
  • 参数prefix:指定安装路径

5.执行【make】命令,编译成源码
6.执行【make install】命令,安装程序,此时会创建【/usr/local/apache2】目录

若执行【./configure】或【make】命令时出现错误,是不需要删除【/usr/local/apache2】目录的,因为程序还没有真正安装。只需要执行【make clean】命令即可,该命令用于清除缓存、临时文件等,使安装环境恢复到未安装状态。
若执行【make install】命令时报错,则需要删除【/usr/local/apache2】目录,并且执行【make clean】命令。

五.Linux中源码包与RPM包区别

1.安装位置不同
源码包是不能使用【service】命令来启动服务,因为源码包的安装位置由用户指定,放在哪并不统一。而rpm包安装后,通常启动命令都放在【/etc/rc.d/init.d】目录中的,而【service】命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使用【service】命令。

源码包的安装路径一般指定为: /usr/local/软件名/,源码包安装的服务,只能用绝对路径进行服务的管理。
如果将源码包安装后的启动程序复制到【/etc/rc.d/init.d】目录中,则也是可以使用【service】命令执行的。

参考:https://www.imooc.com/coursescore/447
https://blog.csdn.net/Dream_Weave/article/details/86583705

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值