yum

  • yum: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具
[root@Centos7~]#which yum
/usr/bin/yum
  • yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

                  http://   https://  ftp://   file://

  • yum客户端配置文件:

               /etc/yum.conf:为所有仓库提供公共配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置
  • yum软件的配置信息
    yum的repo配置文件中可用的变量:
    $releasever: 当前OS的发行版的主版本号
    $arch: 平台,i386,i486,i586,x86_64等
    $basearch:基础平台;i386, x86_64
    $YUM0-$YUM9:自定义变量
[root@Centos7~]#cat /etc/yum.conf                  查看yum的默认信息
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0                                                     * 是否保留rpm文件*
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1                                                        *检查rpm文件的完整性*
plugins=1
installonly_limit=5
# PUT YOUR REPOS HERE OR IN separate files named file.repo      新建文件后缀必须为 repo
# in /etc/yum.repos.d                                           新建立yum配置文件存放位置

yum.repos.d目录下默认存在的仓库指向配置文件

[root@Centos6yum.repos.d]#ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-Debuginfo.repo  CentOS-Media.repo
[root@Centos7/etc/yum.repos.d]#vim base.repo                     文件后缀必须为.repo格式
[base]
name=Centos7.4 cdrom
baseurl=file:///misc/cd                                                                  挂载的源是光盘
gpgcheck=1
gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-7[epel]                                                                                              epel指向方式
name=epel
baseurl=http://172.18.0.1/epel/7/x86_64/
gpgcheck=0                                                                                  0代表不检测安装文件的完整性 

查看yum源挂载情况

[root@Centos7/etc/yum.repos.d]#yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识                       源名称                                         状态
base                          Centos7.4 cdrom                        9,591
epel                           epel                                             5,919
repolist: 15,510

查看yum缓存信息

[root@Centos6yum.repos.d]#du -sh /var/cache/yum
35M /var/cache/yum

清除 yum 本地缓存

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

[root@Centos7/etc/yum.repos.d]#yum clean all
已加载插件:fastestmirror, langpacks
源 'base' 在配置文件中未指定名字,使用标识代替
正在清理软件源: base
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@Centos7/etc/yum.repos.d]#du -sh /var/cache/yum
4.0K    /var/cache/yum

yum软件常出现异常的两个原因,一个仓库源的路径问题!
另外一个就是yum缓存的问题,出现异常检查路径及清除yum缓存!


yum命令的用法

yum [options] [command] [package ...]
显示仓库列表: yum repolist [all|enabled|disabled]
显示程序包:
yum list
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 [...]

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

yum provides | whatprovides feature1 [feature2]

查看yum历史:

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

包组管理的相关命令:

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

yum的命令行选项:

--nogpgcheck :禁止进行gpg check
-y : 自动回答为“yes”
-q :静默模式
--disablerepo=repoidglob :临时禁用此处指定的repo
--enablerepo=repoidglob :临时启用此处指定的repo
--noplugins :禁用所有插件

#如果建立yum服务器

  • 生产环境如果能连接外网,即可方便连接外网的yum 源。
  • 例如:
  • 如果是局域网情况,准备好需要的rpm等文件,简单搭建一个共享服务。
  • 可以使用httpd 或者 vsftpd 软件来搭建。
  • 把准备好的源文件(包含源数据及rpm安装包等文件)放到 /var/www/html 目录下或者
  • /var/ftp/pub 目录下即可
  • 对于建立的yum源目录管理,要单独建立。
    [root@Centos7/var/ftp/pub]#mkdir centos/6/os/x86_64/ -pv
    mkdir: 已创建目录 "centos"
    mkdir: 已创建目录 "centos/6"
    mkdir: 已创建目录 "centos/6/os"
    mkdir: 已创建目录 "centos/6/os/x86_64/"
    [root@Centos7/var/ftp/pub]#tree
    .
    └── centos
    └── 6└── os└── x86_64
    4 directories, 0 files
  • 将准备好的源文件全部下载到x86_64目录下既可以(由于目前学习阶段,就把光盘挂在到当前目录下即可)
    [root@Centos7/var/ftp/pub]#df
    文件系统            1K-块         已用          可用            已用%     挂载点
    /dev/sda2        52403200    3597996   48805204    7%            /
    devtmpfs         724776        0               724776        0%            /dev
    tmpfs               739476        0               739476        0%           /dev/shm
    tmpfs               739476        9216         730260        2%           /run
    tmpfs               739476        0               739476        0%           /sys/fs/cgroup
    /dev/sda3        20961280    32944       20928336    1%           /app
    /dev/sda1       1247232       161556     1085676      13%         /boot
    tmpfs              147896         8               147888        1%           /run/user/0
    /dev/sr0          3878870       3878870   0                  100%       /var/ftp/pub/centos/6/os/x86_64
    [root@Centos7/var/ftp/pub]#df -h
    文件系统          容量       已用       可用     已用%     挂载点
    /dev/sda2        50G        3.5G      47G      7%           /
    devtmpfs         708M      0           708M    0%           /dev
    tmpfs               723M      0           723M    0%           /dev/shm
    tmpfs               723M      9.0M     714M    2%           /run
    tmpfs               723M      0           723M    0%           /sys/fs/cgroup
    /dev/sda3        20G        33M       20G     1%            /app
    /dev/sda1        1.2G       158M     1.1G    13%          /boot
    tmpfs               145M      8.0K      145M   1%            /run/user/0
    /dev/sr0           3.7G       3.7G      0          100%        /var/ftp/pub/centos/6/os/x86_64

    启动ftp服务

    [root@Centos7~]#systemctl start vsftpd

    关闭防火墙命令
    [root@Centos7~]#systemctl stop firewalld --------->(Centos 6 service iptables stop)
    开机默认不开启防火墙命令
    [root@Centos7~]#systemctl disable firewalld ------->(Centos6 chkconfig iptables off)
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    查看防火墙是否开启命令
    [root@Centos7~]#iptables -vnL
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination
    Chain OUTPUT (policy ACCEPT 0 packets, 0 byteskts bytes target prot opt inout source destination

关闭selinux 配置(修改为SELINUX=permissive)

[root@Centos7~]#cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
**SELINUX=enforcing**
[root@Centos7~]#getenforce
Permissive
  • 客户端yum源设置

    [root@Centos6yum.repos.d]#pwd
    /etc/yum.repos.d
    [root@Centos6yum.repos.d]#vim base.repo
    [base]
    name=ftp.centos6.9 base
    baseurl=ftp://172.18.7.77(服务器ip地址)/pub/centos/$releasever/os/$basearch/
    gpgcheck=0

    建立第三方软件安装包目录,在目录下生成目前安装软件的元文件等信息。

    [root@Centos7/var/ftp/pub/app3]#createrepo .    ---------> 在当前目录下生成当前所有软件的元文件
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete
    [root@Centos7/var/ftp/pub/app3]#ls
    linux-4.13.16.tar.xz  repodata                                 ------------> repodata 为生成的元文件目录
  • 系统光盘yum仓库

    系统安装光盘作为本地yum仓库:
    (1) 挂载光盘至某目录,例如/mnt/cdrom

    mount /dev/cdrom /mnt/cdrom

    (2) 创建配置文件

    [CentOS7]
    name=
    baseurl=
    gpgcheck=
    enabled=

    创建yum仓库:

    createrepo [options] <directory>

程序包编译

  • 程序包编译安装:
  • Application-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装
  • 源代码-->预处理-->编译-->汇编-->链接-->执行
  • 源代码组织格式:

    多文件:文件中的代码之间,很可能存在跨文件依赖关系
    C、C++:make 项目管理器

    configure脚本 --> Makefile.in --> Makefile java: maven

  • 编译安装

    C语言源代码编译安装三步骤:
    1、./configure

    (1) 通过选项传递参数,指定启用特性、安装路径等;执 行时会参考用户的指定以及Makefile.in文件生成Makefile
    (2) 检查依赖到的外部环境,如依赖的软件包

    2、make 根据Makefile文件,构建应用程序
    3、make install 复制文件到相应路径
    开发工具:

    autoconf: 生成configure脚本
    automake:生成Makefile.in

    注意:安装前查看INSTALL,README

  • 开源程序源代码的获取:

    官方自建站点:

    apache.org (ASF:Apache Software Foundation)
    mariadb.org
    ...
    代码托管:
    SourceForge.net
    Github.com code.google.com

    c/c++编译器: gcc (GNU C Complier)

  • 编译C源代码:

    准备:

    提供开发工具及开发环境
    开发工具:make, gcc等 开发环境:开发库,头文件
    glibc:标准库

    实现

    通过“包组”提供开发组件
    Development Tools
    Server Platform Development

  • httpd 软件编译安装

    下载源码软件包
    准备编译环境,安装包组

    yum groupinstall "Development Tools"

  • 第一步:configure脚本

    选项:指定安装位置、指定启用的特性
    --help: 获取其支持使用的选项
    选项分类:
    安装路径设定:

    --prefix=/PATH: 指定默认安装位置,默认为/usr/local/
    --sysconfdir=/PATH:配置文件安装位置
    System types:支持交叉编译
    Optional Features: 可选特性

    --disable-FEATURE
    --enable-FEATURE[=ARG]

    Optional Packages: 可选包

    --with-PACKAGE[=ARG],依赖包
    --without-PACKAGE,禁用依赖关系

    注意:通常被编译操作依赖的程序包,需要安装此程序包的“开发”组件,其包名一般类似于name-devel-VERSION

  • 第二步make -j 2

    看提示补充安装相应的包例如:apr-devel apr-util-devel openssl-devel pcre-devel

  • 第三步make install,配置运行环境

    安装后的配置: 二进制程序目录导入至PATH环境变量中
    编辑文件/etc/profile.d/NAME.sh

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

    导入库文件路径

    编辑/etc/ld.so.conf.d/NAME.conf
    添加新的库文件所在目录至此文件中
    让系统重新生成缓存:ldconfig [-v]

    导入头文件 基于链接的方式实现:ln -sv
    导入帮助手册

    编辑/etc/man.config|man_db.conf文件
    添加一个MANPATH

转载于:https://blog.51cto.com/exia00linux/2056440

Linux学习之路-Linux-yum命令【8】---20171217相关推荐

  1. Linux学习之路(持续补充中......)

    Linux学习之路 Linux的基础知识 第一章:Linux的概述以及系统安装及使用 第一节:简单了解一下Linux发展历史与历程 Linux是一种自由.开源的类UNIX操作系统. linux 的创始 ...

  2. linux 的基本命令格式,Linux学习之路(一)命令基本格式

    据统计Linxu里面能够识别的命令超过3000个,而我们常用的Linux基本命令在60个左右.常用命令是我们必须掌握的命令,需要我们多练习才能记住,最起码要敲3遍以上. 简单的把常用命令分为以下几大类 ...

  3. Linux学习-59-备份还原数据命令(dump、restore、dd命令)

    13.5 dump命令用法详解:备份分区.文件或目录 dump 命令使用"备份级别"来实现增量备份,它支持 0-9 共 10 个备份级别.其中,0 级别指的就是完全备份,1-9 级 ...

  4. linux学习之路——ubuntu 16.04 开机开启数字小键盘解决方法

    linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 参考文章: (1)linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 (2)https://www. ...

  5. Linux学习系列五:Shell命令脚本的基本语法

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  6. 高人指点 linux 学习之路

    博客的原创之路艰辛,小女子对创作人心生崇敬,转载是为了起步,从转载开始,过渡到有胆识和见识写自己的话吧,加油! Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为 <linux_de ...

  7. Linux学习笔记:Linux常用命令总结

    文章目录 前言 Linux学习笔记:Linux常用命令总结 1. 目录命令 1.1 Linux目录结构 1.2 cd命令 切换工作目录 1.3 ls命令 显示目录下文件 1.4 mkdir命令 创建目 ...

  8. 【黑马程序员新版Linux学习笔记】Linux系统实用操作命令——操作演示

    [黑马程序员新版Linux学习笔记]Linux 零基础快速入门: (一)Linux基本命令--操作演示 (二)Linux用户和权限 -- 操作演示 (三)Linux 小技巧快捷键 (四)Linux系统 ...

  9. Linux中常用的文件目录,Linux学习笔记2——Linux中常用文件目录操作命令

    ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...

  10. Linux学习笔记之——Linux系统内部相关介绍

    Linux学习笔记之--Linux系统内部相关介绍 摘要:主要记录一些比较有用的能够帮助理解和使用Linux的知识.比如一些相关概念.没兴趣的看看就好.知道有这么个东西.注意事项.和一些常用目录的作用 ...

最新文章

  1. 微信小程序showModel使用注意
  2. 【怎样写代码】对象克隆 -- 原型模式(一):问题案例
  3. corosync+pacemaker+crmsh配置高可用集群。
  4. 搜索引擎学习(六)Query的子类查询
  5. 计算机组成原理实验 组装实验报告,计算机组成原理实验一实验报告..doc
  6. phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页
  7. Linux学习总结(4)——Centos6.5使用yum安装mysql——快速上手必备
  8. 学习C# 3.0语法笔记(1)
  9. uos命令_【持续更新】UOS个人版实用技巧集锦
  10. cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第4天
  11. C++实现离散余弦变换(参数为二维指针)
  12. 很久的东西-也有价值
  13. 中国著名的D版和破解软件下载网站(转)
  14. PuttyPsftp命令行实现自动登录
  15. java初级程序员_为什么现在JAVA初级程序员要求这么高?
  16. 技术族谱:预告片的制作思路
  17. Salesforce: 关于Apexpages.Message类
  18. 深度理解GRUU-Net
  19. WorkFlow一:WorkFlow基础配置
  20. 双数据率四线外设接口(Double Transfer Rate Quad Peripheral Interface, DTR QPI)

热门文章

  1. SAP RETAIL MP30为物料Execute Forecast,报错- Status Forecast not defined –
  2. SAP PM 初级系列24 - 发料到维修工单
  3. SAP WM 二步法确认TO场景下WM库存状态变化
  4. 年度重磅发布:《人工智能发展报告2020》
  5. 在推荐系统中,我还有隐私吗?联邦学习:你可以有
  6. 什么是CNN?机器学习入门贴,Facebook员工打造,47k访问量
  7. SAP S4HANA 与 ECC的差异,多话不说,上图一张!
  8. PLM在企业中的实际价值与意义
  9. 「SAP技术」SAP WM 如何根据TR号码查询TO号码?
  10. 综述:NLP中的深度学习优势