1、linux软件包管理
linux软件包管理分为两种:RPM包管理和源码包管理,其中RPM包管理又有两种方式:①RPM命令管理,②YUM在线命令管理。
RPM包依赖关系:
1、树形依赖
2、环形依赖 (用一条命令同时装来解决)
3、模块依赖,模块依赖查询网址www.rpmfind.net。例如,安装某个rpm包的时候需要依赖模块libodbcinst.so.2,解决步骤:在rpmfind网址上查找到模块所在的rpm包,然后安装该包即可。
区别“包全名”与“包名”
1、包全名:mysql-5.1.73-7.el6.x86_64.rpm,对应的包名:mysql
2、使用包全名:操作的包还没有安装,使用包全名。如,安装和升级操作。
3、使用包名:操作的包已经安装完成,使用包名即可,其会搜索/var/lib/rpm/中的数据库。如,查询和卸载操作。
一、RPM包管理——rpm命令管理:
安装:rpm -ivh 包全名
选项:
-i 安装(install)
-v 显示详细信息(verbose)
-h 显示进度(hash)
--nodeps 不检查依赖性(导致功能缺失)
升级:rpm -Uvh 包全名
选项:
-U 升级(upgrade)
卸载:rpm -e 包名
选项:
-e 卸载(erase)
--nodeps 不检查依赖性
查询: rpm -qa //查询出所有已经安装的rpm包
rpm -q 包名 //查询包是否安装
rpm -qi 包名 //查询已经安装的软件信息
rpm -qip 包全名 //查询未安装包信息
rpm -ql 包名 //查询软件包文件安装位置
rpm -qlp 包全名 //查询rpm包准备把文件安装到哪些位置
rpm -qf 系统文件名 //查询系统文件属于哪个rpm包
rpm -qRp 包全名 //查询软件包的依赖性
选项:
-q 查询(query)
-a 所有(all)
-i 软件信息(information)
-p 未安装包(package)
-l 软件包文件安装位置列表(list)
-f 系统文件属于哪个软件包(file)
-R 软件包的依赖性(Requires)
校验:rpm -V 已安装的包名
选项:
-V 校验指定RPM包中的文件(Verify)
校验输出8个信息位,如果对应项的改变,则用点显示:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否改变
5 文件的md5校验和是否被改变
D 设备
L 文件路径是否改变
U 文件的所有者是否改变
G 文件的所属组是否改变
T 文件的修改时间是否改变
文件类型:
c 配置文件(config file)
d 普通文件(documentation)
g “鬼”文件(ghost file),很少见,就是该文件不应该被这个rpm包所包含
l 授权文件(license file)
r 描述文件(read me)
文件提取:rpm2cpio 包全名 | cpio -idv .文件的绝对路径 //注意这里的点“.”将rpm包中文件提取到当前目录中
说明:
rpm2cpio 将rpm包转换为cpio格式的命令
cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio 选项 < [文件|设备]
选项:
-i: copy-in模式,还原
-d: 还原时自动新建目录
-v: 显示还原过程
文件提取命令使用例子:加入我把系统中的/bin/ls命令误删除了,如何还原?
①rpm -qf /bin/ls //查询ls命令属于哪个软件包(别的机器,或网上)
②rpm2cpio coreutils-8.22-15.el7.x86_64.rpm | cpio -idv ./bin/ls //将ls提取到当前目录下
③cp ./ls /bin/ //把提取到的ls文件复制到/bin/目录下
二、RPM包管理——yum命令管理:
网络yum源配置文件(默认使用):/etc/yum.repos.d/CentOS-Base.repo
[base] 容器名称,一定要放在[]中
name 容器说明,可以自己随便写
mirrolist 镜像站点,这个可以注释掉
baseurl yum 源服务器地址。默认是CentOS官方的yum源服务器,可以更换成其他的yum源
enabled 此容器是否生效,如果不写或写成“enable=1”都生效,写成“enable=0”就不生效
gpgcheck 1指定RPM的数字证书生效,0则不生效
gpgkey 数字证书的公钥文件保存位置。不用修改。
查询:yum list //到网络服务器中查询所有可用rpm资源
yum search 关键字 //搜索服务器上所有和关键字相关的包
安装:yum -y install 包名 //安装,自动回答yes
升级:yum -y update 包名 //注意:如果没有包名,则会升级所有软件,包括内核。慎用升级所有。
卸载:yum -y remove 包名 //卸载。注意:yum会卸载所有依赖包,极有可能卸载掉共同依赖包,甚至是系统依赖包。服务器安装原则,最小化安装,不安装多余软件,不用yum卸载。
yum软件组管理:
查询组:yum grouplist //列出所有可用的组
安装组:yum -y groupinstall “软件组名” //安装组
卸载组:yum -y groupremove “软件组名” //卸载指定软件组
光盘yum源搭建步骤:
①挂载光盘
mount /dev/cdrom /mnt/cdrom/
②让网络yum源文件失效(enable=0,方便的做法是“改名”,yum源是靠检测“.repo”后缀来读取配置文件的)
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
③修改光盘yum源文件(注意,配置文件要严格准守默认格式)
配置baseurl=file://绝对路径 //如:file:///mnt/cdrom
使用enable=1,让文件生效
三、源码包管理:
一般来讲,包括“配置”“编译”“安装”,拿到一个源码包以后,一般打开其“INSTALL”或“README”文件,里面会有相关的编译安装说明。
1、linux软件包管理的更多相关文章
- Linux软件包管理
Linux软件包管理 Linux软件包管理主要有2类:是二进制包管理.源码包管理 二进制包管理 主要有RPM和YUM两种 RPM包管理 安装 --ivh:-v ,-vv,-vvv显示的安装信息依次详细 ...
- Linux 软件包管理
简介: linux中软件包的管理随着linux版本的不同而不同,一般RPM和DPKG是最常见的两类软件包管理工具.分别应用基于rpm软件包的linux发行版本和基于deb软件包的linux发行版本. ...
- linux软件包管理(下)
在vi配置文件的编写的时候我们发现#并不能注释掉一行的信息 那什么才是linux标准的注释信息呢 查看软件对应的软件包命令 rpm –ap| grep vim 大多example是需要的事例文档 双 ...
- linux软件包管理(上)
1.二进制包管理(RPM,yum) 2.源代码包的安装 3.脚本安装(shell或java) 4.Debian系列的linux软件包管理简介 在下载rmp包的时候注意检查硬件平台是否正确,如果硬件平台 ...
- Linux系列教程(十三)——Linux软件包管理之源码包、脚本安装包
上篇博客我们讲解了网络yum源和光盘yum源的搭建步骤,然后详细介绍了相关的yum命令,yum 最重要是解决了软件包依赖性问题.在安装软件时,我们使用yum命令将会简单方便很多.我们知道yum命令只能 ...
- Linux软件包管理之源码包、脚本安装包
目录 1.源码包和RPM包的区别 RPM包和源码包默认安装位置: 由于安装位置不同带来的影响 2.源码包安装 ①.安装准备 ②.安装注意事项 ③.安装源码包 3.源码包卸载 4.脚本安装包 5.总结 ...
- Linux(3)- 用户管理、文件与目录权限、常用命令、Linux软件包管理
一.用户管理 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源. 普通用户 ...
- linux笔记:linux软件包管理,软件安装位置
linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...
- Linux系列教程(十一)——Linux软件包管理之RPM命令
前面我们介绍了Linux系统的常用命令介绍和文本编辑器vim命令的介绍.那么从这篇博客开始,我们会正式的讲解Linux的系统管理,首先要讲的是Linux的软件包管理. 1.Linux软件包分类 一.源 ...
随机推荐
- Debian 8 Jessie desktop on arm
/********************************************************************* * Debian 8 Jessie desktop on ...
- 【剑指offer】不分行从上到下打印二叉树,C++实现(层序遍历)
原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印.例如: 图 不分行从上往下按层打印二叉 ...
- 【剑指offer】之字形打印二叉树,C++实现
原创文章,转载请注明出处! 本题牛客网地址 博客文章索引地址 博客文章中代码的github地址 1.题目 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打 ...
- 博通BCM53101M以太网交换芯片原理解析
Quality of Service 服务质量 BCM53101M的QoS为每个端口提供6个内部队列以支持6种不同的流量类别(traffic class, TC).在流量拥塞的情况下,可通过拥塞管理, ...
- Eclipse自动补全设置与Eclipse源代码下载
以前使用VisualStudio和Sublime写代码的时候有很完善的代码提示,但是最近开始使用Eclipse弄JAVA的时候发现它的代码提示不是很习惯.上网找了一些资料,修改了代码提示的方式,记录在 ...
- tensorflow图像基本处理
tensorflow库提供的专门的图片处理库,以下只是部分示例,更多函数请参照源码'\tensorflow_api\v1\image__init__.py' 加载图像 方式1: 使用tf.gfile. ...
- (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
if (this == null) Console.WriteLine("this is null"); 这句话一写,大家一定觉得荒谬,然而 if 内代码的执行却是可能的!本文讲介 ...
- PHP 生成类似 SqlServer NEWID() 全局唯一标识符
最近在对接SqlServer中对方有一个字段要求 SqlServer 中 有一个 NEWID() 就是生成36位的 唯一标识符 -> 8CBD3198-297D-4037-A859-B27BB ...
- 嵌入式视频采集编程思路(Video 4 Linux)-转
转自:http://zyg0227.blog.51cto.com/1043164/271954 1. linux 内核有video for linux简称V4L.V4L是Linux影像系统与嵌入式影 ...
- (转)如何获得当前ListVIew包括下拉的所有数据?
ListView listView = activity.getListView();获取的仅仅是当前屏幕显示的list,但是具有下拉信息,不在当前屏幕,但是下拉显示的数据无法或得到.谁知道如何获得当 ...