• Linux入门进阶第二天——软件安装管理(上)


    一、大纲介绍

      

      这里介绍的仅仅是两大家族之一的RPM,关于Debian家族的DPKG,请参考http://justcoding.iteye.com/blog/1937171

    二、简介

      软件包分类:

      源码包:

     

      

       脚本安装包:(简化源码包的安装)

       二进制包:(源码包编译后的包,将不能再看到源代码)

      二进制文件类型可以通过file命令来查看,linux查看文件类型可以用file命令,用法是:file 文件名,文件名带路径。

      如果文件是纯文本文件,结果中会显示ASCII text的字样;

      如果文件是执行文件,结果中会包含执行文件的信息,比如是32位还是64位、兼容的硬件平台、使用的Linux核心、是否是函数库等等信息;

      如果文件是数据文件(比如数据库),结果中会显示data来表示是数据文件。

      当然,二进制文件是通过文本文件进行 编译 之后得来的!常见的编译器有gcc等

    # 先以系统的文件测试看看:
    [root@study ~]# file /bin/bash
    /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked
    (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x7e60e35005254...stripped
    #为binnary可执行文件
    # 如果是系统提供的 /etc/init.d/network 呢?
    [root@study ~]# file /etc/init.d/network
    /etc/init.d/network: Bourne-Again shell script, ASCII text executable
    #为scripts脚本文件

      MySQL PhP等开发环境的搭建比较麻烦

       更详细的封装类型介绍:

    软件包的封装类型
    1.RPM软件包:这种软件包文件的扩展名为".rpm",只能在使用RPM机制的Linux操作系统中安装。RPM软件包一般针对特定版本的系统定制,因此依赖性较强。安装RPM包需要使用rpm命令。
    
    2.DEB软件包:这种软件包文件的扩展名为".deb",只能在使用DPKG机制的Linux操作系统中安装。安装DEB软件包需要使用Linux系统中的dkpg命令。
    
    3.源代码包:这种软件包是程序员开发完成的原始代码,一般被制作成".tar.gz"".tar.bz2"等格式的压缩包文件,因多数使用tar命令打包而成,所以经常被称为"TarBall"。安装源代码软件包需要使用相应的编译工具,由于大部分Linux系统中都安装有基本的编译环境,因此使用源码软件包要更加灵活。
    
    4.提供安装程序的软件包:这种软件包的扩展名不一,但仍以TarBall格式的居多。软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup等,只需运行安装文件就可以根据向导完成安装。
    
    5.绿色免安装的软件包:这种软件包直接包含有编译好的执行程序文件,因此不需要特别安装。

      //反编译基本是不可能,也就是编译是一般认为的不可逆的

    三、RPM命令管理

      1.RPM包命名规则

       RPM包在哪?在系统光盘(ISO)中

      打开光驱选择的界面,点击浏览选择光盘镜像

      //已连接相当于给电,一定要勾上!

      选上我们下载的系统的镜像(相当于挂载上光盘)

      光盘挂载请参见之前随笔http://www.cnblogs.com/jiangbei/p/7281744.html

      建立挂载点:

      挂载光盘:

      //看见箭头处视为挂载成功(光盘当然已经写死,无法写入,只能读取)

      进入指定目录查看资源包:(Packages

      看右边进度条,包是非常多的:

      命名规则:

      //可在上文任意找一个验证,都是此规范:软件包名+版本+发布次数+适合平台+硬件平台+拓展名

      若有64代表只适合64位系统

      RPM依赖:

      //例如树形依赖,需要从最后一个开始装,环形依赖放在一起装即可,模块依赖可以有 yum 依赖等解决

      2.安装命令

      包名与包全名

      安装命令

      实例:

      //可以明显的看到我们上面说的,依赖检测失败,需要先查找安装对应的依赖

      借视频中的图演示一下:

      必须两个 100% 才算成功!第一个只是准备成功

      这里的依赖性是比较复杂的!相比后面的 yum (呀母在线安装)安装,(yum也是装的RPM包,是RPM的在线版)

      3.升级和卸载

      升级

      //请使用包全名

      若原版本不存在,则相当于安装命令

      卸载

      //这里可以不用全名了(卸载是去数据库里找),可以在任意位置进行(是去数据库查找)

      当然,若存在依赖关系,则应该按照安装的逆序卸载

      这里我们安装的时候使用的是默认位置,所以RPM需要卸载,而后面的源码安装需要指定安装目录,所以删除(rm)所在目录位置即可完成卸载

      4.RPM包查询

      查询是否安装

        一般来说,RPM的重要功能就是查询与校验,至于安装,就交给下章的yum安装了!

      //操作已经安装的,只需包名,无需全名(可以与管道符 | 结合,使用 rpm -qa | grep httpd等组合查询指定的相关包)

      查询详细信息

      实例:

      //未安装之前已经产生

      查询安装位置

      

      一些默认的安装位置:

      也可以通过文件反向追查出安装包

      查询依赖信息

      5.RPM包的校验

      

      //没有提示则表明未作任何修改

      

      文件提取

       关于SRPM(包含源码src的RPM)的介绍这里暂不展开,可以参考鸟哥私房菜的介绍!

  • 相关阅读:
    android 底部菜单栏实现(转)
    android 用webView作为编辑器 各种问题
    android 自定图库(转)
    js document.queryCommandState() 各个参数
    自定义简单的按钮点击动画效果
    android 类似QQ底部输入框弹出键盘和面板冲突 布局闪动处理方案(转)
    android 自定义控件View在Activity中使用findByViewId得到结果为null
    Tinker 热修复框架 简单上手教程
    网页天气模块,包括当天天气和未来四天预报
    关于闭包(closure)的一些概念
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7301060.html
Copyright © 2020-2023  润新知