七,linux 软件包管理

一,软件包分类

  • 源码包

    源码包需要先编译成二进制包,再进行安装,因此安装较慢。

    源码包中还有一种比较特殊的包叫脚本安装包,这种包不需要手动安装,但这种包不多。

        用C语言写的

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

    二进制包是通过源码包编译后产生的,安装起来较快,但不能看到源代码。

二,两种软件包的比较


源码包

优点
  • 开源,可以修改源代码。
  • 源码包先进行编译后再安装,更适合自己的系统,也更加稳定,效率更高。
  • 可以自由选择所需功能。
  • 卸载方便,不会遗留垃圾文件。

缺点
  • 安装步骤多,如果安装较大的软件集合,容易出现拼写错误 。
  • 安装时间较长,编译时间长
  • 因为是编译安装,安装过程如果报错,新手很难解决。

RPM包
  • 优点

    • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载。
    • 安装速度较快。
  • 缺点

    • 无法看到源代码。
    • 功能选择没有源码包灵活。
    • 有依赖性。

三,RPM包管理-rpm命令管理

RPM包命名规则:httpd-2.2.15-15.el6.centos.l.i686.rpm

httpd: 软件包名

2.2.15: 软件包版本

15: 软件发布次数

el6.centos: 适合的Linux平台

i686: 适合的硬件平台

rpm: rpm包扩展名

RPM包依赖性(重点)

  • 树形依赖(典型):a→b→c

        通俗来说就是装软件包a,要先装软件包b,装软件包b又要先装软件包c。

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

        解决环形依赖的方法就是a、b、c同时安装。

  • 模块依赖:模块依赖查询网站,www.rpmfind.net

包全名与包名

  • 包全名:操作的包是没有安装的软件包时,使用包全名(如安装和更新),还要注意路径。
  • 包名:就是上面命名规则中的httpd,操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库。

3.1 RPM安装命令
rpm -ivh 包全名
选项:
	-i(install)		安装
	-v(verbose)		显示详细信息
	-h(hash)		显示进度
	--nodeps		不检测依赖性
3.2 RPM包升级
rpm -Uvh 包全名
3.3 卸载
rpm -e 包名
选项:
	-e	卸载
	--nodeps	不检查依赖性
3.4 查询是否安装
rpm -q 包名
rpm -qa (查询所有安装的rpm包)
3.5 查询软件包详细信息
rpm -qi 包名
选项:
	-i	查询软件信息
	-p	查询未安装包信息(低频)
3.6 查询包中文件安装位置
rpm -ql 包名
选项:
	-l	列表(list)
	-p	查询未安装包信息
3.7 查询系统文件属于那个RPM包
rpm -qf	系统文件名
选项:
	-f	查询系统文件属于哪个软件包
3.8 查询软件包的依赖性
rpm -qR	包名
rpm -qRp 包全名(查询未安装包的依赖性)
3.9 RPM包校验
rpm -V 包名

验证内容中的8个信息的含义:

S 文件大小是否改变

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

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

D 设备的中,从代码是否改变

L 文件路径是否改变

U 文件的所有者是否改变

G 文件的所属组是否改变

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

3.10 RPM包中文件提取
rpm2cpio 路径+包全名 | cpio -idv .绝对路径

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

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

四,网络yum源

4.1 yum命令

         

查询

yum list 		#查询所有可用软件包列表
yum search 关键字	#搜索服务器上所有和关键字相关的包

安装

yum -y install 包名

升级

yum -y update 包名

 慎重使用

卸载

yum -y remove

慎重使用

yum软件组管理命令
yum grouplist  #列出所有可用的软件组列表
yum groupinstall 软件名    #安装指定软件组,注明可以由grouplist查询出来
yum groupremove 软件组组名	#卸载指定软件组

光盘yum源搭建

五,源码包管理

5.1 源码包和RPM包的区别(安装位置)

        RPM包安装位置:

在这里插入图片描述

        源码包安装位置:

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

5.2 源码包安装过程

5.2.1安装准备

  • 安装C语言编译器
rpm -q gcc

GCC

  • GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。
  • GCC的初衷是为GNU操作系统专门编写的一款编译器。
  • GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由 。
  • GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)

gcc是拿来编译各种源代码的软件,比如在写代码的时候,需要编译才能运行。


gcc的作用就是将在linux中的源代码软件进行编译后,然后变成可执行的运行程序,进行安装,就相当于windows下的setup安装程序一样。

RPM是不需要GCC就可以安装,TAR包里是源代码,需要安装GCC,不然无法安装

  • 下载源码包

5.2.2 安装注意事项

  • 源代码保存位置:/usr/local/src/
  • 软件安装位置:/usr/local/


5.2.3 源码包安装过程

  • 下载源码包

        我是从官网下载的,然后通过软件WinSCP将安装包转到Linux下。

        然后在Linux的home目录下就有这个安装包了。

在这里插入图片描述

  • 解压缩下载的源码包。
tar -zxvf httpd-2.4.52.tar.gz
  • 进入解压缩目录。
cd httpd-2.4.52/



在目录下有一个叫ISTALL的文件,我们打开它,里面有安装步骤,我们照做就行。

在这里插入图片描述

  • ./configure 软件配置与检查
  • 定义需要的功能选项。
  • 检测系统环境是否符合安装要求。
  • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用 于后续(make make install)编辑。
./configure --prefix=/usr/local/apache2

  • make 编译

若前面有报错,则用命令make clean清空编译产生的临时文件
make install 编译安装

  • 安装完毕,启动
/usr/local/apache2/bin/apachectl start


这时会有一个报错,但不影响使用。

 在这里插入图片描述

然后在浏览器中输入我们虚拟机的ip地址,就能显示It works!

六,脚本安装包


6.1 什么是脚本安装包

  • 脚本安装包不是独立的软件包类型,常见安装的是源码包。
  • 是人为把安装过程写成自动安装的脚本,只要执行脚本,定义简单参数,就可以完成安装。
  • 非常类似于Windows下软件的安装方式。

下面已安装软件包Webmin为例进行演示:

tar -zxvf webmin-1.984.tar.gz
cd webmin-1.984
  • 执行安装脚本。

目录下的setup.sh就是安装脚本

./setup.sh 


全部回车默认即可,我这里的默认端口号是10000,安装完毕后,在浏览器输入ip地址加端口号即可访问。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值