学习笔记(十)——软件包管理:rpm + yum

1.rpm

rpm(RedHat Package Manager)是 RedHat 的软件包管理工具,由于CentOS 是基于 RedHat Linux的,所以 rpm 对于 CentOS 同样适用。下面列举了一些rpm 的常用参数:

[[email protected] ~]# rpm -ivh packagename.rpm        //安装包

[[email protected] ~]# rpm -e packagename.rpm          //卸载包

如果要卸载 vim-enhanced 包,使用如下命令:

[[email protected] ~]# rpm -e vim-enhanced

通过如下命令查看是否删除成功:

[[email protected] ~]# echo $?

该命令很常用,如果 $? 值为 0,则上一条命令执行成功;如果$? 值非0,则命令执行失败。

安装 / 卸载包时,经常会有各种互相依赖的关系,使用 --nodeps 可以忽略依赖关系,单独安装 / 卸载包:

[[email protected] ~]# rpm -e vim-enhanced --nodeps

[[email protected] ~]# rpm -Uvh packagename.rpm  //更新包

查询系统安装的所有包:

[[email protected] ~]# rpm -qa

查询时,假如一个包的全名如下:

yum-plugin-versionlock-1.1.30-30.el6.noarch.rpm

则 yum-plugin-versionlock 为包名,1.1.30-30为版本号,el6 代表其为 RedHat 6 系统,noarck 代表该包在 32 位及 64 位操作系统下通用,如果仅适用于 32 位操作系统,则此位置一般为 i386、 i586、 i686 等,如果仅适用于 64位操作系统,则此位置一般为 ix86_x64 等形式(当然,由于操作系统的向下兼容性,适用于32 位的 rpm 包通常也能安装在 64 位操作系统上,反之则不然)。rpm 为 rpm 包通常的后缀名。

查询系统安装的所有包中名称包含vim 的包:

[[email protected] ~]# rpm -qa *vim*

上条命令与结合使用 grep 效果相同:

[[email protected] ~]# rpm -qa | grep “*vim”

查看安装一个包具体多出了哪些文件(此处包名必须完整准确,不能再使用 * 进行通配):

[[email protected] ~]# rpm -ql vim-enhanced

查询某个包的详细信息(同样包名必须完整准确):

[[email protected] ~]# rpm -qi vim-enhanced

查看一条命令是通过安装什么包产生的(命令需要绝对的路径):

[[email protected] ~]# rpm -qf vim

也可以结合反引号来使用:

[[email protected] ~]# rpm -qf `which vim`

rpm 虽然有其作用,但是有些情况下我们在用 rpm 安装或卸载时会遇到循环依赖的问题,即便使用 --nodeps 也无法解决

2.yum

yum 命令可以通过网络或者本地源来进行安装、删除、更新、查询等操作,解决了 rpm 难以解决的循环依赖问题。

安装 vim-enhanced 包:

[[email protected] ~]# yum install -y vim-enhanced

卸载 vim-enhanced 包:

[[email protected] ~]# yum remove vim-enhanced

更新 vim-enhanced 包:

[[email protected] ~]# yum update -y vim-enhanced

查看 vim 命令是通过安装哪个包产生的(类似于 rpm -qf /usr/bin/vim),前提是 yum 源中包含该包:

[[email protected] ~]# yum provides vim

该命令等同于:

[[email protected] ~]# yum whatprovides vim

查看 yum 源中的所有安装包:

[[email protected] ~]# yum list

除了能对某个包进行操作外,yum 还可以以组为单位对安装包进行操作,相关命令如下:

[[email protected] ~]# yum groupinstall

[[email protected] ~]# yum groupremove

[[email protected] ~]# yum grouplist

常用的以组为单位进行安装的操作通常为安装开发环境(当然安装桌面也会用到 yum groupinstall):

[[email protected] ~]# yum groupinstall -y “Development tools”

注:CentOS 默认提供的 yum 源往往只能满足我们最基本的需求,如果需要通过 yum 安装其他包(如 nginx 等),必须安装其他 yum 源进行扩展,比较常用的是epel

[[email protected] ~]# rpm -ivh http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm

如果是 64 位操作系统:

[[email protected] ~]# http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm

也可以通过如下简洁的命令进行安装:

[[email protected] ~]# yum install -y epel-release

有些时候我们只想下载而不想安装,或者需要在一台可以联网的机器上下载以后拷贝到不能上网的机器上进行安装。为了解决这种需求,需要使用 yum 命令的 --downloadonly 选项:

首先,安装 yum 插件来支持 --downloadonly 选项:

[[email protected] ~]# yum install -y yum-plugin-downloadonly

之后,对已安装过的包使用 reinstall ,对未安装过的包使用 install ,假如 vim-enhanced 包未安装:

[[email protected] ~]# yum install -y vim-enhanced --downloadonly

假如 vim-enhanced 包已安装:

[[email protected] ~]# yum reinstall -y vim-enhanced --downloadonly

这样就可以将 vim-enhanced 包下载下来,默认位于 /var/cache/yum/base/packages/目录下,如果想改变存放目录,有两种方法,第一种方法,使用 --downloaddir 临时指定存放目录:

[[email protected] ~]# yum install -y vim-enhanced --downloadonly--downloaddir=/usr/local/src/

第二种方法,修改 /etc/yum.conf 配置文件:

[[email protected] ~]# vim /etc/yum.conf

[main]

cachedir=/usr/local/src/

keepcache=1

在 cachedir 处指定下载目录,keepcache 为 1 表示保存下载包,为 0 则不保存下载包。使用第二种方法时下载包也不是完全位于指定的目录根目录下,所以建议使用第一种方法,定位更加准确快捷。

使用网易的 yum 源有时更加方便,从如下网址下载其 .repo 文件:

http://mirrors.163.com/.help/CentOS6-Base-163.repo

传输到 Linux 系统中 /etc/yum.repos.d/ 目录下(备份该目录下其他文件,并将该目录清空)。重新生成缓存:

[[email protected] ~]# yum clean all

[[email protected] ~]# yum makecache

关于如何制作本地 yum 源,可以参考之前的博客,地址如下:

http://xitongjiagoushi.blog.51cto.com/9975742/1621301

时间: 2024-10-27 08:51:44

学习笔记(十)——软件包管理:rpm + yum的相关文章

Linux软件包管理{rpm|yum|源码包}2015082901

CentOS软件包管理 Linux程序安装有三种方式: 1.  二进制包安装 a.RPM b.YUM 2.  源码包安装 (1)二进制包管理: RPM CentOS上的二进制包为rpm格式,并且rpm软件包管理程序也叫做rpm(RPM is Package Manager) RPM包管理方式的优点是:安装简单方便,因为软件已经编译完成打包完毕,安装只是个验证环境和解压的过程.此外通过RPM方式安装的软件,RPM工具都会记录软件的安装信息至数据库中(/var/lib/rpm),这样方便了软件日后的

linux学习笔记之软件包管理

软件包管理 软件包组成 二进制程序 配置文件 单文件 将主配置文件切割成多个小文件,并放置于某个目录中. /etc/profile ,/etc/profile.d/* /etc/pam.conf , /etc/pam.d/* 单文件,在内部分割成多个片段. [mysql] [mysqld]... 库文件: 二进制 可执行  函数(c程序都由函数组成) 共享模块 静态库 动态库 帮助文件 手册页 文档(/usr/share/doc) /bin /sbin 系统启动使用 /usr/bin  /usr

linux学习笔记(软件包管理)

前言:运维工程师平时安装服务时很正常的事情,所以软件包的管理就显得尤为重要. 内容: 基础知识. 程序发行的源代码都是不可以运行的,需要编译之后才可以运行,linux发行版的厂商会在他的机器上进行编译然后提供下载使用,用户可以直接拿到二进制的可执行文件进行使用. 通过file可以看到文件时不是可执行文件( ELF 32-bit LSB)是可执行文件,shared libs是使用了共享库.shell脚本显示Bourne-Again是应为#!/bin/bash的原因. 程序的组成部分:1.二进制程序

Linux学习笔记——程序包管理之yum

YUM yum 是rpm程序包管理器的前段管理器.yum 主要功能是更方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题. yum 的操作是基于yum 仓库进行的 yum repository: yum repo  yum仓库 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata): 文件服务器: ftp:// http:// nfs:// file:/// yum 的配置 配置文件 /etc/yum.conf:为所有仓库提供公共配置

Linux学习38 Linux软件包管理-rpm命令介绍及实战应用

一.rpm 1.安装 见上节 2.升级 a.命令 rpm {-U|--upgrade} [install-options] PACKAGE_FILE ... -U:升级或安装: -F:升级,不支持安装,如果拥有老版本的包时才会升级,否则不会安装 rpm -Uvh PACKAGE_FILE ... rpm -Fvh PACKAGE_FILE ... 相应选项和安装是通用的,接下来说几个额外选项 --oldpackage:降级: --force:强制升级: 注意: (1).不要对内核做升级操作:Li

好程序员云计算学习路线分享软件包管理

好程序员云计算学习路线分享软件包管理,安装/查询/卸载 一.软件的类型A. 源码包 需要编译 nginx-1.12.1.tar.gz B. 二进制包 已编译 mysql-community-common-5.7.12-1.el7.x86_64.rpm 常见二进制包系统平台 包类型 工具 在线安装(自动解决依赖关系)RedHat/Centos RPM rpm,rpmbuild yumUbuntu/Debian DPKG dpkg apt注意: 不管是源码包,还是二进制包,安装时都可能会有依赖关系!

软件包管理之yum

上一篇我们介绍了关于使用rpm对软件包进行管理,我们感觉到,软件包之间的依赖关系使得rpm不那么的方便,今天我们介绍rpm的前端工具yum,yum的出现使得软件包的管理更为方便快捷. 简单说,要想使用yum,必须有一个可用的yum repository,而且客户端需要配置一个有效的yum repo.yum repostory可以通过ftp,http及本地实现,而且,需要使用createrepo生成元数据:之后在客户端配置yum repo的配置文件即可.使用createrepo创建yum仓库,会生

Linux System Programming 学习笔记(十) 信号

1. 信号是软中断,提供处理异步事件的机制 异步事件可以是来源于系统外部(例如用户输入Ctrl-C)也可以来源于系统内(例如除0) 内核使用以下三种方法之一来处理信号: (1) 忽略该信号.SIGKILL和SIGSTOP不能被忽略. (2) 捕捉并且处理该信号.The kernel will suspend execution of the process's current code path and jump to a previously registered function. SIGK

软件包管理器yum

一.基本原理 yum是基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.基本参数yum install firefox.x86_64 下载火狐浏览器yum repolist列出安装源的信息yum remove firefox.x86_64 移除火狐浏览器yum list firefox.x86_64 查看安装源中是否存在火狐浏览器yum

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];