• 软件管理


    基本概念

    1.程序:可执行的二进制文件,由指令和数据组成

    2.链接库:二进制文件,不可执行(无执行入口),可被程序调用。

    3.脚本:可执行文本文件,执行时由解释器转义成CPU可以执行的机器码。

    4.编译:高级编程语言编写的代码,经过编译过程转译成CPU可识别的机器码(0、1)

    5.编译过程:

       1)检查程序语法

       2)把程序代码转换成机器码

       3)程序代码中若有使用其他链接库的机器码,则将其链接。

       4)产生OS的相关信息;

       5)存储为可执行文件

    6.链接:将存储在链接库中的机器码存储到程序中

     1)静态链接:执行期间,将机器码复制到执行文件中。

      优点:可独立使用;缺点:执行时需较多的内存空间、文件变大。

     2)动态链接:只存储需要链接库的名称、版本及函数的符号等信息。执行时,根据链接信息,加载所需的链接库及机器码。

          优点:体积小、占用内存小;缺点:无法独立使用,当程序移动到另一主机时,需保证另一主机有相同的链接库。

    备注:linux基本使用动态链接库。

    7.查询链接库:ldd

    #ldd /bin/ls            #当程序采用动态链接时,查询程序执行时,需用到哪些链接库。

    linux-gate.so.1 => (0x003b3000)
    librt.so.1 => /lib/librt.so.1 (0x00518000)

    显示格式:链接库名称 => 链接库的文件名(链接库加载到到内存的地址)

    8.软件的依赖性

      即软件执行时需要用到其他的组件(可能是程序、链接库或普通文件)

    9.常用软件包类型

       rpm包:.rpm格式,可使用rpm工具直接安装

       源码包:gzip与bzip2压缩包,需使用源码编译安装

    RPM软件包管理

        RPM是RedHat Package Manager的缩写,也即使红帽软件包工具。提供一种可升级、具有强大查询功能、

    支持安全验证的通用型linux软件包管理工具。

    包格式:PACKAGE-VERSION-RELEASE.TYPE.rpm

    ftp下载: lftp serverip

          get:下载单个

          mget:下载多个

       bye

    1.安装RPM包

    rpm -i [-v] [-h] FILES...

        -v:显示信息信息

        -h:显示进度

       --nodeps:忽略依赖关系

      --force:强行安装

      --oldpackage:降级安装

      --replacepkgs:重新安装,替换原有安装

      --replacefiles:替换文件

      --test   检查软件包是否能够安装

        FILES:RPM文件的名称,支持URL形式:

        ftp://HOSTNAME/PATH/FILE   #FILE可使用通配

        http://HOSTNAME/PATH/FILE  #FILE不支持通配

    2.升级与更新RPM包

    1.升级:升级时,会自动删除旧版本,再安装新版本

     #rpm -U [-v] [-h]  FILES...

    2.更新:新版本覆盖旧版本上的文件。 (如果装有老版本,则升级。否则,退出)

    #rpm -F [-v] [-h] FILES...

    #rpm -Uvh   --oldpackage nono-1.3.12-1.1.i386.rpm   #降级安装

    3.卸载软件包

    #rpm -e PACKAGES...

    3.查询软件包

    rpm -q  包名     #查看指定软件包是否已经安装

    rpm -qa           #查看系统中已安装的所有软件

    rpm -qi 包名    #查询已安装软件包的详细信息

    rpm -ql  包名  #查找已安装软件的安装路径与文件列表

    rpm -qc 包名   #查询已安装软件的配置文件

    rpm -qf 包名   #查询指定文件为哪个软件所安装

    rpm -qpi 包名  # 查询尚未安装的软件包的说明信息

    rpm -qpl 包名  #查看尚未安装的软件包如果安装后会产生哪些文件

    3.安全验证

    rpm -V   PACKAGES...      #检查软件包从安装到现在,是否有被异动过。

    返回值及含义:

    5      MD5hash值已经改变

    S     文件大小已经改变

    M     文件模板已经改变,包括:权限、类型等

    D  设备文件的主/次设备号改变

    L  链接文件的源已经改变

    U 文件拥有者已改变

    G 文件拥有组已改变

    T 文件最后修改时间已改变

    rpm -V --all 查询所有软件包的状态

    YUM

    yum是改进版的RPM软件管理器,YUM可以很好的解决RPM所面临的软件包依赖关系,在安装、更新或删除软件时,

    YUM会自动帮你解决依赖关系。使用YUM安装软件时至少需要一个YUM源(用于存放RPM软件包的目录),用户可以

    通过HTTP、FTP或本地目录的方式访问YUM源。

    1.创建YUM源

         如果是合法RHEL用户,且已成功在RHN上登陆了你的RHEL系统,则不用建立自己的YUM下载源,因为RHEL会自动为你安装

    一个名为yum-rhn-plugin的软件包,通过这个软件包,yum会自动使用RHN作为默认下载源。

    建立YUM下载源步骤:

      1.将所有RPM文件放入同一目录中;

      2.在此目录建立YUM下载源数据:使用createrepo工具(事先安装此工具包)

        createrepo [option]  DIR

             -u  URL:指定基础URL位置

             -o URL   指定输出的YUM下载源文件的路径名称(默认为当前目录)

             -x PACKAGE:不包含package软件包

        -g GROUPFILE:用来定义软件包群组的xml文件

      3.通过HTTP或FTP方式分析这个目录:目的让其他主机可以访问到(略)

    2.设置YUM

    1.yum工具的配置文件:/etc/yum.conf

    参数 :

    cachedir:YUM缓存的目录

    keepchche:yum成功执行安装动作后,是否要保存旧的软件包头信息与软件包文件,1保存,0不保存(默认为1)

    debuglevel:日志级别,级别越高,产生的日志越高,范围0~10,默认为2

    logfile:指定YUM的日志文件路径名称

    plogins :是否启用所有的插件,默认为0,代表不启用

    proxy:指定读取YUM下载源时使用的代理服务器的URL

    2.yum下载源配置文件:/etc/yum.repos.d目录下,以.repo为后缀的文件,可以指定多个

     作用:指定使用哪个YUM下载源

    文件格式:

    [Repo_ID]      唯一标识符

    NAME=VALUE... 

    NAME是参数名,VALUE是参数值,常见NAME有:

      name :定义YUM下载源的完整名称

      baseurl:指定YUM下载源的URL地址

       baseurl=ftp://路径

       bashurl=http://路径

       baseurl=file://路径

    mirrorlist :定义通过哪一个URL来取得所有影像站点的清单

    enabled:是否启用这个YUM下载源,1启用,0不启用。

    gpgcheck:安装这个YUM下载源的软件前是否要检查RPM软件包的数字签名,0检查,1不检查。

    gpgkey:RPM软件包数字签名的密钥

           gpgkey=file:///pki/rpm-gpg/RPM-GPG-KEY-redhat-releasse

    常见变量:

    $releasever   代表系统发行版本号

    $arch  代表CPU架构

    $basearch  代表系统架构

    $YUM0-9 代表shell对应的0-9个同名变量替换。

    3.YUM命令

    用法:yum [选项] [指令]  [软件包]

    选项: -y  非交互式安装

    指令:

          install  package1 package2 [...]       使用YUM源安装软件包

          update package1 package2 [...]       使用YUM源升级软件包

          check-update          检查YUM源中所有可用的升级

       remove | erase package1 [package2] [...]    卸载软件包

       list [...]                                                          列出系统中已经安装的以及yum源中所有可用的软件包

         info [...]                 查看软件包信息

         clean all                清空所有的缓存信息

         groupinstall group1 [group2] [...]      使用yum源安装组包

         grouplist                列出系统中已经安装的以及yum源中所有可用的组包

         groupremove group1 [group2] [...]      卸载组包

         search string1 [string2] [...]        根据关键字查找软件

         localinstall rpmfile [rpmfile2] [...]      通过本地rpm文件安装软件

         history                 查看历史记录

     实例:

           #yum clean all    清空YUM缓存

      #yum install dialog 

           #yum -y expect  #非交互式安装

           #yum update   #检查所有的软件并更新

      #yum remove dialog   

      #yum list    #已安装的软件显示@

      #yum grouplist    

      #yum groupinstall "Chinese Support"   安装中文组包

      #yum search web  #查看Web相关软件

      #yum history  

    源码编译安装软件

    1.软件源码不能直接在计算机中运行,需要经过编译转换成计算机可识别的机器语言后,才能执行安装。

    使用安装者可根据自己的需要定制自己的软件。

    2.rpm包或其他二进制包是已经编译好的软件包,所以可直接安装

    源码安装软件的具体步骤:

    1)准备开发环境(编译环境)

    RHEL5 :安装“Development Tools" 和 “Development Libraries”

    RHEL6:安装“Development Tools”和“Compatibility Libraries”

    2)编译前设置 ./configure

    作用:1.让用户选定编译设置;2、检查编译环境

    ./configure 

       --help

       --prefix=/path/to/somewhere    #软件安装路径,不指定默认安装在/usr/local

       --sysconfigdir=DIR 指定配置文件存放路径,不指定默认存放在./conf/etc目录

       --datadir=DIR    指定数据目录,用来存放只读的数据文件

       --libdir=DIR   指定链路库目录

       --includedir=DIR  指定提供C/C++语言的引入文件所在目录

     --infodir=DIR  info文件目录

     --mandir=DIR   man文件的目录

        --bindir=DIR  指定执行文件目录

        --sbindir=DIR  指定系统执行文件目录

     --libexecdir=DIR 指定可执行文件的目录

    3)编译:make  将源代码编译成计算机可识别的机器语言

    4)安装 make install

    make命令:

    格式:make [-f MAKEFILE]  [OPTIONS] [TRAGET]

      默认使用当前路径的Makefile文件,也可用手工指定, -f MAKEFILE选项。  

      Mekefile文件:

        作用:定义一个或多个TARGET,每个TARGET定义要执行的工作内容。

        Makefile文件格式:

          TARGET:DEPENENCE_TARGETS...  

          ACTIONS..            #ACTION表示要执行的工作

           若未指定TRAGET,则默认使用MAKEFILE文件的第一个target

      执行configure后,会产生makefile文件,由configure命令产生的makefile会提供以下几个常见Target:

       all:编译所有程序与链接库、产生所有info与man文件

       clean:清除上次编译的记录

       distclean:清除所有,包括Makefile,执行此命令后,必须重新设置编译参数

       install:安装所有程序、链接库、引入文件等

      uninstall:卸载安装所有程序、链接库、引入文件等。

    注意事项:

     1.PATH变量添加软件的执行路径,这样执行程序时,无需要写完整路径名。

    解决方法:/etc/profile.d/目录下新建一个.sh的文件,里面定义export PATH=$PATH:/程序执行路径

    2.安装软件时,自定义安装路径后,软件依赖的库文件会被安装到“指定路径下”的modules/lib目录,这样其他软件无法共享此库文件

    解决方法:在/etc/ld.so.conf.d/中创建扩展名为.conf文件,把库文件路径增加到里面,然后执行ldconfig命令通知系统重新搜索库文件

    3.头文件

    任何一个支持二次开发的源程序,都会向外提供调用库,其包含了头文件。头文件默认存放路径:/usr/include,所需要创建软件的头文件

    链接到/usr/include目录下。

     eg: ls -s /usr/local/tengine/include/  /usr/include/tengine  #把软件tengine头文件目录,链接至/usr/include/的tengine(给目录创建链接)

    4.man文件路径,默认安装在安装目录下的man目录,man不在标准路径下,解决方法:

    方法1:#man -M  程序main目录 COMMAND

    方法2:在/etc/man.config中新增一条man文件的路径。(程序的man文件路径)

    111
  • 相关阅读:
    Web Site 与 Web Application 的区别
    Jquery获取text,areatext,radio,checkbox,select值
    C#怎么样操作world文档中的文字型窗体域?
    DataFormatString 用法
    overload和override的区别
    Apollo安装
    工控机基础
    CAN总线技术基础
    dd命令_Linux dd命令:复制(拷贝)文件,并对原文件进行转换
    Unity2021零基础入门教程
  • 原文地址:https://www.cnblogs.com/zmdsg/p/7197514.html
Copyright © 2020-2023  润新知