Linux软件包安装

Linux系统和Windows系统在软件包安装上区别很大:

    软件运行环境:

        API: Application Programming Interface
    POSIX: Portable OS
    程序源代码 –> 预处理 –> 编译 –> 汇编 –> 链接
    静态编译:
    共享编译: .so
              ABI: Application Binary Interface
        Windows与Linux不兼容
        ELF(Executable and Linkable Format)
        PE( Portable Executable)
    库级别的虚拟化:
        Linux系统下windows环境的虚拟: WINE
        Windows系统的unix环境虚拟: Cygwin

常见的系统应用开发语言

        C C++ java delphi Python go php perl ruby

    软件的安装方式

    windows软件包的后缀一般是.exe .msi等  一般都是直接双击打开按照提示安装,一般都是编译好的软件包

    linux软件包安装方式分为,源代码编译安装,软件包管理器安装,

            linux程序包管理器:

                debian:deb文件, dpkg包管理器

                嵌入式openwrt: .ipk文件    opkg包管理器
                redhat: rpm文件, rpm包管理器
                rpm: Redhat Package Manager
                RPM Package Manager

    软件包来源

        1. 官方网站下载

        2.系统发行商制作

            CentOS镜像:
            https://www.centos.org/download/
            http://mirrors.aliyun.com
            http://mirrors.sohu.com
            http://mirrors.163.com

        3.第三方软件源

            Fedora-EPEL:
                Extra Packages for Enterprise Linux

        4,自己制作

        rpm软件包搜索:常用来解决一些依赖问题

            http://pkgs.org
            http://rpmfind.net
            http://rpm.pbone.net
            https://sourceforge.net/

    软件包安装

            

        在Centos系统上软件包管理器安装为: yum 它安装的包为.rpm后缀的编译过后的包

            单个软件包安装使用rpm命令

        CentOS系统上使用rpm命令管理程序包:
        安装、卸载、升级、查询、校验、数据库维护
        安装:
            rpm {-i|–install} [install-options] PACKAGE_FILE…
                -v: verbose
                -vv:
                -h: 以#显示程序包管理执行进度
                rpm -ivh PACKAGE_FILE …

             [install-options]
                –test: 测试安装,但不真正执行安装; dry run模式
                –nodeps:忽略依赖关系
                –replacepkgs | replacefiles
                –nosignature: 不检查来源合法性
                –nodigest:不检查包完整性
                –noscipts:不执行程序包脚本片断
                %pre: 安装前脚本; –nopre
                %post: 安装后脚本; –nopost
                %preun: 卸载前脚本; –nopreun
                %postun: 卸载后脚本; –nopostun    

        升级:
             rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
             rpm {-F|–freshen} [install-options] PACKAGE_FILE…
                upgrade:安装有旧版程序包,则“升级”
                如果不存在旧版程序包,则“安装”
                freshen:安装有旧版程序包,则“升级”
                如果不存在旧版程序包,则不执行升级操作
                rpm -Uvh PACKAGE_FILE …
                rpm -Fvh PACKAGE_FILE …
                –oldpackage:降级
                –force: 强行升级

        卸载

                rpm -e 

        查询

                rpm {-q|–query} [select-options] [query-options]
                    [select-options]
            -a: 所有包
            -f: 查看指定的文件由哪个程序包安装生成
            -p rpmfile:针对尚未安装的程序包文件做查询操作;
            –whatprovides CAPABILITY:查询指定的CAPABILITY
                由哪个包所提供
            –whatrequires CAPABILITY:查询指定的CAPABILITY被
            哪个包所依赖
            rpm2cpio 包文件|cpio –itv 预览包内文件
             rpm2cpio 包文件|cpio –id “ *.conf” 释放包内文件

    yum包管理器安装

            CentOS: yum, dnf
    YUM: Yellowdog Update Modifier, rpm的前端程序,用来
    解决软件包相关依赖性,可以在多个库之间定位软件包,
    up2date的替代工具
    yum repository: yum repo,存储了众多rpm包,以及
    包的相关的元数据文件(放置于特定目录repodata下)
    文件服务器:
    ftp://
    http://
    file:///

yum客户端配置文件:
    /etc/yum.conf:为所有仓库提供公共配置
    /etc/yum.repos.d/*.repo:为仓库的指向提供配置
    仓库指向的定义:
    [repositoryID]
        name=Some name for this repository
        baseurl=url://path/to/repository/
        enabled={1|0}
        gpgcheck={1|0}
        =URL
        enablegroups={1|0}
        failovermethod={roundrobin|priority}
        默认为: roundrobin,意为随机挑选;
            cost= 默认为1000

    显示仓库列表:

            repolist [all|enabled|disabled]
    显示程序包:
        list
            # yum list [all | glob_exp1] [glob_exp2] […]
            # yum list {available|installed|updates} [glob_exp1]
    […]
    安装程序包:
        install package1 [package2] […]
        reinstall package1 [package2] […] (重新安装)
    升级程序包:
        update [package1] [package2] […]
        downgrade package1 [package2] […] (降级)
    检查可用升级:
        check-update
    卸载程序包:
        remove | erase package1 [package2] […]
   查看程序包information:
        info […]
    查看指定的特性(可以是某文件)是由哪个程序包所提供:
        provides | whatprovides feature1 [feature2] […]
    清理本地缓存:
        clean [ packages | metadata | expire-cache |
        rpmdb | plugins | all ]
    构建缓存:
        makecache
    搜索: search string1 [string2] […]
        以指定的关键字搜索程序包名及summary信息
    查看指定包所依赖的capabilities:
        deplist package1 [package2] […]
    查看yum事务历史:
        history [info|list|packages-list|packages-info|
        summary|addon-info|redo|undo|
        rollback|new|sync|stats]
        yum history
        yum history info 6
        yum history undo 6
     日志 : /var/log/yum.log
        安装及升级本地程序包:
    * localinstall rpmfile1 [rpmfile2] […]
        (用install替代)
    * localupdate rpmfile1 [rpmfile2] […]
        (用update替代)
    包组管理的相关命令:
        groupinstall group1 [group2] […]
        groupupdate group1 [group2] […]
        grouplist [hidden] [groupwildcard] […]
        groupremove group1 [group2] […]
        groupinfo group1 […]
    如何使用光盘当作本地yum仓库:
    (1) 挂载光盘至某目录,例如/media/cdrom
        # mount /dev/cdrom /media/cdrom
    (2) 创建配置文件
        [CentOS7]
            name=
            baseurl=
            gpgcheck=
            enabled=
      yum的命令行选项:
        –nogpgcheck:禁止进行gpg check
        -y: 自动回答为“ yes”
        -q:静默模式
        –disablerepo=repoidglob:临时禁用此处指定的repo

        –enablerepo=repoidglob:临时启用此处指定的repo
        –noplugins:禁用所有插件

    yum的repo配置文件中可用的变量:
        $releasever: 当前OS的发行版的主版本号
        $arch: 平台, i386,i486,i586,x86_64等
        $basearch:基础平台; i386
        $YUM0-$YUM9:自定义变量
    实例:
        http://server/centos/$releasever/$basearch/
        http://server/centos/7/x86_64
        http://server/centos/6/i384
    创建yum仓库:
        createrepo [options] <directory>

                        

        

                

    

原创文章,作者:317376161,如若转载,请注明出处:http://www.178linux.com/38619

(0)
317376161317376161
上一篇 2016-08-21 20:06
下一篇 2016-08-21 20:45

相关推荐

  • 第八周

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;      在线的主机使用绿色显示;      不在线的主使用红色显示; #!/bin/bash # for i in 172.16.250.{…

    Linux干货 2017-05-23
  • 命令,Linux的独特魅力

    转眼又学了一个星期,那就来分享一下这个星期所学的知识吧! 这个星期学的都是各种命令,而这些命令就如同windoes里面画面上的各种选项,没有这些命令,那么你对它将无从下手。那下面就来看看这些命令的强大功能 help   man help(内部命令帮助),等同于man(外部命令帮助)。当你对一个命令不熟悉时,这两个命令将是你的救命符 选定一个命令,先…

    2017-07-22
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]#cp /etc/rc.d/rc.sysinit /tmp/ [root@localhost&nbs…

    Linux干货 2016-07-29
  • 马哥教育网络班22期+第5周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell;     cat /etc/passwd | grep -E '^(root|fedora|user1)\>' | awk -F …

    Linux干货 2016-10-17
  • 博客启动计划&我个人理解的Python优缺点

    很久没有写博客了,因为最近一直在使用Python。Python实在不是一门好的工作用语言(我的观点是所有的动态语言都不是好的工作用语言,不仅是Python),但是自己玩还是可以的。但,生活所迫,还是要继续用的呀(笑)。 所以呢,博客还是要写的,java还是最喜欢的,Python也是要学习的,当然其实更多是总结了。既然博客要启动了,这篇文字就权当测试吧,使用公…

    Linux干货 2015-03-13
  • web服务及常见配置

    一次HTTP请求过程1、建立连接:接收或拒绝连接请求2、接收请求:接收客户端请求报文中对某资源的一次请求的过程Web访问响应模型(Web I/O)单进程I/O模型:启动一个进程处理用户请求,而且一次只处理一个,多个请求被串行响应多进程I/O模型:并行启动多个进程,每个进程响应一个连接请求复用I/O结构:启动一个进程,同时响应N个连接请求实现方法:多线程模型和…

    Linux干货 2017-10-09

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-25 14:07

    内容整体很完整,如果加上实验性验证和历史背景介绍会让文章整体更有说服力,突显用心