YUM:yellow dog,Yellowdog Update Modifier

yum repository:yum repo

  存储了众多rpm包,以及包的相关的无数据文件(放置于特定目录下:repodata);

  文件服务:

    ftp://

    http://

    nfs://

    file://

yum客户端:

   配置文件:

    /etc/yum.conf  为所有仓库提供公共配置

    /etc/yum.conf.d/*.repo  为仓库的指向提供配置

  仓库指向的定义:

  [repositoryID]

  name=Some name for this repository

  baseurl=rul://path/to/repository

  enabled={1|0}

  gpgcheck={1|0}

  gpgkey=URL

  enablegroups={1|0}

  failovermethod={roundrobin|priority}

    默认为:roundrobin,意为随机挑选 ;

  cost=

    默认为1000

yum命令的用法:

  yum [options] [command] [package ...]

  command is one of:
  * install package1 [package2] [...]
  * update [package1] [package2] [...]
  * update-to [package1] [package2] [...]
  * check-update
  * upgrade [package1] [package2] [...]
  * upgrade-to [package1] [package2] [...]
  * distribution-synchronization [package1] [package2] [...]
  * remove | erase package1 [package2] [...]
  * list [...]
  * info [...]
  * provides | whatprovides feature1 [feature2] [...]
  * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
  * makecache
  * groupinstall group1 [group2] [...]
  * groupupdate group1 [group2] [...]
  * grouplist [hidden] [groupwildcard] [...]
  * groupremove group1 [group2] [...]
  * groupinfo group1 [...]
  * search string1 [string2] [...]
  * shell [filename]
  * resolvedep dep1 [dep2] [...]
  * localinstall rpmfile1 [rpmfile2] [...]
    (maintained for legacy reasons only - use install)
  * localupdate rpmfile1 [rpmfile2] [...]
    (maintained for legacy reasons only - use update)
  * reinstall package1 [package2] [...]
  * downgrade package1 [package2] [...]
  * deplist package1 [package2] [...]
  * repolist [all|enabled|disabled]
  * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
  * history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
  * load-transaction [txfile]
  * check
  * help [command]

显示仓库列表:

  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] [...]  (降级)

  upgrade [package1] [package2] [...]  # 作用和update一样,已经废弃。

检查可用升级:

  check-update

卸载程序包:

  remove | erase package1 [package2] [...]

查看程序包information:

  info [...]

查看指定的特性(可以是某文件)是由哪个程序包所提供:

   provides | whatprovides feature1 [feature2] [...]

  注:rpm只能查询已安装程序包的信息,而yum可以查询某个功能由哪个程序包所提供。

清理本地缓存:

  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]

安装及升级本地程序包:

  localinstall rpmfile1 [rpmfile2] [...]
    (maintained for legacy reasons only - use install)

  localupdate rpmfile1 [rpmfile2] [...]
    (maintained for legacy reasons only - use update)

包组管理的相关命令:

   groupinstall group1 [group2] [...]
   groupupdate group1 [group2] [...]
   grouplist [hidden] [groupwildcard] [...]
   groupremove group1 [group2] [...]
   groupinfo group1 [...]

如何使用光盘当作本地yum仓库:

  (1)挂载光盘至某目录,例如/media/cdrom

    # mount -r -t iso9660 /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:平台;

  $basearch:基础平台;

  $YUM0-$YUM9

  http://mirrors.magedu.com/centos/$releasever/$basearch/os

创建yum仓库:

  createrepo [options] <directory>

程序包编译安装:

  testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作二进制格式 的rpm包,而后再安装;

  源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行

  源代码组织格式:

    多文件:文件中的代码之间,很可能存在跨文件依赖关系;

    C、C++:make(configure --> Makefile.in --> makefile)

    jave:maven

    

    编译安装三步骤:

      ./configure

        (1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;

        (2)检查依赖到的外部环境;

      make

        根据makefile文件,构建应用程序;

      make install

    

    开发工具:

      autoconf:生成configure脚本

      automake:生成Makefile.in

    建议:安装前查看INSTALL,README

  开源程序源代码的获取:

    官方自建站点:

      apache.org(ASF)

      mariadb.org

      ...

    代码托管:

      SourceForge

      Github.com

      code.google.com

  c/c++:gcc (GUN C Complier)

  编译C源代码:

    前提:提供开发工具及开发环境

      开发工具:make,gcc等

      开发环境:开发库,头文件

        glibc:标准库

      通过”包组“提供开发组件

        CentOS 6:”Development Tools",“Server Platform Development"

    第一步:configure脚本

      选项:指定安装位置、指定启用的特性

      --help:获取其支持使用的选项

        选项分类:

          安装路径设定:

            --prefix=/PATH/TO/SOMEWHERE:指定默认安装 位置;

            --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装 位置;

          system types:

          Optional Features:可选特性

            --disable-FEATURE

            --enable-FEATURE[=ARG]

          Optional Packages:可选包

            --with-PACKAGE[=ARG]

            --without-PACKAGE

    第二步:make

    第三步:make install

  安装后的配置:

    (1)导出二进制程序目录至PATH环境变量中;

      编辑文件/etc/profile.d/NAME.sh

        export PATH=/PATH/TO/BIN:$PATH

    (2)导出库文件路径

      编辑/etc/ld.so.conf.d/NAME.conf

        添加新的库文件所在目录至此文件中;

      让系统重新生成缓存:

        ldconfig [-v]

    (3)导出头文件

      基本链接的方式实现;

        ln -sv

    (4)导出帮助手册

      编辑/etc/man.config文件

        添加一个MANPATH

练习:

  1、yum的配置和使用;包括yum repository的创建;

  2、编译安装apache 2.2;启动此服务;

博客作业:程序包管理:rpm/yum/编译

Linux:Day10 程序包管理的更多相关文章

  1. Linux下程序包管理工具RPM

    实验环境: CentOS release 6.6 (Final)  一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...

  2. Linux程序包管理之yum及源代码安装

    第十六章.Linux程序包管理之yum及源代码安装 目录 yum介绍 yum配置文件 yum的repo配置文件中可用的变量 yum命令的使用 使用光盘作为本地yum仓库 如何创建yum仓库 编译安装的 ...

  3. Linux程序包管理rpm与yum

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  4. Linux:Day9(下) 程序包管理

    API:Application Programming Interface POSIX:Portable OS 程序源代码 --> 预处理 --> 编译 --> 汇编 --> ...

  5. linux基础之程序包管理(rpm,yum)

    一.rpm 安装:rpm { -i | --install } [ install-options ] PACKAGE_FILE... -v: 显示安装时的详细信息 -vv: 显示许多难以阅读的调试信 ...

  6. Linux 程序包管理-RPM

    程序简介:  POSIX(Portable Openratin System)跨平台系统:不同操作系统平台的标准C库(glibc)都是遵循POSIX规范的,这样基于标准库开发程序的源代码可以夸平台编译 ...

  7. Linux程序包管理初步-rpm的使用

    在Linux系统上,一般而言,对于程序包管理器来说分为三类: debian:dpt,dpkg;             (程序包后缀.deb) rhel:rpm (程序包后缀.rpm) suse:rp ...

  8. Linux 程序包管理-YUM

    前端工具YUM管理程序包:  rpm管理软件虽然方便,但是需要手工解决软件包的依赖关系:很多时候安装一个软件需要首先安装一个或多个(有时多达上百个)其它软件,手工解决很复杂:使用yum可以解决这个问题 ...

  9. 程序包管理rpm、yum与简单编译安装程序

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

随机推荐

  1. 初探Google Guava

    Guava地址:https://github.com/google/guava 第一次接触我是在16年春github上,当时在找单机查缓存方法,google guava当初取名是因为JAVA的类库不好 ...

  2. sql数据库快照与恢复 规则绑定

    存在数据库快照的话我发进行数据库分离 CREATE DATABASE <快照名称> ON (NAME=<数据库文件名>,FILENAME='<存放地址>') AS ...

  3. RabbitMQ消息队列(六)-消息任务分发与消息ACK确认机制(.Net Core版)

    在前面一章介绍了在.Net Core中如何使用RabbitMQ,至此入门的的部分就完成了,我们内心中一定还有很多疑问:如果多个消费者消费同一个队列怎么办?如果这几个消费者分任务的权重不同怎么办?怎么把 ...

  4. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本新增新的角色授权管理界面效率更高、更规范

    角色授权管理模块主要是对角色的相应权限进行集中设置.在角色权限管理模块中,管理员可以添加或移除指定角色所包含的用户.可以分配或授予指定角色的模块(菜单)的访问权限.可以收回或分配指定角色的操作(功能) ...

  5. 以语音评测的PC端demo代码为例,讲解口语评测如何实现

    本文由云+社区发表 作者:腾讯智慧教育 概述 腾讯云智聆口语评测(英文版)(Smart Oral Evaluation-English,SOE-E)是腾讯云推出的语音评测产品,是基于英语口语类教育培训 ...

  6. 理解 docker 容器中的 uid 和 gid

    默认情况下,容器中的进程以 root 用户权限运行,并且这个 root 用户和宿主机中的 root 是同一个用户.听起来是不是很可怕,因为这就意味着一旦容器中的进程有了适当的机会,它就可以控制宿主机上 ...

  7. JVM(四)垃圾回收的实现算法和执行细节

    全文共 1890 个字,读完大约需要 6 分钟. 上一篇我们讲了垃圾标记的一些实现细节和经典算法,而本文将系统的讲解一下垃圾回收的经典算法,和Hotspot虚拟机执行垃圾回收的一些实现细节,比如安全点 ...

  8. MVC基本开发介绍 (1)列表展示

    前言: 现在如果用.net 的解决方案来做网站或者是网站的后台管理系统,MVC 应该是比较流行的. 自从进了新公司后,也一直在用mvc + webapi 来做项目,这里做个分享性的总结,有更好的方法欢 ...

  9. #1 爬虫:豆瓣图书TOP250 「requests、BeautifulSoup」

    一.项目背景 随着时代的发展,国人对于阅读的需求也是日益增长,既然要阅读,就要读好书,什么是好书呢?本项目选择以豆瓣图书网站为对象,统计其排行榜的前250本书籍. 二.项目介绍 本项目使用Python ...

  10. Spring事务的传播行为

      本文主要介绍下Spring事务中的传播行为. 事务传播行为介绍 Spring中的7个事务传播行为: |事务行为|说明 | |:--|:--| |PROPAGATION_REQUIRED | 支持当 ...