linux 笔记--软件管理

 C语言:源代码--编译(二进制格式)

 脚本:解释器(二进制程序)

 程序=指令+数据

程序的组成部分:
    二进制程序(/bin /sbin)、库(共享库和自身的库/lib)、配置文件(/etc)、帮助文件(/usr/share/man)

软件包管理:
    把二进制程序,库文件,配置文件,帮助文件,打包成一个文件并生成数据库,追踪所安装的每一个文件
    软件包管理器的核心功能:1.制作软件包 2.安装、卸载、升级、查询、校验

RedHat、SUSE:rpm
Debian:dpt

依赖关系
      前端工具:yum 和 apt-get:自动解决软件的依赖关系
    后端工具:rpm 和 dpt

rpm包命名:例:zlib-1.2.3-29.el6.x86_64.rpm 和 zlib-devel-1.2.3-29.el6.x86_64.rpm
    主包:zlib-1.2.3-29.el6.x86_64.rpm
    子包:zlib-devel-1.2.3-29.el6.x86_64.rpm
    命名格式:
    包名(zlib或zlib-devel)-版本号(1.2.3)-发行号(29).平台架构(el6.x86_64)若平台架构为noarch就表示该软件无论用在哪个平台都可以
    版本号(1.2.3):主版本号.次版本号.发行号
        主版本号:有什么重要的改进
        次版本号:某个子功能有改进
        发行号:修正部分bug,调整了一下功能
    注:在安装软时一定要注意平台架构的匹配 ,uname -a或-r 查看硬件架构

rpm命令:安装、查询、卸载、升级、校验、数据库的重建、验证数据包
    1.安装:
    -i 指定文件路径
    -h 以#显示进度,每一个#代表2%
    -v 显示详细过程
    -vv 显示更详细的过程
    一般都一起使用 :rpm -ivh /patn/
     --nodeps 忽略依赖关系,但可能会导致软件无法运行
    --force 强行安装可以实现重装或降级
    2.查询:
    -q 查询指定的软件是否已经安装(-q 后面跟软件名,不用加版本号及后面的)
    -qa 查询已经安装的所有软件包
    -qi 查询指定软件包的详细信息
    -ql 查询指定软件包安装生成的文件列表
    -qf 查询指定的文件是由那个rpm包生成的
    3.升级:
    -Uvh 升级指定的软件(有新版本就升级安装,没有就安装指定的软件)
    -Fvh 升级指定软件(有新版本就升级安装,没有就不安装指定的软件)
    -Uvh --oldpackage 降级安装
    4.卸载:
    -e 卸载指定软件名(但该软件不能被依赖)
    --nodeps 忽略依赖关系强制卸载
    5.校验:
    -V 校验指定的软件名
    6.重建数据库:
    --rebuilddb 无论有没有数据库都重建
    --initdb 初始化数据库(有就不重建,没有才建立)
    7.检验来源合法性及软件完整性:
    -K 软件包 (dsa、gpg:验证来源名的合法性及签名、--nosignature:略过此项  sha1、md5:验证软件包完整性 --nodigest:略过此项)
    --import /etc/pki/rpm-gpg/RPM-GPG-KEY-readhat-release :导入密匙文件 (RH5)

yum 仓库中的元数据文件:
    安装镜像文件中:
        centos6:repodata文件里面
        RedHat5:/server/repodata文件里面
    ***.primary.xml.gz 中记录了那些信息:
        1.所有rpm包的列表
        2.所有软件的依赖关系
        3.每个rpm包安装生成的文件列表
    ***.filelists.xml.gz
        1.当前仓库中的所有rpm包的所有文件列表
    ***.other.xml.gz
        1.额外信息,rpm包的修改日志
    ***.repomod.xml
        1.记录上面三个文件的时间戳和校验和
    ***.comps.xml
        1.rpm包的分组信息

yum 命令:
    list:yum仓库中rpm列表 还可以接相应参数 all全部 avai可用的 able没有安装的 installed已经安装的 updates可用升级的
    clean:清理缓存
    repolist:显示repo列表及简要信息 也可以跟相应的参数 all全部 enabled默认的 disabled禁用的
    install:安装 后面直接跟软件名
    updata:升级
    updata to:修改为指定版本(可用于降级)
    remove :卸载且将依赖的软件一起卸
    info:软件包信息
    provides:查看指定的文件是由哪个包安装生成的
    还有一些yum组的命令:groupinfo  grouplist  groupinstall  groupremove  groupupdata

如何自定义一个yum创库:
    配置文件夹:/etc/yum.repos.d/
    1.首先在配置文件夹中创建一个*.repo结尾的文件
    2. 在文件中编辑:  [库名]
               name=全名
               baseusr=yum库的准确位置 一般有三种:ftp://  http://  file:///
               enabled=1或0 一般为1
               gpgcheck=1或0 一般为0
                (这个选项可以不写)gpgkey= file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    3.yum makecache 刷新repos

你可能感兴趣的:(linux)