zoukankan      html  css  js  c++  java
  • 【linux之软件安装,rpm,yum】

    一、软件管理

    静态库 动态库
    静态库:在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库
    动态库:在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入。

    链接是程序调用库的过程。

    静态链接库 动态链接库
    静态链接库:把库文件中用到的函数代码直接链接到目标程序,程序运行的时候不再需要它的库文件。
    动态链接库:把调用的函数所在的文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行时再从DLL中寻找相应的函数代码, 此需要DLL文件的支持。

    编程-->编译-->运行-->链接库

    一般编译好的程序有哪些组成部分?

    1.可执行文件(二进制文件)

    存放地点:/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin

    find / -name *bin -type d
    /usr/share/locale/bin
    /usr/local/bin
    /usr/local/sbin
    /usr/lib/pm-utils/bin
    /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin
    /usr/bin
    /usr/sbin
    /bin
    /sbin

    通过编译源代码安装的软件,通常都放入/usr/local/SOFTWORE_NAME/
    /usr/local/SOFTWORE_NAME/
    bin,sbin,lib,man,etc

    完成以下任意操作,直接当命令执行
    ln -s /usr/local/SOFTWORE_NAME/mysoft /bin/mysoft
    PATH=$PATH:/usr/local/SOFTWORE_NAME/bin

     

    2、头文件和库文件

    头文件存放在 /usr/include
    库文件 /lib /usr/lib /usr/local/lib /lib64
    ldconfig -v 查询当前系统中已经加载的库

    在 /etc/ld.so.conf.d/下创建一个以.conf为后缀的文件,然后在文件里添加路径
    或者 做软链接到/lib

    头文件链接到/usr/include

    3.配置文件(提供变量)

    /etc /usr/etc /usr/local/etc

    4.帮助文件

    /ussr/share/man
    man的配置文件:/etc/man.config

    二、rpm及yum

    rpm实现的功能:
    1.安装软件、查询、升级、校验、卸载
    2.创建、维护、清除数据库及其中的记录
    3.重建数据库
    4.软件直接依赖关系的提示(依赖地狱)

    yum:yellowdog update modifier 前台管理工具
    帮助rpm解决依赖地狱

    rpmfind.net 查找下载rpm安装包

    tree -1.5.3-3.el6.i686.rpm
     tree:软件名称
     1.5.3-3:
      1:主版本号
      5:次版本号
      3:修订版本号
      -3:修订次数
     el6:依赖的操作系统的发行版本(RHEL6)
     i686:硬件平台
      x86_64
      sparc
      ppc:apple
      noarch:不区分平台,任何平台都可以用

    rpm

    • 1.安装模式

    -i:启用安装模式
    -v:显示安装的软件名
    -h:显示安装进度
    --replacpkgs:安装软件之前不再检查是否已安装
    --nodeps:安装软件前不再检查依赖关系
    --force:强制安装

    ①先查看软件包的头部信息,以确认签名是否有效
    ②准备阶段

    1.检查软件包是否已经安装
    2.检查软件包是否存在依赖关系
    3.备份之前安装过的软件所包含的文件,*.rpmsave
    4.如果有,则运行相应的安装脚本

    ③安装
    ④清理安装过程中产生的临时文件
    ⑤更新数据库

    mkdir /mnt/cdrom
    mount -r /dev/cdrom /mnt/cdrom
    rpm -ivh /mnt/cdrom/Packages/tree-1.5.3-2.el6.i686.rpm

    • 2.查询模式

    -q:开启查询模式的开关
    -a:查询所有安装过的软件包
    -f:查看文件是哪个软件包安装的
    -p:指定软件包
    -l:列举包中的文件
    -i|--info 软件名:查看软件信息

    rpm -qi dhcp

    • 3.升级模式

    -U:升级软件之前,如果已安装则升级,否则全新安装
    -F:只能完成升级安装
    --oldpackage:降级

    • 4.校验模式

    -V:校验,检查软件包和已安装文件的状态是否有变化
    rpm -V
    -K 软件包:检查,来源是否可靠,签名是否可以认证
    --import:导入官方的公钥文件
    /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    • 5.卸载模式

    -e 软件名:卸载模式的开关
    --nodeps:卸载前不考虑依赖关系

    • 6.重新构建数据库

    --rebuilddb:重新构建
    --initdb:初始化创建数据库

    单向加密:用特定的方法对某个数据进行特征值(电子指纹)计算
    先用单向加密对软件包抽象特征值,每个软件包都有唯一的特征值,再用私钥加密特征值,客户端用获得的公钥解密特征值,再用同样的
    单向加密算法,重新计算软件的特征值
    单向加密确定完整性
    校验机制确定私密性

    readlink 获取链接文件的路径.

    yum

    语法格式:

    yum [options] [command] [package..]
    
    options:普通选项
    -y:所有的yum问题都以“yes”作为回答的内容
    --nogpgcheck:不检查数据签名
    command:
    install
    update
    remove|erase
    list
    groupinstall

    yum有元数据数据库 metadata--*.xml
    软件仓库:repository
    ls /mnt/cdrom/Server/repodata

    createrepo:创建软件元数据库

    配置yum源的软件仓库:/etc/yum.repos.d/*.repo

    vim /etc/yum.repos.d/local.repo  (同一个yum源可以写很多个仓库)
    [localrepo] #仓库名
    name=local cdrom repo
    baseurl=file:///mnt/cdrom  #file协议是本地文件查找协议
    enabled=1   #开启软件仓库
    gpgcheck=0  #是否检查数字签名
    
    [ftp]
    name=ftp repository
    baseurl=ftp://172.16.0.1/Server  #必须有repodate文件
    enabled=1 
    gpgcheck=0

    全局配置文件:/etc/yum.conf

    ls /var/cache/yum/i386/6Server/localrepo/ 缓存目录


    yum -y install createrepo

  • 相关阅读:
    6 开发工具IDE-pycharm
    5 循环控制
    react native 遇到的坑
    代码缩略图插件
    JEECMS-自定义标签[list]
    Jeecms自定义标签用法[单个内容]
    ReactNative环境搭建
    修改浏览器accept使支持@ResponseBody
    [转]MyEclipse for Spring2014破解
    js正则验证手机号
  • 原文地址:https://www.cnblogs.com/smallmars/p/8550871.html
Copyright © 2011-2022 走看看