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

相关推荐

  • Dell R720 安装debian系统编译网卡驱动

    最近比较忙,视频也没怎么看,下面是之前工作中遇到的问题,事后做的记录,中间解决过程参考了网上的相关资料,现在一并贴出来。 需求:Dell R720 安装debian系统 环境 硬件:Dell R720  软件:系统有debian 7.0.0和debian 6.0.10 1. debian 7.0.0 : 集成了DELL PCRE H710 Mini…

    Linux干货 2015-08-04
  • N26-第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     ~]#cp -r /etc/skel /home/tuser1     ~]#chmod -R go=-rwx /home/tuser1…

    Linux干货 2017-01-05
  • 第七周

    创建一个10G分区,并格式化为ext4的文件系统 划分分区 partxprobe:重读分区表   建立文件系统,acl机制          挂载文件系统          写文件 &nbs…

    Linux干货 2016-12-11
  • grep和正则表达式

    grep       作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文件逐行进行匹配检查;打印匹配到的行;       模式:由正则表达式的元字符及文本所编写出的过滤条件    语法:【选项】【文件】  &…

    2017-08-04
  • Python

    Python中os和shutil模块
    csv文件和ini文件简介

    Linux干货 2017-10-30
  • 文件查找

        Linux上的所有资源都以文件的形式存在,如果是手工查找的话,势必会浪费太多的时间,这里推荐俩款大家用于查找的工具。 文件查找    文件查找经常用到的俩款软件,locate和find    二者区别 locate:1) 非实时查找;    &nbsp…

    Linux干货 2016-08-18

评论列表(1条)

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

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