Linux 包管理器
RPM:
rpm(Red-Hat Package Manager) 为 Redhat 提出的包管理器, 用于在 Redhat 及其衍生版本中安装 rpm 格式的软件包 rpm 的优点:
1、简化了源码编译的难度, 使得安装或者卸载软件只需一条命令即可 缺点:
1、不能够自定义源码编译参数
2、无法自动解决依赖关系(这个缺点由 yum 工具解决) RPM 包命名格式:
httpd-2.4.6-67.el7.centos.x86_64.rpm
httpd 软件包名称 2.4.6-67 软件包版本 el7 系统版本 centos 系统发型版 x86_64 CPU架构 RPM 依赖关系:
树形依赖关系: A 依赖 B, B 依赖 C A-B-C
环形依赖关系: A 依赖 B, B 依赖 C, C 依赖 A A-B-C-A RPM 常用命令:
# 查看当前系统中是否存在以 RPM 方式安装的 httpd
rpm -q httpd # 和 rpm -q httpd 相同
rpm -qa httpd # 列出当前系统中所有以 RPM 方式安装的软件包
rpm -qa # 查询已安装的 httpd 的详细信息
rpm -qi httpd # 查看安装 httpd 生成的所有文件
rpm -ql httpd # 查看 passwd 是由那个安装包提供
rpm -qf /bin/passwd # 查看 httpd 生成的配置文件
rpm -qc httpd # 安装 httpd (可能由于依赖关系而安装失败)
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
rpm -ivh httpd-2.4.6-88.el7.centos.x86_64.rpm
或
rpm -ivh https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm # 卸载 httpd
rpm -e httpd RPM 选项:
-i 安装指定 RPM 包
-e 卸载指定 RPM 包
-v 显示安装时的详细信息
-vv 显示更详细的信息
-h 显示安装时的进度
-U 升级指定 RMP 包, 如果当前系统没有安装该 RPM 包, 则安装
-F 升级指定 RMP 包, 若果当前系统没有安装该 RPM 包, 则退出
-K 校验指定软件包
--nodeps 不检查依赖关系(多用于卸载)
--force 强行安装(多用于老版本替换新版本)
--import 导入秘钥文件 重建 RPM 数据库:
RPM 数据库维护系统的 RPM 信息, 如果 RPM 数据库损坏则 rpm 或者 yum 命令都不可使用, 这是需要对 RPM 数据库进行重建, 重建的时间取决于当前系统上 RPM 包的数量 # 重建 RPM 数据库
rpm --rebuilddb
YUM:
yum 是 rpm 的前端工具, 使用 python 开发, 用于自动解决 RPM 之间的依赖关系
要使用 yum 必须给定配置文件, 配置文件统一存放在 /etc/yum.repos.d/ 下, 必须以 .repo
配置文件格式:
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [base] # yum 的唯一 id, 必须全局唯一
name # 描述信息
mirrorlist # 服务器镜像地址
baseurl # 服务器镜像地址(mirrorlist 和 baseurl 只能配置一个)
gpgcheck # 是否验证 KEY
gpgkey # key 的存放路径
enabled # 是否启用这个配置块 yum 源的分类:
base # 常用的安装包, base 源里面的包通常和安装镜像的包相同
extras # 常用的扩展包
updates # 执行 yum update 使用的源
epel # 通过 epel 认证的源(需要自己安装) yum 常用命令:
# 显示所有的 yum 仓库, status 列为 enabled 表示启用, disabled 表示禁用
yum repolist all # 显示所有 status 为 enabled 的 yum 仓库
yum repolist enabled # 显示所有 status 为 disabled 的 yum 仓库
yum repolist disabled # 列出所有 yum 仓库中的 rpm 包
yum list # 显示所有以 http 开头的包(yum 支持通配符)
yum list http* # 在所有 yum 仓库中搜索 httpd 关键字
yum search httpd # 安装 httpd (会提示是否确认安装)
yum install httpd # 自动回答为 yes, -y 在需要键入 yes 或者 no 时自动回答为 yes
yum -y install nginx # 重新安装 httpd
yum -y reinstall httpd # 更新 httpd
yum -y update httpd # 卸载 httpd(不会卸载其自动安装的依赖包)
yum -y remove httpd # 卸载 nginx 将会卸载其所安装的所有包
yum -y autoremove nginx # 查看 openssh 包的详细信息
yum info openssh # 安装指定文件有那个程序包提供
yum provides /bin/passwd # 查看 ifconfig 有那个程序包提供
yum provides */ifconfig # 清除缓存
yum clean all # 清除插件缓存
yum clean plugins # 构建缓存
yum makecache # 查看 lsof 的依赖
yum deplist lsof # yum 操作历史记录
yum history # 安装 epel 源
yum -y install epel-release 包组相关的命令:
#列出所有可用的包组列表
yum grouplist # 安装 GNOME Desktop(GNOME 桌面) 包组
yum groupinstall GNOME Desktop # 卸载 GNOME Desktop 包组
yum groupremove GNOME Desktop # 查看指定包组信息
yum groupinfo GNOME Desktop # 更新指定包组
yum groupupdate GNOME Desktop
Linux 包管理器的更多相关文章
- Linux包管理器
按Linux系统分类 Redhat系列:Redhat(本身就是Centos).Centos.Fedora等,采用Dpkg包管理器 Debian系列:Debian.Ubuntu等,使用RPM包管理器 R ...
- linux 各种发行版及包管理器的关系
linux 各种发行版及包管理器的关系 Linux发行版列表 基于Kpkg(Debian 系) Debian GNU / Linux 及其派生发行版使用deb软件包格式,并使用dpkg及其前端作为包管 ...
- Linux新手的最佳包管理器
一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux开发 中,包管理器非常重要,知道如何使用多种包 ...
- 把玩Alpine linux(二):APK包管理器
导读 Alpine Linux非常精简,开机内存占用也在二三十兆大,没有拆箱即用,就需要我们自己去做一些了解和配置 Alpine Linux的优劣 优势 Alpine Linux的Docker镜像特点 ...
- Arch Linux 独特的包管理器相关名词解释及用法对照
https://wiki.archlinux.org/index.php/PacmanPacman包管理器是Arch Linux的主要特色之一.它结合了简单的二进制包格式和易于使用的构建系统.pacm ...
- 在linux中使用包管理器安装node.js
网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法. 1. 在U ...
- Linux系统-----包管理器的演变
每个电脑设备都使用某种形式的软件来执行其预定任务.在软件开发的早期,对产品进行了严格的bug和其他缺陷测试.在过去的十多年里,软件通过互联网发布,目的是通过应用新版本的软件来修复任何错误.在某些情况下 ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- 你需要知道的包管理器(Package Manager)
最近我花了一点时间关注了在不同系统之中所用到的包管理器(Package Manager) .最开始的时候,我是在使用Linux操作系统时,对这种工具以及它背后的想法深深迷恋住了:这真是自由的软件世界. ...
随机推荐
- python2中的__new__与__init__,新式类和经典类-乾颐堂
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- Python创建单例模式的5种常用方法-乾颐堂
所谓单例,是指一个类的实例从始至终只能被创建一次. 方法1 如果想使得某个类从始至终最多只有一个实例,使用__new__方法会很简单.Python中类是通过__new__来创建实例的: 1 2 3 4 ...
- Java Persistence with MyBatis 3(中文版) 第二章 引导MyBatis
MyBatis最关键的组成部分是SqlSessionFactory,我们可以从中获取SqlSession,并执行映射的SQL语句.SqlSessionFactory对象可以通过基于XML的配置信息或者 ...
- PCA 原理
PCA的数学原理(转) 1 年前 PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取 ...
- 关于Manifest merger failed : uses-sdk:minSdkVersion 8 cannot be smaller than version 16 declared in lib
日志有些长,标题显示不完,截图如下: 有图可以知道,是因为在引入的libary里面的build.gradle文件里面的minSdkVersion不一致导致这个问题出现的.修改一致即可.这个问题是在co ...
- [GO]接口的转换
package main import "fmt" type Humaner interface { //子集 SayHi() } type Personer interface ...
- cenots7单机安装Kubernetes
关于什么是Kubernetes请看另一篇内容:http://www.cnblogs.com/boshen-hzb/p/6482734.html 一.环境搭建 master安装的组件有: docker ...
- oracle中的表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表 ...
- 编写高质量代码改善C#程序的157个建议——建议65:总是处理未捕获的异常
建议65:总是处理未捕获的异常 处理为捕获的异常是每个应用程序具备的基本功能,C#在APPDomain提供了UnhandledException事件来接收未捕获到的异常的通知.常见的应用如下: sta ...
- C# 同步锁 lock Monitor
Lock关键字 C#提供lock关键字实现临界区,MSDN里给出的用法: Object thisLock = new Object();lock (thisLock){ // Critical c ...