Yum用法

背景:由于RPM包在实现程序包管理是会存在一些问题比如程序包会出现一些依赖关系等,这些都必须手动解决,虽然可以忽略一些关系,并且能使用--nodeps来安装,但是这会导致安装之后程序功能的不正常,因此为了能更好的解决这种关系,但手动解决这种关系又是一种很麻烦的事,所以就有高于rpm管理的工具yum来实现,下面我们就来仔细看看yum的用法。

学前须知:

yum 和dnf是centos系列的好工具

Yum是什么?在安装程序时能实现在前端自动解决依赖关系。Yum其实是一个cs架构的工具,yum是一个客户端

YUM: yellow dog, Yellowdog Update Modifier

yum repository: yum repo组件,被称作yum仓库

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

Repodata目录所在的位置就应该是仓库所指向的路径

yum支持的文件服务器:可通过以下服务器提供服务

ftp://

http://

nfs://

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}         #是否校验包

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]

* check

* help [command]

显示仓库列表:

yum repolist [all|enabled|disabled]

显示程序包:

# yum list [all | glob_exp1] [glob_exp2] [...]

# yum list {available|installed|updates} [glob_exp1] [...]

安装程序包:

yum install package1 [package2] [...]

yum reinstall package1 [package2] [...]  (重新安装)

升级/降级程序包:

yum update [package1] [package2] [...]

yum downgrade package1 [package2] [...] (降级)

检查可用升级:

yum check-update

卸载程序包:

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

查看程序包information:

yum info PACKAGE

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

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

清理本地缓存:

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

构建缓存:

yum makecache

搜索:

yum search string1 [string2] [...]

以指定的关键字搜索程序包名及summary信息;

查看指定包所依赖的capabilities:

yum deplist package1 [package2] [...]

查看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)

包组管理的相关命令:

* 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

#cp /media/cdrom  /mnt/yumrepo

(2) 创建配置文件

[CentOS7]

name=local_yum_repo

baseurl=file:///mnt/yumrepo

gpgcheck=0

enabled=0

yum的命令行选项:

--nogpgcheck:禁止进行gpg check;

-y: 自动回答为“yes”;

-q:静默模式;

--disablerepo=repoidglob:临时禁用此处指定的repo;

--enablerepo=repoidglob:临时启用此处指定的repo;

--noplugins:禁用所有插件;

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

$releasever: 当前OS的发行版的主版本号;

$arch: 平台;

$basearch:基础平台;

$YUM0-$YUM

例如阿里云的包地址:

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

创建yum仓库:

createrepo [options] <directory>

程序包编译安装:

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

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

源代码组织格式:

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

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

java: maven

C代码编译安装三步骤:

./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 (GNU C Complier)

编译C源代码

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

开发工具:make, gcc等

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

glibc:标准库

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

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

第一步:configure脚本

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

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

选项分类:

安装路径设定:

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

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

可以多多尝试,多练习

yum用法及程序编译安装相关推荐

  1. 网络yum源 自定义yum仓库 zip备份 编译安装

    Top NSD SERVICES DAY01 案例1:补充应用技巧 案例2:软连接与硬连接 案例3:man手册.zip备份 案例4:自定义yum软件仓库 案例5:发布及测试yum仓库 案例6:vim效 ...

  2. linux 安装源码网卡包,【linux命令】Linux通过yum 或者源码编译安装vnstat查看网卡流量...

    Linux通过vnstat查看网卡流量有两种安装方式: yum 安装或者源码编译安装. 1,yum安装. 直接运行yum install vnstat  -y 安装完后测试: [[email prot ...

  3. linux系统安装yum教程,Linux基本教程:Linux软件安装之Yum及源码编译安装

    一.Yum软件包管理 1.准备Yum软件仓库 1)Yum机制概述 Yum,Yellowdog Updater Modified 基于RPM包构建的软件更新机制 自动解决软件包依赖关系 所有软件包由集中 ...

  4. Screen常见用法 Linux手动编译安装Screen

    7,screen使用 1.简历screen窗口 screen -S face 2.查看实例 screen -ls 3.调取窗口 screen -r 28730 4.关闭 screen -d {name ...

  5. 安装及管理程序(yum搭建本地源,了解rmp命令,查询卸载软件包,编译安装的过程)

    文章目录 安装及管理程序 前言 linux命令与应用程序的关系 典型应用程序的目录结构 常见的软件包封装类型 查询RPM软件包信息 rpm概述 RPM机制封装命令格式 查询RPM软件包信息 查询未安装 ...

  6. Linux笔记-centos7替换yum及编译安装mydumper

    首先是替换yum 这里逻辑如下: 1. 清空yum: 2. 替换/etc/yum.repos.d: 3. 重新生成缓存: 详细过程如下: 1. 进入yum源配置文件 cd /etc/yum.repos ...

  7. centos 6.8 php mysql_Centos 6.8编译安装LNMP环境(Nginx+MySQL+PHP)教程

    前言 对于新手的一点建议: 最好熟悉一下linux 的基本命令,vim的常用命令 千万不要无脑复制,先看一下命令,特别是路径要注意 学会排查错误 本篇安装的软件版本为: Linux:Centos6.8 ...

  8. centos php编译安装mysql_CentOS手动编译安装Apache、PHP、MySQL

    64位CentOS 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  9. Centos 7编译安装 LAMP 环境

    前言 LAMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写 L:Linux 操作系统 A:Apache(httpd) 网页服务 M:MySQL(mariadb) 数据库服务 ...

最新文章

  1. gdc服务器老显示drs,VMware ESXi 高可用之drs
  2. Linux2.6内核--VFS层中和进程相关的数据结构
  3. React Mixins入门指南
  4. Factorized TDNN(因子分解TDNN,TDNN-F)
  5. 排序算法 | 堆排序,算法的图解、实现、复杂度和稳定性分析
  6. 给Source Insight做个外挂系列之六--“TabSiPlus”的其它问题
  7. python高阶函数、map reduce 自己如何去定义_「python」高阶函数map、reduce的介绍
  8. 研究生必须过计算机和英语吗,计算机考研考英语一还是英语二
  9. 数组遍历,判断数组中的对象中某一属性值时候为空
  10. mysql在官网下载完解压后安装
  11. [转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
  12. linux下wav转换为mp3
  13. 如何删除 R 中的异常值
  14. Windows 10, version 21H2 (released Nov 2021) 简体中文版、英文版(企业版)下载
  15. 10种方法打开EPUB文件
  16. python 评分卡_评分卡原理及Python实现
  17. 字句解 (易經大意 韓長庚)
  18. Zabbix网站pv_uv_ip的监控
  19. 会声会影试用版到期了怎么办_会声会影2018试用版如何正确安装、卸载?
  20. orgchart实现组织结构图

热门文章

  1. 同质异质网络——(F(fraud) A(Analytics) UDPSNT(Wylie_2015))
  2. 安卓 时间服务器_官方都被惊动!LOL手游日本服务器挤到瘫痪,IOS不得不推迟...
  3. Facebook账户 “ 解封、防封、养号 ” 知识要点
  4. WMS智能仓储系统成长史?
  5. 花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)
  6. JavaScript学习之Object(下)this
  7. 此上下文中不允许函数定义。_面试官:那我们来说说执行上下文吧
  8. php取json子对象属性,PHP json获取相关对象值
  9. html管道符需要转义么,为什么String.split需要管道分隔符进行转义?
  10. [Ext JS 7]7.2 事件(Event)