zoukankan      html  css  js  c++  java
  • 17_Linux软件管理

    软件包管理
    应用程序:
      程序,Architecture
    C语言:源代码-->(编译)二进制格式
    脚本:解释器(二进制程序)
    源代码-->编译-->链接-->运行
      程序
        库
          静态
          动态

          静态链接
          动态链接
            共享库

    配置文件:
    dir=/PATH/TO/SOMEWHERE

    程序组成部分
      二进制程序
      库
      配置文件
      帮助文件

    -----这些就能启动一个系统----
    /etc,/bin,/sbin,/lib
      系统启动需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上

    /usr/
      bin
      sbin
      lib

      /usr放的是,操作系统核心功能,可以单独分区
    --------------------

    --------第三方-------
    /usr/local
      bin
      sbin
      lib
      etc
      man

    /opt

    /proc

    /sys
      不能单独分区,默认为空

    /dev:设备,不能单独分区
      udev

    /root:不能单独分区

    /var:建议单独分区

    /boot:内核,initrd(initramfs)

    POST-->BIOS(HD)-->(MBR)bootloader(能够识别相应的文件系统结构,ext2,ext3,xfs...)-->内核


    程序:指令+数据
      指令:芯片
        CPU:普通指令,特权指令
        指令集
    C语言
      Powerpc:二进制格式


    x86:汇编
    powerpc:汇编

    软件包管理器的核心功能
    1、制作软件包
    2、安装、卸载、升级、查询、校验

    Redhat,SUSE,Debian

    Redhat,SUSE:rpm
    Debian:dpt

    前端工具:yum,apt-get
    后端工具:rpm,dpt

    yum:Yellowdog Updater  Modified

    rpm命令:
      rpm:
        数据库:/var/lib/rpm
      rpmbuild:

    安装、查询、卸载、升级、校验、数据库的重建等工作

    rpm命名:
    包:组成部分
      主包
        bind-9.7.1-1.i586.e15.rpm
      子包:
        bind-libs-9.7.1-1.i586.e15.rpm
        bind-utils-9.7.1-1.i586.e15.rpm
    包名格式:
      name-version-release.arch
      bind-major.minor.release-release.arch.rpm

    主版本号,重大改变
    次版本号,某个子功能发生重大变化
    发行号:修正了部分bug,调整了一点功能

    rpm包:
      二进制格式(一般都二进制格式)
        rpm包作者下载源程序,编译配置完成后,制作成rpm包
      源码格式

    rpm:
    1、安装:
    rpm -i /PATH/TO/PACKAGE_FILE
      -h:以#号显示安装进度,每个#表示2%
      -v:显示详细过程
      -vv:更详细的过程

    rpm -ivh /PATH/TO/PACKAGE_FILE
      --nodeps:忽略依赖关系
      --replacepkgs:重新安装,替换原有安装
      --force:强行安装,可以实现重装或降级

    2、查询
    rpm -q PACKAGE——NAME:查询指定的包是否已经安装
    rpm -qa :查询已经安装的所有包

    rpm -qi PACKAGE_NAME:查询指定包的说明信息
    rpm -qc PACKAGE_NAME:查询指定包安装的配置文件
    rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表
    rpm -qf /path/to/somefile:查询指定的文件是由哪个rpm包安装生成的

    rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本

    rpm -qf /path/to/somefile:查询指定的文件是由哪个rpm包安装生成的

    如果某rpm包尚未安装,我们需查询其说明信息,安装以后会生成的文件
    rpm -qpi /PATH/TO/PACKAGE_FILE
    rpm -qpi

    3、升级
    rpm -Uvh /PATH/TO/PACKAGE_FILE:如果装有老版本的,则升级,否则,则安装
    rpm -Fvh  /PATH/TO/PACKAGE_FILE:如果装有老版本的,则升级,否则,退出
      --oldpackage:降级

    4、卸载
    rpm -e PACKAGE_NAME
      --nodepe

    5、校验
    rpm -v PACKAGE_NAME

    6、重建数据库
      rpm
        --rebuilddb:重建数据库,一定会重新建立
        --initdb:初始化数据库,没有才建立,有就不用建立

    7、校验来源合法性,及软件包完整性

    # ls /etc/pki/rpm-gpg/
    RPM-GPG-KEY-CentOS-7

    rpm -K /PATH/TO/PACKAGE_FILE
      dsa,gpg:验证来源合法性,也即验证签名,可以使用--nosignature,略过此项
      sha1,md5:验证软件包完整性,可以使用--nodigest,略过此项

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 :导入密钥文件


    =============================
    rpm-->yum
    HTML:HyperText Markup Language
    XML:Extensible Markup Language

    XML,JSON:版结构化数据

    yum仓库中的元数据
    primary.xml.gz
      所有RPM包的列表
      依赖关系
      每个RPM安装生成的文件列表
    filelists.xml.gz
      当前仓库中所有RPM包的所有文件列表
    other.xml.gz
      额外信息,RPM包的修改日志

    repomd.xml
      记录的是上面三个文件的时间戳和校验和

    yum install zsh

    comps*.xml:RPM包分组信息


    如何为yum定义repo文件
    [Repo_ID]
    name=Description
    buseurl=
      ftp://
      http://
      file://
    enabled={1|0}
    gpgcheck={1|0}


    yum [options] [command] [package ...]

    -y:自动回答为yes
    --nogpgcheck

    list:列表
      支持glob
      all
      available:可用的,仓库中有但尚未安装的
      installed:已经安装的
      updates:可用的升级

    clean:清理缓存
      [ packages  |  headers  | metadata  |  dbcache  |  all]

    repolist:显示repo列表及其简要信息
      all
      enabled:默认
      disabled

    install:安装
    yum install PACKAGE_NAME

    update:升级
    update_to:升级为指定版本

    remove|erase:卸载

    info:

    provides|whatprovides:查看指定的文件或特性是由哪个安装包生成的

    groupinfo
    grouplist
    groupinstall
    groupremove
    groupapdate

    /media/cdrom/{ Server,VT,Cluster,ClusterStorage }

    如何创建yum仓库:
    createrepo

    http://172.16.0.1/yum/{ Server,VT }




    RPM安装:
      二进制格式:
        源程序-->编译-->二进制格式
          有些特性是编译选定的,如果编译未选定此设定,将无法使用
          rpm包的版本会落后于源码包,甚至落后很多

    定制:手动编译安装

    编译环境:开发环境
    开发库:开发工具

    Linux:C
    GUN:C

    C,C++:
    gcc:GUN C Complier,C
    g++:

    make:项目管理工具,
      makefile:定义了make(gcc,g++)按何种次序去编译这些源程序文件中的源程序

    automake,-->makefile.in-->makefile
    autoconf,-->configure

    make install


    手动编译安装的三步骤
    前提:准备开发环境(编译环境)
    # ./configure
      --help:获取脚本的使用格式
      --prefix=/path/to/somewhere:指定安装路径
      --sysconfdri=/PATH/TO/CONFFILE_PATH:指定配置文件路径
      功能:1、让用户选择编译特性,2、检查编译环境
    # make
    #make install
    (上面这两条可以写成make &&make install)


    编译软件包如果我们把它安装在非默认路径下。。
    1、要修改PATH环境变量,以能够识别此程序的二进制文件路径
      修改/etc/profile文件
      在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere
    2、默认情况下,系统搜索库文件的路径/bin,/usr/lib;要增添额外搜寻路径
      在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中
      # ldconfig 通知系统重新搜寻库文件
      -v:显示重新搜寻库的过程
    3、头文件:输出给系统
      默认:/usr/include
      增添头文件搜寻路径,使用链接进行
      /usr/local/tengine/include/    /usr/include/
      两种方式:
      ln -s /usr/local/tengine/include/*    /usr/include/    或
      ln -s /usr/local/tengine/include/    /usr/include/tengine
    4、man文件路径:安装在--prefix指定的目录下的man目录:/usr/share/man
      1、man -M /PATH/TO/MAN_DIR COMMAND
      2、在/etc/man.config中添加一条MANPATH


    netstat命令:
      -r:显示路由表
      -n:以数字方式表示
      -t:建立tcp连接
      -u:建立udp
      -l:显示监听状态的连接
      -p:显示监听指定的套接字的进程的进程号及进程名




  • 相关阅读:
    Sample XPS Documents Download
    触发器中的inserted表和deleted表
    Using freewheel.labs.autodesk.com to auto generate preview images of DWF files on your web site
    解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
    读写xps
    XPS文件,在Windows XP下的打开查看阅读和打印方法。
    Learning to Reference Inserted and Deleted Tables
    Get value from updated, inserted and deleted
    Reinstall Microsoft Helper Viewer
    如何查找文件的IFilter
  • 原文地址:https://www.cnblogs.com/xian-luo/p/10899227.html
Copyright © 2011-2022 走看看