软件安装与维护【Linux-shell】

软件安装与维护:



    常用Linux软件安装方式:
    1.以源代码方式安装
    2.以软件包方式安装:【软件包分2种】
        1.rpm软件包。-->在RedHat红帽企业的RedHat,Fedora,CentOS等发行版Linux上,软件包的管理工具:rpm包管理器
        2.deb软件包。-->在Debian的Debian,Ubuntu等Linux发行版上,软件包的管理工具:dpkg
    3.以在线方式安装:【在线软件安装和更新-方式分2种】
        1)yum   #---->对应.rpm软件包
        2)apt   #---->对应.deb软件包
    -------------------------------------------------------------------------------------------
    rpm管理器:

    软件包文件名基本格式:【软件名称-版本号-发布版本次数.硬件架构.rpm# i686->Intel 686,i386,x86-->32位,x86_64-->64位
    rpm [选项】 【rpm软件包文件位置/软件名称】:安装、维护软件包
        -i:安装指定软件包文件,加软件包文件路径参数
        -v:显示详细过程信息
        -h:显示进度,结合-v
        -q:查询指定软件,给出软件名称参数。
        -U:升级软件包,加软件包路径参数
        -V:加软件名称,验证指定软件
        -e:给出软件名称参数,删除指定软件
        -K:给出软件包文件路径参数,检查签名
    rpm -V apache2
    #标志信息,标志:S文件大小发生改变,M文件访问权限或类型发生改变,5文件内容发生变化而使MD5发生变化,L符号链接发生变化,D设备主次编号改变,U软件用户归属关系改变,G软件组群归属关系改变,T文件修改时间改变,P软件执行权限改变。

    rpm -Vf   /etc/crontab
    #标志信息与文件名之间的文件类型标志:
    #c配置文件,d文档,g不被软件包含的文件,l授权文件,r自述文件


    ls -l /etc/pki
    #查看rpm数字签名认证的Linux发行版公钥文件目录
    ----------------------------------------------------------------------------------
    使用yum服务:

    yum客户端使用yum服务的全局配置文件:cat /etc/yum/yum.conf

    配置客户端连接yum容器:
    #网易的CentOS源
    1.先将/etc/yum/repos.d/下的文件备份,然后从http://mirrors.163.com/.help/centos.html下载yum容器的.repo文件(CentOS6)----CentOS6-Base-163.repo保存在/etc/yum/repos.d/目录下。
    2.编辑上述的.repo文件,将所有的$releasever替换为63.cd /etc/yum/repos.d
    ls
    yum clean all
    yum makecache
    ||
    ||
    ||
    #再配置本地yum源:
    1.挂载光盘在/mnt/cdrom。
    2.在/etc/yum/repos.d目录下创建local.repo文件。编辑local.repo文件:
    [local]
    name=local
    baseurl=file:///mnt/cdrom/Server
    gpgcheck=1
    gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
    enabled=1
    ||
    ||
    ||
    yum clean all
    yum makecache
    --------------------------------------------------------------------
    local.repo的配置信息:
    [local]:标记了关于local这个yum容器的配置信息起始位置。
    name=local:yum容器的全名
    baseurl=记录了yum容器的所在位置。
    gpgcheck=1是否检查rpm软件包的签名。
    gpgkey=用于验证rpm软件包数字签名的公钥文件存放位置。
    enabled=1该容器是否启用。
    -------------------------------------------------------------------
    在线软件安装和更新:
    yum install [软件名列表】:安装列表中的软件包
    yum update [软件名列表】:更新列表中的软件包
    yum remove [软件名列表】:移除列表中的软件包
    yum list 【软件名列表】:列出可用软件包的各种信息
    yum info [软件名列表】:显示可用软件包的描述和总体信息
    yum provides [特征】:找出所有符合特征信息的软件包
    yum clean:清除缓存
    yum makecache:重新生成缓存。
    yum repolist:列出当前所有的容器。
    -----------------------------------------------------------------
    编译源代码与软件安装:
    gcc [选项】 【输入文件】:编译源代码
        -o:后加输出文件路径参数-->生成可执行二进制文件。
        -c:只对源代码进行预处理、编译和汇编,不进行连接,即:只生成目标文件.o
        -I:后加目录参数,编译器从目录中查找是否有所需的头文件.h
    -----------------------------------------------------------------------
    make和makefile:
    cd ~/makehello

    #include "world1.h"
    #include "world2.h"
    int main()
    {
        hello1();
        hello2();
        return 0;
    }
    #保存为main.c

    void hello1();
    #保存为world1.h

    void hello2();
    #保存为world2.h

    #include "world1.h"
    #include 
    void hello1()
    {
        printf("hello world\n");
    }
    #保存为hello1.c

    #include "world2.h"
    #include 
    void hello2()
    {
        printf("hello world2\n");
    }
    #保存为world2.h

    首先:
    gcc -c main.c
    gcc -c hello1.c
    gcc -c hello2.c
    gcc -o makehello main.o hello1.o hello2.o
    ./makehello

    然后:
    vim  ./makefile---->:
    makehello:main.o  hello1.o  hello2.o
        gcc -o makehello main.o hello1.o hello2.o
    hello1.o:hello1.c world1.h
        gcc -c hello1.c
    hello2.o:hello2.c world2.h
        gcc -c hello2.c
    main.o:main.c world1.h world2.h
        gcc -c main.c
    #:wq保存退出---->
    rm -f main.o hello1.o hello2.o
    make
    ./makehello
    ----------------------------------------------------------------------
    make [选项】 【目标】:自动确定源代码的编译部分并执行对应的编译命令。
        -f:后加文件路径参数用于指定一个文件作为makefile
        -I:后加目录路径参数,用于指定一个包含了makefile文件的目录。

    makefile文件每条规则的定义格式:
    目标:相关文件列表
    制表符(Tab键) 执行命令
    #清理目标文件clean:
        rm -f main.o hello1.o hello2.o
    ---->命令行:
    make clean 
    make main.o
    make
    ./makehello

    make命令安装软件:
    install:
        @cp makehello /usr/local/bin
        @echo "install finish."   # @:make执行命令后不输出内容

    ---->命令行:
    make clean
    make
    make install
    which makehello
    -----------------------------------------------------------------------
    vim makefile--->:
    all:makehello install clean
    hello1.o:hello1.c world1.h
        gcc -c hello1.c
    hello2.o:hello2.c world2.h
        gcc -c hello2.c
    main.o:main.c world1.h world2.h
        gcc -c main.c
    makehello:main.o hello1.o hello2.o
        gcc -o makehello main.o hello1.o hello2.o
    install:
        @cp makehello /usr/local/bin
        @echo "安装完成"
    clean:
        @rm -f main.o hello1.o hello2.o
        @echo "清除临时文件"
    ----->
    make 

    makefile文件中宏定义的使用:
    INSTALLDIR=/usr/local/bin
    #install:
    #   @cp makehello $(INSTALLDIR)
    #   @echo "安装完成"
    ----------------------------------------------------------------------------
    制定软件验证的周期性作业:
    rpm -Va

    #!/bin/bash
    rpm -Va > /tmp/rpmVResult
    cat /tmp/rpmVResult | while read line
    do
        i=`expr index "$line" 5`
        if [ $i -eq 3 ]
        then
            echo $line>>/tmp/rpmVResult_md5
        fi
    done
    if [ -e /tmp/rpmVResult_md5 ]
    then
        mail root< /tmp/rpmVResult_md5
        rm -f /tmp/rpmVResult_md5
    fi
    #保存为rpmVerify.sh

    设定脚本的执行周期:
    0 0 * * 1 root  /root/cron/rpmVerify.sh

    date
    tail /var/log/cron
    mail
    ---------------------------------------------------------------------------
    tarball软件的编译及安装:
    1.从https://nmap.org/download.html下载nmap网络安全扫描软件的tarball文件,保存在/root/nmap下
    2.解压:tar -zxvf nmap-6.49BETA5.tgz
    ls
    cd nmap-6.49BETA5
    ls
    3.执行configure脚本:
    ./configure
    make #编译
    make install #安装软件
    nmap -V #检查nmap软件的安装版本

补充:

其他资料:【Linux 下软件安装】

你可能感兴趣的:(Linux)