Linux操作系统常用命令合集——第六篇-软件包操作(2个命令)
一、前言介绍
软件包即程序包
程序包管理
关键词:rpm程序包管理、YUM仓库管理、源码编译安装
程序包管理:
将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级、和校验等管理操作
管理程序包的方式:
使用包管理器:rpm
使用前段工具:yum
rpm包含命名方式:
name-VERSION-release.arch.rpm
VERSION:major.minor.release
release.arch:
常见的arch:
x86:i386, i486, i586. i686
x86_64:x64, x86_64, amd64
powerpc:ppc
跟平台无关:noarch
包之间:存在依赖关系
X, Y, Z
二、命令详解
1.rpm
【命令作用】
程序包管理
【命令语法】
rpm [选项] [参数]
【常用选项】
(1)安装:
rpm {-i|--install} --注意花扩符号,必须包含选项[install-options] PACKAGE_FILE ...查询为软件头代表名:tree,安装为整个文件名
-v<verbose> --显示详细过程
rpm {-i|--install}
-h --以显示程序包管理执行进度,每个#表示2%的进度
rpm -ivh PACKAGE_FILE ...
[install-options]
--test --测试安装,但不真正执行安装过程
--nodeps --忽略依赖关系
--replacepkgs --重新安装
--force --强制安装直接代替nodeps和replacepkgs,但是尽量不要忽略依耐性关系
--nosignature --不检查来源合法性
--nodigest --不检查包完整性
秘钥文件:ll /etc/pki/rpm-gpg/
(2)升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrade --安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”
freshen --安装有旧版程序包,则“升级”:如果不存在旧版程序包,则不执行升级操作
[install-options]
--test --测试安装,但不真正执行安装过程
--nodeps --忽略依赖关系
--oldpackage --降级
--fore --强行升级
注意:①不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核
②如果原程序包的配置文件安装后曽被修改,升级时,新版本提供的同一配置文件不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
(3)查询:
rpm {-q|--qurey} [select-options] [query-options]
①[select-options] --挑选选项
-a --所有已安装程序包
-f --查看指定的文件由哪个程序包安装生成
-p /PATH/TO/PACKAGE_FILE --针对尚未安装的程序包文件做查询操作
②[query-options] --查询选项
-c --查询程序的配置文件
-d --查询程序的文档
-i --查询程序的信息
-l --查看指定的程序包安装后生成的所有文件
常见的组合用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ...
-qa
(4)卸载:
rpm {-e|--erase} PACKAGE_NAME ...
--test --测试卸载,但不真正执行卸载过程
--nodeps --忽略依赖关系
(5)校验(非常用):
①rpm {-V|--verify} [select-options] [verify-options]
rpm -V FILE
S --文件大小差异
M --权限差异
5 --验证码差异
D --主设备号和次设备号
L --路径差异
U --文件拥有者差异
G --文件拥有组差异
T --修改时间差异
P --特性差异
②包来源合法性验证及完整性验证:
完整性验证: SHA256
来源合法性验证: RSA
③公钥加密:
对称加密:加密、解密使用同一密钥
非对称加密:密钥是成对儿的
③导入所需要公钥:
rpm --import /PATH/FROM/GPG-PUBKEY-FILE导入*
CentOS 7 发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7
(6)数据库维护:
RPM数据库 ll /var/lib/rpm
ll /var/ilb/rpm --查询数据文件
rpm {--initdb|--rebuilddb}
initdb --初始化。如果事先不存在数据库,则新建之;否则,不执行任何操作
rebuilddb --重建。无论当前存在与否,直接重新创建数据库
【参数说明】
指定要操纵的rpm软件包
【命令示例】
2.yum
【命令作用】
YUM(Yellow dog,全称为 Yellow dog Updater,Modified)是一个Fedora和RedHat以及CentOS中的Shell前段软件包管理。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum repository:yum repo
--存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)
文件服务器:
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 [选项] [参数]、
【常用选项】
-y<yes> --对所有的提问回答"yes"
-c --指定配置文件
-q --静默模式
-v --详细模式
-d --设置调试等级(0/10)
-e --设置错误等级(0/10)
-R --设置yum处理一个命令的最大等待时间
-C --完全从缓存中运行,而不去下载或者更新任何头文件
【参数说明】
(1)command is one of(命令如下):
install package1 [package2] [...] --安装rpm程序包1 程序包2
update [package1] [package2] [...] --更新rpm程序包1 程序包2
update-to [package1] [package2] [...] --更新程序包1程序包2,。此命令的工作方式类似于“update”,但始终指定要更新的包的版本。
check-update --检查是否有可用的更新rpm软件包
upgrade [package1] [package2] [...]
upgrade-to [package1] [package2] [...]
distribution-synchronization [package1] [package2] [...]
remove | erase package1 [package2] [...] --删除指定的rpm程序包
list [...] --显示程序包的信息
info [...] --显示指定的rpm程序包的描述信息和概要信息
provides | whatprovides feature1 [feature2] [...]
clean [packages | metadata | expire-cache | rpmdb | plugins | all ] --清理yum过期的缓存
makecache
groupinstall group1 [group2] [...] --安装程序组group1和group2
groupupdate group1 [group2] [...] --更新程序组group1和group2
grouplist [hidden] [groupwildcard] [...] --查看可能批量安装的列表
groupremove group1 [group2] [...] --卸载程序组group1和group2
groupinfo group1 [...] --显示程序组group1信息
search string1 [string2] [...] --根据关键字string查找安装包
shell [filename] --进入yum的shell提示符[文件名]
resolvedep dep1 [dep2] [...] --显示rpm程序包1和2的依赖关系
localinstall rpmfile1 [rpmfile2] [...] --安装本地的rpm程序包1和2
(maintained for legacy reasons only - use install)
localupdate rpmfile1 [rpmfile2] [...] --显示本地rpm程序包1和2进行更新
(maintained for legacy reasons only - use update)
reinstall package1 [package2] [...]
downgrade package1 [package2] [...]
deplist [all|enabled|disabled] --显示rpm程序包的所有依赖
version [all | installed | available | group-* | nogroups* | grouplist | groupinfo]
history [info|list|packages-ilst|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
check
help [command]
(2)显示仓库列表:
repolist [all|enabled|disabled]
(3)显示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...]
(4)安装程序包:
install package1 [package2] [...]
reinstall package1 [package2] [...] (重新安装)
(5)升级程序包:
update [package1] [package2] [...]
downgrade package1 [package2] [...] (降级)
(6)检查可用升级:
check-update
(7)卸载程序包:
remove | erase package1 [package2] [...]
(8)查看程序包information:
info [...]
(9)清理本地缓存
clean [pakages | metadata | expire-cache | rpmdb | plugins | all]
(10)构建缓存:
makecache
(11)搜索:
search string1 [string2] [...]
以指定的关键字搜索程序包名及summary信息
(12)查看指定包所依赖的capabilities:
deplist package1 [package2] [...]
(13)查看yum事务历史
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
(14)安装及升级本地程序包:
localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
(15)包组管理的相关命令
groupinstall group1 [group2] [...]
groupupdate group1 [group2] [...]
grouplist [hidden] [groupwildcard] [...]
groupremove group1 [group2] [...]
groupinfo group1 [...]
(16)如何使用光盘当作本地yum仓库
①挂载光盘至某目录,例如/media/cdrom
#mount -r -t iso9660 /dev/cdrom /media/cdrom
②创建配置文件
[DVD]
name=
baseurl=
gpgcheck=
enabled=
(17)yum的命令行选项:
--nogpgcheck --禁止进行gpg check
-y --自动回答为"yes"
-q --静默模式
--disablerepo=repoidglob --临时禁用此处指定的repo
--enablerepo=repoidglob --临时启用此处指定的repo
--noplugins --禁用所有插件
【命令示例】
(1)# yum install -y samba --安装samba服务并且所有的提问默认"yes"
(2)# yum remove -y samba --卸载samba服务并且所有提问默认"yes"
(3)# yum list rpm* --用yum的功能找出以rpm为开头的程序包名称有哪些
(4)# yum clean all --清除yum仓库缓存
(5)# yum makeache --生成yum缓存
3.源码编译安装
前提:准备开发环境(编译环境)
安装软件包组"Development Tools"和"Development Libraries"
C代码编译安装三步骤
./configure:
(1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile
(2)检查依赖到的外部环境
make:
根据makefile文件,构建应用程序
make install
建议:安装前查看INSTALL,README
创建yum仓库:
createrepo [options] <directory>
Linux操作系统常用命令合集——第六篇-软件包操作(2个命令)的更多相关文章
- Linux操作系统常用命令合集——第三篇-系统管理操作(25个命令)
1.whoami [命令作用] 显示当前登录有效用户名称 [命令语法] whoami [选项] [常用选项] 无 [参数说明] 用户名称 [命令示例] 显示当前登录有效用户名称 # whoam ...
- Linux操作系统常用命令合集——第六篇-压缩和归档操作(16个命令)
1.gzip [命令作用] 压缩和解压缩文件 gzip/guzip/zcat zcat:不显式展开的前提下查看文本文件内容 zdiff/zgrep/zless/zmore [命令语法] gzip ...
- Linux操作系统常用命令合集——第五篇-磁盘和文件系统操作(15个命令)
1.fdisk [命令作用] 用于观察硬盘实体使用情况.也可以对硬盘分区. 对于一块硬盘来讲,最多只能管理15个分区 [命令语法] fidisk [选项] [参数] [常用选项] -b& ...
- Linux操作系统常用命令合集——第四篇-文件系统权限操作(5个命令)
1.umask [命令作用] 文件或目录创建时的遮罩码 [命令语法] umask [选项] [参数] [常用选项] -p --输出的权限掩码可直接作为指令来执行 -s --以符号方式 ...
- Linux常用命令合集
常用命令合集 命令选项和参数 Linux中的命令格式为:command [options] [arguments] //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个 ...
- 【转】Ubuntu常用软件合集
[转]Ubuntu常用软件合集 Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历.输入法.优客助手等易于上手的应用.也省的每次安装完原生的系 ...
- Timesten 日常管理命令合集
Timesten 日常管理命令合集 以下所有操作都是基于TT 11 版,早前版本本人没用过,命令是否适用我不清楚啊! 各类服务管理 一.TT的启停 停服务: 1.停止复制与cache 进程: ...
- es6常用基础合集
es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...
- [转载]VIM命令合集
Vim命令合集 http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 命令历史 以:和/开头的命令都有历史纪录, ...
随机推荐
- ALV报表——抓取工单长文
ABAP抓取工单长文 运行效果: 代码: *&---------------------------------------------------------------------* *& ...
- 将springboot项目移到内网出现的问题!
报找不到Jay包错误,在pom.xml文件中加这段 <repositories> <repository> <id>central</id> <u ...
- Python 在气象上的应用
Python 在气象上的应用 grug350关注 0.7892019.03.15 23:19:31字数 913阅读 1,024 为什么选择python 免费和开源,没有商业许可限制anaconda p ...
- Dev GridControl 子集合标题
显示效果: 设置: this.gridView3.OptionsView.ShowViewCaption = true; this.gridView3.ViewCaption = "资产明细 ...
- mysql8.0入坑体验
正常从官网下载,并且正常安装,直到安装完成.然后用navicate连接,发现报错信息如下所示Client does not support authentication protocol reques ...
- JavaScript作用域、作用域链 学习随笔
(本文是这些知识点的自我理解.写之余从头回顾,加深理解.取得更多收获之用.) 作用域(scope) 程序设计概念,通常来说,一段程序代码中所用到的名字(JS叫标识符(如变量名.函数名.属性名.参数.. ...
- 安装HANA Rules Framework(HRF)
1. 收集文档 1.1 SAP HANA Rules Framework by the SAP HANA Academy link 1.2 HANA Rules Framework (HRF) b ...
- 【Zookeeper】基础学习概览【汇总】
一.概述 1.1 简介 1.2 Zookeeper集群机制 1.3 Zookeeper特性 二.Zookeeper应用场景 三.Zookeeper数据结构 四.Zookeeper安装 五.Java操作 ...
- android开机启动流程说明
android开机启动流程说明 第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./ ...
- 【DRF框架】视图组件
基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, ...