Linux之软件包安装管理
软件包分类:
- 源码包:脚本安装包(源C代码)
- 二进制包(rpm包,系统默认包)
源码包
1.源码包优点
- 开源,如果有足够的能力,完全可以修改源代码
- 可以自己选择所需要安装的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定,效率也更高
- 卸载方便
2.源码包缺点
- 安装步骤比较多,尤其安装比较大的软件时,很容易出错(特别是拼写错误)
- 编译时间过长
- 编译安装,出错的话,新手很难解决
rpm包
1.rpm包优点
- 包安装管理系统简单,通过几个命令就可以实现包的安装,升级,查询,卸载
- 安装速度比安装源码包快得多
2.rpm包缺点
- 通过编译,不能再看点源代码
- 功能选择性不如源代码包灵活
- 依赖性
rpm包命名规则:
httpd-2.2.15-15.e16.entos.1.i686.rpm | |
httpd | 软件包名 |
2.2.15 | 软件版本 |
15 | 软件发布次数 |
e16.centos | 适合的Linux平台 |
i686 | 适合的硬件扩展平台 |
rpm | rpm包扩展名 |
所有的包都是在ios/pakages中
rpm依赖性
- 树形依赖:
- 环形依赖:a->b->c->a,解决办法,用一个安装命令同时将a,b,c同时安装即可
- 模块依赖:模块依赖查询网站:www.rpmfind.net
软件包库依赖:只要是有“.so.数字”结尾的包都是库依赖包,这种库依赖包是某个软件包中的一部分。在www.rpmfind.net中寻找依赖的软件包。
rpm包安装:先将ios镜像导入CD/DVD中,同时在linux中用:mount /dev/sr0 挂载ios镜像,然后进入到pakages文件夹中。
rpm -ivh 包全名:选项:-i (install) 安装 -v (verbose) 显示详细信息
-h (hash) 显示进度 --nodeps 不检测依赖性(不用)
rpm -Uvh 包全名: -U(upgrade)升级包
rpm -e 包名: -e (erase) 卸载 ;包卸载;卸载命令会将依赖包都卸载了,可能会影响其让rpm的使用,所有一般不会卸载。
以上用yum命令比较方便,但是yum基本没有查询方法。一般都是用rpm查询。
rpm查询:
1.rpm -q 包名: -q (query) :查询是否按照包
2.rpm -qa:-a (all) 查询所有已安装的rpm包。
3.rpm -qi 包名(查询包信息):-i (information) 查询软件包信息 -p (package) 查询未安装包信息。这些信息都是组建这个包时候就有的。
4.rpm -ql 包名(查询包中文件安装的位置): -l (list) 列表 -p (package) 查询未安装包信息。
5.rpm -qf 系统文件名(查询系统文件属于哪个rpm包): -f (file)查询系统文件属于哪个软件包。
6.rpm -qR 包名(查询软件包的依赖性,需在package目录下):
- -R (require)查询软件包的依赖性;
- -p (package)查询未安装包的的依赖性
7.rpm -V (rpm包校验,检验rpm包是否有修改):-V (Verified)
验证内容中的八个数字字符信息具体内容如下:
S | 文件大小是否改变 |
M | 文件的类型或文件的权限(rwx)是否改变 |
5 | 文件内容是否改变 |
D | 设备中的从代码是否改变 |
L | 文件路径是否改变 |
U | 文件所有者是否改变 |
G | 文件所属组是否改变 |
T | 文件修改时间是否改变 |
8.rpm2cpio 包全名 | \cpio -idv .文件绝对路径。(rpm包文件提取,将rpm包转换为cpio格式的命令) 从包中提取指定的文件 \代表换行 .代表将指定文件提取到当前目录中
用来修复被误删除的包。例如:
rpm -qf /bin/ls #查询s命令属于哪个软件包
mv /bin/ls /tmp #造成ls命令误删除假象
rpm2cpio /mnt/cdrom/Packages/coreutils-.............rpm | cpio -idv ./bin/ls
#提取rpm包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin/ #把ls命令复制到bin目录,修复文件丢失
cpio:是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件。
cpio 选项 < [文件|设备]: -i copy-in模式,还原 -d 还原是自动创建目录 -v 显示还原过程。
rpm包全名和包名:
- 操作的包是没有安装的软件包时,使用包全名,而且要注意路径。
- 操作的是已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库。
Linux之软件包安装管理的更多相关文章
- Linux 软件包安装管理
转自:http://www.cnblogs.com/Quains/archive/2012/01/03/2311049.html 本文主要是记录下RedHat系列的软件包管理. 内容分为以下三个部分: ...
- Linux系统软件包的管理(4)
虽然使用源码编译安装可以具有提高速度个性化的定制等优点,但对于 Linux发行商来说,则不容易管理软件包,毕竟不是每个人都会进行源码编译的,如果能够将软件预先在相同的硬体与系统上面编译好在发布的话,不 ...
- ◆◆◆◆◆◆◆◆◆◆◆linux下软件包的管理◆◆◆◆◆◆◆◆◆◆◆◆◆◆
查看与制定的路径名相匹配的软件包 [root@localhost certs]# which ls alias ls='ls --color=auto' /bin/ls [root@localhost ...
- Linux:软件包安装
软件包安装 一.rpm安装 1.挂载系统:mount /dev/cdrom/ /mnt/cdrom/ 2.进入相应的目录(Centos7 为Packages,有一些是Server):cd /mnt/c ...
- 适用于windows10 Linux子系统的安装管理配置 How To Management Windows Subsystem for Linux WSL
什么是WSL Windows Subsystem for Linux 简称WLS,适用于Linux的Windows子系统,可以直接在Windows上运行Linux环境(包括大部分命令行工具) Linu ...
- Linux下软件包安装
编译dbus下载地址 :http://dbus.freedesktop.org/releases/dbus/tar zxvf dbus-1.10.0echo ac_cv_have_abstract_s ...
- Linux中ansible批量管理软件部署及剧本编写
服务器版本信息: Centos6.9 [root@db02 ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29: ...
- Linux系统软件包之---Apache
当前互联网主流web服务说明 静态服务: apache 中小型静态web服务的主流,web服务器中的老大哥 nginx 大型新兴网站静态web服务主流,web服务器中的初生牛犊 lighttpd 静态 ...
- 细说Linux下软件包的安装与管理
一 源码安装方式 由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache.tomcat.php等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...
随机推荐
- UOJ#449 喂鸽子
题意:有n个鸽子,你每秒随机喂一只鸽子,每只鸽子吃k次就饱了.求期望多少秒之后全饱了.n <= 50, k <= 1000. 解:有两种做法.一种直接DP的n2k做法在这.我用的是Min- ...
- csp-s模拟测试51(b)attack,tree题解
题面:https://www.cnblogs.com/Juve/articles/11598286.html attack: 支配树裸题? 看一下支配树是什么: 问题:我们有一个有向图(可以有环),定 ...
- CF 981C Useful Decomposition
题面 题目大意 给定一棵树,要求划分出几条链,使这几条链交于一点. 解题思路 因为所有链都要交于一点,所以必须交于一个度数最多的点.这样就形成了一个菊花形.然后从这个点出发到它的子树,判断子树的度数是 ...
- 【DM642学习笔记二】dsp基础实验:发光二级管的显示 led.c
1,OSDFPGA配置一个专用的8位寄存器控制指示灯亮灭,访问地址为90080017h,由电路图可知低电平点亮. 2,程序运行时,可直接editmemory.即修改90080017h地址的值(可在Ed ...
- request.getSession().getServletContext().getRealPath("upload/" ); 获取不到 tomcat 服务器目录
上传一个文件,找不到该文件的位置 设置上传的文件是在项目中的话 可以通过查找项目的路径锁定上传的文件路径 解决步骤: 可以通过jsp页面 打印获取项目的物理路径 控制台即可输出项目路径 这只是找了了上 ...
- 关于python的列表操作(一):取值,增加,修改,删除
# 列表操作 name_list = ["wang", "niu", "bai", "sui"] # 取值 print( ...
- docker启动redis设置密码
docker run --name picker-redis -p 6379:6379 -d redis --requirepass "认证密码"
- Hibernate-一对多|多对一-多对多
1 一对多|多对一 1.1 关系表达 表中的表达 表中的表达 实体中的表达 orm元数据中表达 一对多 多对一 1.2 操作 操作关联属性 1.3 进阶操作 级联操作 结论: 简化操作.一定要用,s ...
- MySQL系列(七)--SQL优化的步骤
前面讲了如何设计数据库表结构.存储引擎.索引优化等内存,这篇文章会讲述如何进行SQL优化,也是面试中关于数据库肯定会被问到的, 这些内容不仅仅是为了面试,更重要的是付诸实践,最终用到工作当中 之前的M ...
- 专访阿里云资深技术专家黄省江:中国SaaS公司的成功之路
笔者采访中国SaaS厂商10多年,深感面对获客成本巨大.产品技术与功能成熟度不足.项目经营模式难以大规模复制.客户观念有待转变等诸多挑战,很多中国SaaS公司的经营状况都不容乐观. 7月26日,阿里云 ...