默认教学计划
931人加入学习
(20人评价)
Linux运维基础
价格 ¥ 599.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习
应用程序:程序=数据+指令  应用程序运行时称为进程,运行过程申请CPU和内存资源
源代码--编译--链接--运行
 
    编译:生成二进制文件(可执行文件),匹配底层架构
 
    链接:
         库:静态库和动态库  .so(shared object)
         静态链接过程:把库文件集成到应用程序中,把程序要使用的模块链接到程序
         动态链接过程:库文件和应用程序分开的,做链接
 
 
程序装入内存时内存地址空间分布:
text:存放指令
data+BSS : data存放数据,  BSS(block system of symbol)存放初始化为0的变量
栈:stack存放应用程序的变量和函数等
堆:heap存放运行中临时文件
 
 
应用程序中包含的文件:
    二进制文件(可执行程序):通常在/bin  /sbin  /usr/bin  /usr/sbin目录下存放 
        
    库:modules   .so文件
    配置文件:.conf文件
    帮助文件:一般放在/usr/share中
         
 
    注:由于应用程序中的二进制文件、库存放在/bin  /sbin  /etc这些目录下,因此这几个目录不能单独分区 ;而/usr/bin   /usr/sbin存放的是第三方的应用程序文件;而/ust/local 这个目录又是独立的
 
 
 
 
 
 
 
 
软件包管理器的核心功能:
    1、制作软件包;
    2、安装、卸载、升级、查询、校验;
    RPM功能:安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;
 
 
软件包中存在依赖关系:
    A--->B--->C:安装软件先安装被依赖软件包,卸载软件包时,先卸载依赖的软件
 
    解决依赖关系:
        前端工具:yum, apt-get,自行解决依赖关系
        后端工具:RPM, DPT
 
    RPM包:经过源代码编译后的软件包
    .tar.gz:源码包,没有经过编译
 
 
RPM与DPT:
    Redhat、SUSE使用 RPM
        Redhat Package Manager
        PRM is Package Manager
    Debian使用 DPT
 
    RPM: RPM是以一种数据库记录的方式将所需要的软件安装到Linux主机的一套管理程序,最大的特点是将要安装的软件先编译并打包,通过包装好的软件中默认的数据库记录,记录这个软件在安装的时候需要的依赖属性模块,在用户的Linux主机安装时,RPM会先根据软件里的记录数据,查询Linux主机的依赖属性软件是否满足,若满足则予以安装,不满足则不安装。安装的时候将该软件的信息全部写入RPM的数据库中以便将来的查询、验证与卸载。
 
RPM包命名格式:

    name-version-arch.rpm

    name-version-arch.src.rpm

    说明
  • name:软件包名称。
  • version:带有主、次和修订的软件包版本。
  • arch:硬件平台。硬件平台包括了:i386、i486、i586、i686、x86_64、ppc、sparc、alpha
  • src.rpm:源代码包。
    主版本号:功能重大改进修改主版本号
    次版本号:某个子功能发生重大变化
    发行号:修正了部分bug,调整了一点功能
 
RPM优点:
    1:RPM软件包中包含了编译过的程序与配置文件,用户不用重新编译
    2:RPM在安装之前,首先会检查硬盘容量,操作系统版本等,避免错误安装
    3:RPM使用RPM数据库管理,数据中记录应用程序的参数,便于升级,卸载,查询等,RPM数据库(/var/lib/rpm)
    4:RPM本身会提供应用程序版本信息,相关属性,软件名称,用途等,便于用户了解软件
 
 
RPM工具的使用:
    1:安装:rpm [options] name.rpm
        -i:安装软件包
        -h:以#显示进度;每个#表示2%;
        -v:显示详细过程
        -vv:更详细的信息
        --nodeps:忽略依赖关系,可能导致软件包安装不完整
        --replacepkgs:重新安装,替换原有安装;
        --force:强行安装,可以实现重装或降级;
    
    2、查询
        rpm [options] [PACKAGE_NAME]
            -q:查询指定的包是否已经安装
            -qa:查询已经安装的所有包
            -qi:查询指定包的说明信息;
            -ql:查询指定包安装后生成的文件列表;
            -qc:查询指定包安装的配置文件;
            -qd:查询指定包安装的帮助文件;
            -qf file_path:查询指定的文件是由哪个rpm包安装生成的;
            -q --scripts:查询指定包中包含的脚本
      脚本:包含软件包安装前(preinstall)、安装后(postinstall)、卸载前(preuninstall)、卸载后(postuninstall)执行的脚本
    
 
    
如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
rpm -qpi /PATH/TO/PACKAGE_FILE:查看未安装软件包信息
rpm -qpl :查看未安装软件包列表
 
    3、升级
        rpm -Uvh RPM_path : 如果装有老版本的,则升级;否则,则安装;
        rpm -Fvh 用于更新或降级的包:如果装有老版本的,则升级;否则,退出;
            --oldpackage: 降级
        
    4、卸载(erase)
        rpm -e Programe_name(如:httpd、vsftpd)
            --nodeps:卸载时忽略依赖关系
    
    5、校验软件的完整性
        rpm -V Programe_name
        应用程序配置文件完整性破坏以后的代码:
            S file Size differs
            M Mode differs (includes permissions and file type)
            5 digest (formerly MD5 sum) differs
            D Device major/minor number mismatch
            L readLink(2) path mismatch
            U User ownership differs
            G Group ownership differs
            T mTime differs
            P caPabilities differ
    
    6、重建数据库
            rpm
                --rebuilddb: 重建数据库,一定会重新建立;
                --initdb:初始化数据库,没有才建立,有就不用建立;
 
 
    7、检验来源合法性,及软件包完整性;
 
        # ls /etc/pki/rpm-gpg/
            RPM-GPG-KEY-redhat-release
    
        rpm -K rpm_path
           rsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
           sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项
    
        不合法解决办法:
        rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件
 
[展开全文]

1,编译与CPU得架构密切相关,编译是将应用程序源码转换成机器可识别得二进制文件

2,内存地址空间

    text:存放指令

    data+BSS:data存放数据,BSS存放初始为0得数据

    堆:存放运行时临时文件

    栈:存放应用程序变量和函数

3,应用程序组成

    二进制文件

    库

    配置文件

    帮助文件

4,软件包管理器分类

    前端(yum,apt)

    后端(rpm)

5,RPM

    开放式软件包管理,包括安装、卸载、升级、组合查询、软件包依赖以及验证等功能

    优点:

    编译过得程序和配置文件,不必重新编译

    安装前检查硬盘容量,避免错误安装

    使用RPM数据库管理,便于升级、卸载

    缺点:

    不能自己解决依赖关系(可以忽略)

 

 

[展开全文]

软件包管理;

软件包管理工具 RPM

 

应用程序;

     源代码--编译(生成可执行文件,匹配底层构架)--链接--运行

    链接:

         库:静态库和动态库

         静态链接过程:把库文件集成到应用程序中

         动态链接过程:库文件和应用程序分开

应用程序:二进制文件  库  配置文件  帮助文件  

 

内存地址空间:

    text 存放指令

    data + BSS data存放数据,BSS 存放初始化为0的变量

    堆 heap存放运行中临时文件

    栈 stack存放应用程序的变量和函数

 

软件包管理器的核心功能:

    1 制作软件包

    2 安装,卸载,升级,查询,校验

 

前端工具:yum apt-get自行解决依赖关系

后端工具:RPM  dpt

RPM优点:

1 包含了编译过的程序与配置文件,用户不用重新编译

2 在安装之前,首先会检查硬盘容量,操作系统版本,避免被错误安装

3 他使用RPM数据库管理,数据中记录应用程序的参数,便于升级,卸载,查询(/var/lib/rpm)

4 本身会提供应用程序版本信息,相关属性,软件名称,用途,便于用户了解软件

 

RPM包 经过编译后的软件包

.tar.gz 没有经过编译

 

 

 

 

 

 

[展开全文]