Linux基础(五):软件包

一、软件包管理简介
(一)软件包分类
1、源码包:(绝大部分是c,c++)
  • 脚本安装包
2、二进制包(源码经过编译之后的,linux的安装基本都是二进制包)
  • RPM包(redhat系才有)
  • 系统默认包
(二)源码包
1、优点:
  • 开源,可以修改源代码
  • 可以自由选择所需的功能
  • 软件是编译安装,更加稳定效率更高
  • 卸载方便(删除源码包的安装文件)
2、缺点
  • 安装步骤较多,容易出错
  • 编译时间长,比二进制安装时间长了
  • 编译安装,安装过程中一旦报错新手很难解决
(三)二进制包
1、优点
  • 包管理系统简单,只需要几个命令就可以实现包的安装、升级、查询、卸载。
  • 安装速度快,因为已经编译过了。
2、缺点
  • 看不到源码
  • 功能选择步入源码包灵活
  • 依赖性,A依赖B依赖C,安装卸载的顺序需要正确

二、rpm命令管理
(一)rpm包命名原则和依赖性
1、命名规则:httpd-2.2.15-39.el6.centos.x86_64.rpm,包全名
  • httpd:软件包名
  • 2.2.15:版本
  • 39:软件发布次数
  • el6.centos:适合的Linux 平台
  • x86_64:适合的硬件平台
  • rpm:rpm包扩展名
2、依赖性
  • 树形依赖:a-->b-->c
  • 环形依赖:a-->b-->c-->a
  • 模块依赖:查询网站,www.rpmfind.net
    • so.2结尾,属于库依赖,需要去www.rpmfind.net 查询属于什么包。
(二)安装升级与卸载
1、包名与包全名
  • 包全名:操作未安装的包,且注意路径。
  • 包名:操作已经安装的软件包。是搜索/var/lib/rpm/中的数据库。
2、RPM安装
1)语法:
  • rpm -ivh 包全名
    • -i(install):安装
    • -v(verbose):显示详细信息
    • -h(hash):显示进度
    • --nodeps:不检测依赖X,建议检测依赖
2)实例
  • 挂载处理:
    • 新建挂载点:mkdir mnt/cdrom
    • 挂载处理:mount -t iso9660 /dev/sr0 /mnt/cdrom
  • 安装
    • rpm -ivh httpd-2.2.15-39.el6.centos.x86_64.rpm
    • 需要使用包全名,可以使用 TAB 键补全
    • 因为有依赖,所以比较麻烦(简直想死)。需要使用 yum 命令解决

3、RPM升级
1)语法:
  • rpm -Uvh 包全名
    • -U(upgrade):升级
4、卸载
1)语法:
  • rpm -e 包名
    • -e(erase):卸载
    • --nodeps:不检查依赖性
2)注意
  • rpm -e httpd
    • 使用包名,因为是搜索后台数据库。

(三)rpm查询
1、查询是否安装
1)语法:
  • rpm -q 包名:查询包是否安装
    • -q(query):查询
  • rpm -qa:查询所有已经安装的RPM包
    • -a(all):所有
2)实例
  • rpm -q httpd:查询httpd 是否安装
    • rpm -qi httpd:查询httpd详情,i是详细信息
  • rpm -qa:列出所有
    • rpm -qa | grep httpd:所有的搜索查询,然后利用管道符检索
2、查询软件包详细信息
1)语法:
  • rpm -qi 包名
    • -i:查询软件信息
    • -p:查询未安装包信息,加包全名
2)实例
  • rpm -qi httpd:查询httpd详情
  • rpm -qip httpd-2.2.15-39.el6.centos.x86_64.rpm:查询未安装的包信息
3)rpm包在组建软件包的时候,就规定好了。所以在可以查询未安装的信息,未安装的安装规则位置等等


3、查询包中文件安装位置
1)语法:
  • rpm -ql 包名
    • -l:列表(list)
    • -p:查询未安装包信息,加包全名
2)实例
  • rpm -ql httpd:查询httpd
  • rpm -qlp httpd-2.2.15-39.el6.centos.x86_64.rpm:查询未安装的包信息

4、查询系统文件属于哪个RPM包
1)语法:
  • rpm -qf 系统文件名
    • -f:查询系统文件属于哪个软件包(file)
2)实例
  • rpm -qf man.config
5、查询软件包的依赖性
1)语法:
  • rpm -qR 包名
    • -R:查询软件包的依赖性(requires)
    • -p:查询未安装包的信息
2)实例
  • rpm -qR httpd
  • rpm -qR httpd-2.2.15-39.el6.centos.x86_64.rpm

(四)校验和文件提取
1、rpm包校验
1)语法:
  • rpm -V 已安装的包名
    • -V:校验指定rpm包中的文件(verify)
2)实例
  • rpm -V httpd
3)校验内容是否修改
  • 8个内容信息
技术分享

  • 文件类型
技术分享

2、rpm包中文件提取
1)语法:
  • rpm2cpio 包全名 | cpio -idv  文件绝对路径
    • rpm2cpio :将rpm包转换为cpio格式的命令
    • cpio:是一个标准工具,它用于创建文档和从档案文件中提取文件
      • cpio 【选项】<【文件】【设备】
        • -i:copy-in 模式,还原
        • -d:还原时自动新建目录
        • -v:显示还原过程
    • 一行输不下,使用 "\"
2)实例

技术分享


三、yum在线管理
(一)IP地址配置和网络yum源
1、IP地址配置
1)使用setup工具:setup
2)启动网卡:vi /etc/sysconfig/network-scripts/ifcfg-eth0
  • 把ONBOOT="no"改为 ONBOOT="yes"
3)重启网络服务:service network restart


2、网络yum源(默认就是好用的)
1)ls /etc/yum.repos.d
  • CentOS-Base.repo,默认是生效的
  • CentOS-Media.repo,没有网络,光盘就要生效这个
技术分享


2)vi /etc/yum.repos.d/CentOS-Base.repo
  • [base]:容器名称,一般要放在【】中
  • name:容器说明,可以自己随便写
  • mirrorlist:镜像站点,这个可以注释掉
  • baseurl:我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的。也可以修改成国内的,速度会比较快。
  • enabled:此容器是否生效,如果不写或者写成emabled=1都是生效,写成enabled=0是不生效。
  • gpgcheck:如果是 1 是指RPM的数字证书生效,0 则是不生效。
  • gpgkey:数字证书的公钥文件保存位置。不用修改。
技术分享


(二)yum命令
1、查询
1)yum list:查询所有可用软件包列表
  • 从远程服务器上查询,前提是 linux 可以连接互联网 。就是网络yum源配置好的地址。
  • yum list |  more:分屏显示
2)yum search + 关键字:搜索服务器上所有和关键字相关的包
  • yum search httpd:搜索httpd包
2、安装:
1)语法:yum -y install + 包名
  • install:安装
  • -y:自动回答yes
2)实例:
  • yum -y install gcc:gcc是c语言编辑器,安装源码包的时候,必须有gcc。
  • rpm -q gcc:查看是否安装好
3、升级:yum -y update + 包名
  • 不加软件包,会全部升级,包括linux内核也会升级(会死的)
4、卸载:yum -y remove + 包名
  • 不加软件包,会级联删除,会出问题的。
  • 不要使用yum 升级与卸载,不安全。
5、yum软件组管理命令
  • yum grouplist:列出所有可用的软件组列表
  • yum groupinstall + 软件组名:安装指定软件组,组名可以由grouplist查询出来
  • yum groupremove + 软件组名:卸载指定软件组

(三)光盘yum源
1、步骤
1)挂载光盘
  • 新建挂载点:mkdir mnt/cdrom
  • 挂载处理:mount -t iso9660 /dev/sr0 /mnt/cdrom
2)修改网络yum源失效:
  • 修改后缀,如把CentOS-Base.repo 改为 CentOS-Base.repo.bak
    • CentOS-Base.repo,默认是生效的
    • 其他的都修改
    • CentOS-Media.repo,没有网络,光盘yum源。
  • 或者进入文件,修改生效标志,enabled=0
3)修改光盘yum源文件
  • baseurl=file:///mnt/dcrom:地址为光盘的挂载地址,自己定义。注释掉其他的yum源
  • gpgcheck=1:证书有效
  • enabled=1:生效
技术分享



四、源码包管理
(一)源码包与RPM包的区别
1、区别:
  • 安装之前的区别:概念上的区别
  • 安装之后的区别:安装位置不同
2、RPM 包安装位置
  • 安装在默认位置中,不建议手动修改。
技术分享


3、源码包安装位置
  • 安装在指定位置中,一般是:/user/local/软件名/
4、安装位置不同带来的影响
1)RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM安装包的apache的启动方法是
  • /etc/rc.d/init.d/httpd start:绝对路径中启动
  • service httpd start:使用 service 命令管理
    • service network restart,reahat特有命令
    • service: 是固定去系统默认的路径中查找,不会搜索local路径
    • 所以只能管理RPM包
2)源码包只能使用绝对路径进行服务的管理:
  • /user/local/apache2/bin/paachectl start
(二)源码包安装过程:略

五、脚本安装包
(一)脚本安装包
1、简介:
  • 脚本安装包并不是独立的软件包类型,常见安装的是源码包
  • 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
  • 非常类似于windows下软件的安装方式
2、Webmin的作用
  • Webmin 是一个基于web的 linux 系统管理界面。可以通过图形化的方式设置用户账号、apache、DNS、文件共享等服务。
3、Webmin安装过程
  • du -sh webmin-1.610:查看大小



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。