✏️
kingkong
  • Introduction
  • Go
    • 入门
    • 并发
    • 避坑
    • 测试
    • GC
    • 性能剖析PProf
    • 第三方库
    • 学习资料
    • 编写可维护Go语言代码建议
    • SOLID Go Design
    • 数组与切片
    • Go Mudules
    • mac 系统go升级 1.12到1.14
  • Kubernetes
    • 安装
    • 本质
    • 常用命令
    • 架构
    • 配置文件
    • Pod
    • Kubectl
    • 学习资料
  • Mac
    • Mac
    • Alfred4
    • 开机启动项管理
    • 升级macOS Big Sur11.1后蓝牙不能用
    • macOs磁盘清理之Homebrew数据清理
  • Docker
    • 常用命令
    • Dockerfile
    • Compose
    • Registry
    • Limit
    • Network
    • Volume
    • 特殊的进程
    • Namespace-Process
    • Namespace-Mount
    • Namespace-UTS
    • Namespace-IPC
    • Namespace-Network
    • Namespace-User
    • 踩坑
  • DevOps
    • ChatOps
    • GitOps
    • SecOps
    • VictorOps
  • Algorithm
    • raft
  • 中间件
    • etcd
    • Nacos集群部署
    • zookeeper
  • 分布式
    • CAP理论
    • BASE理论
    • Gossip协议
  • 网络
    • IP地址编址方式
    • C10k
    • NIO-BIO-AIO
    • Http
  • Linux
    • 常用命令
    • 常用命令1
    • 常用网络命令
    • 进程管理
    • 守护进程
    • Systemd
    • Unix哲学
    • 端口
    • 网络
    • CentOS目录结构
    • IT
    • 文件系统
    • 开源协定
    • 基础知识
    • bash
    • shell
    • vim
    • lvm2
    • btrfs文件系统
    • raid
    • 任务计划及周期性任务执行
    • find
    • 程序包的安装卸载
    • yum
    • sed
    • 用户、组和权限
  • 数据库
    • Redis
    • MySQL
  • 消息队列
    • kafka
  • 语言之道
  • 程序设计原则
  • LoadBalancer
    • LVS
    • HAProxy
  • 敏捷
    • 影响地图
    • 卡诺模型
    • 精益画布
    • 电梯演讲
    • INVEST原则
    • 复杂系统
    • AARRR模型
    • 用户故事
    • 看板
    • Scrum
  • MicroService
    • 分布式链接追踪系统
    • ServiceMesh
    • 如何设计微服务
    • 领域驱动设计
  • 项目实战
    • 多通道告警服务
    • IAM
  • 管理
    • 沟通
    • 演讲
    • 面试官
  • Authorization
    • JWT
  • Spring
    • IoC
    • SpringFramework
    • Spring核心编程思想
  • Java
    • SPI机制
    • Jar
    • tutorial
    • 面向对象
    • 核心类
    • 泛型
    • 集合
    • IO
    • 日期与时间
    • 单元测试
    • maven
    • 函数式编程
  • Mix
    • Bookmark
    • WorkStation
    • 快速压力转换
    • 手机拍照
    • markdown画图
    • RESTful API设计
    • 如何做单元测试
    • 赶走脂肪肝
  • Aphorism
  • 互联网
    • DNS
    • Nginx
  • Rust
  • Quarkus
    • java.util.zip.ZipException: zip END header not found
  • Python
    • tutorial
  • 区块链
    • Substrate
    • BTC
Powered by GitBook
On this page
  • yum客户端
  • 仓库指向的定义
  • yum命令的用法
  • 创建自己的yum仓库
  • 程序包的编译安装

Was this helpful?

  1. Linux

yum

Centos: yum, dnf

YUM: yellow dog Yellowdog Update Modifier

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

仓库 文件服务器:

  • ftp://

  • http://

  • nfs://

  • file:///

yum客户端

配置文件

  • /etc/yum.conf 仓库公共配置和不属于仓库的配置

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

仓库指向的定义

[repositoryID]

yum命令的用法

yum [options] command [package ...]

command is one of:

  • install package1 [package2] [...]

  • update [package1] [package2] [...]

  • update-to [package1] [package2] [...]

  • update-minimal [package1] [package2] [...]

  • check-update

  • upgrade [package1] [package2] [...]

  • upgrade-to [package1] [package2] [...]

  • distribution-synchronization [package1] [package2] [...]

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

  • autoremove [package1] [...]

  • list [...]

  • info [...]

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

  • clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

  • makecache [fast]

  • groups [...]

  • search string1 [string2] [...]

  • shell [filename]

  • resolvedep dep1 [dep2] [...]

    (maintained for legacy reasons only - use repoquery or yum provides)

  • 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]

  • repoinfo [all|enabled|disabled]

  • repository-packages [package2] [...]

  • 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]

  • updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates | exclude-all | check-running-kernel]

  • fssnapshot [summary | list | have-space | create | delete]

  • fs [filters | refilter | refilter-cleanup | du]

  • check

  • help [command]

  • 显示仓库列表: yum repolist [all|enabled|disabled]

  • 显示程序包: yum list

    • yum list all

    • yum list [glob]

    • yum list [availabe|installled|updates] [glob_exp1] [...]

  • 安装: yum install PACKAGE_NAME

  • 升级: yum update PACKAGE_NAME

  • 检查升级: yum check-update

  • 卸载: yum remove|erase PACKAGE_NAME

  • 查看包的简要信息: yum info PACKAGE_NAME

  • 查看指定的特性CAPABILITY由哪个程序包提供: yum provides|whatprovides CAPABILITY

  • 清理本地缓存 yum clear [packages | mediadata | expire-cache | rpmdb | plugins | all ]

  • 创建缓存 yum make cache

  • 搜索程序包名及summary信息: yum search KEY

  • 重新安装 yum reinstall PACKAGE_NAME

  • 程序降级: yum downgrade PACKAGE_NAME

  • 查询指定包所依赖的CAPABILITY: yum deplist PACKAGE_NAME

  • 查看yum的事务历史: 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)

包组管理的相关命令 yum group [install | list | info | upgrade ...]

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

  • 挂载光盘 /media/cdrom # mount -r -t iso9660 /dev/cdrom /media/cdrom

  • 创建配置文件

    • [Centos7]

    • name=

    • baseurl=

    • gpgcheck=

    • enabled=

yum命令行选项

  • --nogpgckeck 禁止gpg check

  • -y 自动回答yes

  • -q 静默模式

  • --disablerepo=repoidglob 临时禁用repo

  • --enablerepo=repoidglob 临时启用repo

  • --noplugin 禁用所有插件

yum的repo配置文件中可用的变量

  • $releasever: 当前os的发行版的主版本号

  • $arch: 平台

  • $basearch: 基础平台

  • $YUM0-$YUM9

httpL//mirrors.xx.com/centos/$releasever/$basearch/os

创建自己的yum仓库

create [options]

  • --basedir

程序包的编译安装

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

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

源代码的组织格式:

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

  • c c++: make config: Makefile.in -> makefile

  • java: maven

编译安装三步骤

  • ./configure #配置 从Makefile.in模块生成makefile

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

    • 检查依赖到的外部环境

  • make # 根据makefile 编译构建应用程序

  • make install # 把文件复制到安装目录

开发工具

  • autoconf 生成configure脚本

  • automake 生成Makefile.in

建议:安装前看INSTALL, README

开源程序源代码的获取

  • 官方自建站点

  • 代码托管 sourceForge/github/code.google.com

c/c++: gcc(GNU c complier)

编译c源代码

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

  • 开发工具: make, gcc等

  • 开发环境: 开发库,头文件,glibc:标准库

  • 通过"包组"提供开发组件

    • Centos: "Deveploment Tools" "Server Platform Development"

第一步: configure脚本

选项

  • 安装路径

    • --prefix=/PATH 指定默认安装位置 一般默认/usr/local

    • sysconfdir=/PATH 配置文件安装路径

    • System Type: 交叉编译

    • Optional Feature 可选特性

      • --disalbe-FEATURE

      • --enable-FEATURE

      • Options Package

        • --with

        • --nowith

第二步: make

第三步: make install

安装后的配置

  • 导出二进程程序目录 到PATH环境变量

    • 编译文件/etc/profile.d/NAME.sh

    • export PATH=/PATH/FILE:$PATH

  • 导出库文件路径

    • 编译/etc/ld.so.conf/NAME.conf

    • 添加新的库文件所在目录到此文件

    • 让系统重新生成缓存 ldconfig [-v]

  • 导出头文件

    • 基于链接的方式实现 ln -sv

  • 导出帮助手册

    • 编译/etc/man.config文件 添加一个MANPATH

Previous程序包的安装卸载Nextsed

Last updated 4 years ago

Was this helpful?