首页 > 系统服务 > 详细

linux程序包管理1

时间:2015-09-30 01:03:34      阅读:296      评论:0      收藏:0      [点我收藏+]

                              Linux 程 序 包 管 理

1.API:Application Progarmming Interface

POSIX  :Portable  OS

2.程序源代码--à预处理--à编译----à汇编----à链接

静态编译:

共享编译: .so

3.ABI: Application Binary Interface

     Windows与Linux不兼容

     库级别的虚拟化:

Linux: WINE 

        Windows: Cywin

4.1系统级开发

       C

       C++

4.2应用级开发

   Java

   Python

   php  

   pel

   ruby 

4.3二进制应用程序的组成部分

        二进制文件、库文件、配置文件、帮助文件 

        程序包管理器:

           Debian :dep, dpt

           Redhat: rpm ,rpm(Redhat Package Manager)

                           PRM: RPM is Package Manager

           Archlinux :

           Gentoo: 

5.源代码: name-VERSION.tar.gz

          VERSION: major.minor.release

6.rpm包命名方式:

      1>.name-VERSION-release.arch.rpm

          VERSION:major.Minor.release

          release.arch:

             release:release.OS

          常见的arch:

             X86: i386,i486,i586,i686

             X86_64: x64,x86_64,amd64

             Powerpc:ppc(硬件平台)

             跟平台无关: noarch (例如包含java程序包等)   

 

      2>.testapp: 拆包

          testapp-VERSION-ARCH.rpm:主包

          testapp-devel-VERSION-ARCH.rpm: 支包

          testapp-testing-VERSION-ARCH.rpm

       

3>.包之间:存在依赖关系

     yum:rpm包管理器的前端工具;

     apt-get :dep包管理前端工具;

     zipper : suse 上的rpm前端管理工具;

     dnf :Fedora 22+ rpm包管理器前端管理工具;

7.1查看二进制程序所依赖的库文件:

       ldd  /PATH/TO/BINARY_FILE

7.2管理及查看本机装载的库文件:

       ldconfig 

          /sbin/ldconfig  -p : 显示本机已经缓存的所有可用库文件名及文件路径映射关系

 

       配置文件为: /etc/ld.so.conf,  /etc/ld.so.conf.d/*.conf

       缓存文件: /etc/ld.so.cache

8.程序包管理:

   1>.功能: 将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷的实现程序包的安装、卸载、查询、升级和校验等管理操作

     2>.程序的组成组成清单(每个包独有)

         文件清单

         安装或卸载时运行的脚本

     3>.数据库(公共)

          程序包名称及版本

          依赖关系

          功能说明

          安装生成的个文件的文件路径及校验码信息;

9.1管理程序包的方式:

       使用包管理器: rpm

       使用前端工具: yum, dnf

9.2获取程序包的途径:

       1>.系统发版的光盘或官方的服务器;

           Centos镜像:

              http://mirrors.aliyun.com

              http://mirrors.sohu.com

              http://mirrors.163.com 

               

       2>.项目官方站点;

       3>.第三方组织:

            Fedora-EPEL

            搜索引擎:

              http://pkgs.org

              http://rpmfind.net

              http://rpm.pbone.net

       4>.自己制作

        5>>建议检查其合法性

            来源合法性;

            程序包的完整性;

10.Centos系统上rpm命令管理程序包

       安装、卸载、升级、查询、校验、数据库维护

1>.安装

      rpm    {-i|--install}    [install-options] PACKAGE_FILE ... 

            -v : verbose

            -vv:

            -h: 以#显示程序包管理执行进度,每个#表示2%的进度

          rpm –ivh  PACKAGE_FILE …

             [install-options]

                --test: 测试安装,但不真正执行安装过程;dry run模式;

                --nodeps:忽略依赖关系;

                --replacepkge: 重新安装;

 

                --nosignature: 不检查来源合法性

                --nodigest: 不检查包完整性;

                   

                 --noscripts : 不执行程序包脚本片断:

                     %pre :安装前脚本:   --nopre

                     %post: 安装后脚本: --nopost

                     %preun: 卸载后脚本: --nopreun

                     %postun: 卸载后脚本:  --nopostun

   2>.升级:

           rpm    {-U|--upgrade}    [install-options] PACKAGE_FILE ...

 

           rpm    {-F|--freshen}    [install-options] PACKAGE_FILE ...

              

               upgrage: 安装有旧版本程序包,则“升级”;如果不存在旧版本程序包,则安装;

                freshen:安装有旧版本程序包,则“升级”;如果不存在就版本程序包,则不执行升级操作;

            

            rpm –Uvh PACKAGE_FILE …

            rpm –Fvh PACKAGE_FILE …

 

            --oldpackage :降级;

            --force: 强行升级;

**.(1) 不要对内核做升级操作; linux支持多内核版本并存,因此,可直接安装新版本内核

 (2)如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.pmnew)后保留;

   3>.查询

rpm  {-q|--query} [select-options] [query-options]

 

[select-options]

-a:所有包

-f查看指定的文件由哪个程序包安装生成;

 

-p /PATHTO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;

 

--whatprovides CAPABILITY :查询指定的APABILITY由哪个包所提供;

--whereprovides CPABILITY:查询指定的APABILITY被哪个包所依赖;

 

[query-options]

--changelog :查询rpm包的配置文件;

-c: 查询程序的配置文件;

-d: 查询程序的文档;

-i: information

          -l:  查看指定的程序包安装后生成的所有文件;

          --script: 程序包自导的脚本片断;

          -R: 查询指定的程序包所依赖的CPABILITY

          --provides: 列出指定程序包所提供的CPABILITY;

 

          用法:

           -qi PACKAGE, -qf FILE , -qc PACKAGE, -ql  PACKAGE , -qd PACKAGE

           -qpi PACKAGE_FILE ,-qpl PACKAGE_FILE

           -qa

  4>.卸载:

        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

           [--notriggers] [--test] PACKAGE_NAME ...

  5>.校验:

        rpm {-V|--verify} [select-options] [verify-options]

 

          S fiel Size differs

          M Mode differs (inculdes permissions and file type )

          5 diget (formerly MD5 sum) differs

          D Device major/minor number mismatch

          L readLink(2) path mismatch

          U User ownership differs

          G Group ownership differs

          T mTime differs

          P caPabilities differs

11.包来源合法性验证及完整性验证;

       1>.完整性校验

         公钥加密:

              对称加密: 加密、解密使用同一密钥

              非对称加密:密钥是成对儿的;

                 Public key: 公钥,公开

               Secret key: 私钥,不公开

2>.导入所需公钥:

         rpm --import  /PATH/FRO/GPG-PUBKEY-FILE

     

3>.数据库重建:

          rpm {--initdb|--rebuilddb}

            initdb:初始化

              如果事先不存在数据库,则新建,否则不执行任何操作

            rebuilddb :重建

              无论当前存在与否,直接重新创建数据库

 

 



本文出自 “9470860” 博客,请务必保留此出处http://9480860.blog.51cto.com/9470860/1699351

linux程序包管理1

原文:http://9480860.blog.51cto.com/9470860/1699351

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!