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
下一篇 2016-08-21

相关推荐

  • 编译安装httpd-2.2.27.tat.gz及配置常见参数

    一、编译安装的整体步骤  1、在官网下载源码,并解压 2、切换到其目录中  3、执行./configure 4、编译   二、编译中及安装后配置常见的参数及其说明 编译中配置 1)指定安装路径 –prefix=/usr/local/Pacakage_name  指定安装路径 –sysc…

    Linux干货 2016-08-24
  • 马哥教育网络班22期+第三周(8.22-8.28)博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   # who|awk '{print $1}'|sort| uniq 2、取出最后登录到当前系统的用户的相关信息。   # last   # last|gr…

    Linux干货 2016-08-29
  • 第4周作业

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

    Linux干货 2016-12-25
  • 懒人本地YUM源设置

    一、挂载本地光盘到根目录下/media。 [root@wing-PC ~]# mount -v /dev/sr0 /media/ 二、用mv 修改/etc/yum.repos.d下面的文件。 [root@wing-PC ~]# mv -v /etc/yum.repos.d/CentOS-Base.repo / CentOS-Base.repo.bak [ro…

    系统运维 2017-08-05
  • linux软件包管理

    linux软件包管理 简介     在Linux系统中,软件包的安装和管理是很重要的知识,而linux/unix一个麻烦的地方就是软件安装程序比较麻烦和复杂,尤其是当所安装的软件包要处理较多的包依赖关系,这就更让人头疼了,最常见linux软件安装方式有三种:     本文主要介绍Linux中RedHat或CentOS发…

    系统运维 2016-05-05
  • 使用cp命令定时复制数据

    cp命令 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或者目录。 cp [选项] [参数] 常用选项: -r -R 递归拷贝目录及目录里所有的内容 -i 交互式,默认支持 -d 复制的时候,如果目录有链接文件,则只复制链接文件 -p –preserv,复制的时候将文件的属性一起复制 -a = -dpR -v 复制的时候显示详细过程 如何定期执…

    Linux干货 2017-04-03

评论列表(1条)

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

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