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等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...
随机推荐
- 2、设备树的规范(dts和dtb格式)
第01节_DTS格式(1) 语法:Devicetree node格式:[label:] node-name[@unit-address] { [properties definitions] ...
- 如何解决mysql服务器load高
.登录主机 # ssh hostname .确定是否是mysql导致 # top .查看是哪些sql正在慢查询 # mysql -h hostname -P port -u username # sh ...
- Java开源诊断工具 Arthas 发布v3.1.0
Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可.此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性 ...
- css3之 渐变
CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果.但是,通过使用 CSS3 渐变(gradients),你可以减少下载的事件和 ...
- webService学习五(插入片,---监控方法)
WS Explorer工具的使用: 1- web服务浏览器 2-将对应的路径copy到这里 - 3- 4-- 5-- 6--请求的数据: 7--相应数据 二.使用TCP/IP Monitor-拦截HT ...
- Armijo线性搜索
用“人话”解释不精确线搜索中的Armijo-Goldstein准则及Wolfe-Powell准则 line search(一维搜索,或线搜索)是最优化(Optimization)算法中的一个基础步骤/ ...
- 关于Python3 打印中文乱码问题
解决方案有两种: 在命令行前指定编码 $ PYTHONIOENCODING=utf-8 python test.py hello world 你好,世界 在代码中指定编码 import io impo ...
- 洛谷 P3956 棋盘
题目描述 有一个m ×m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的(不能是无色的), 你只能向上 ...
- c++新特性实验(2)类型特性
1. 基本类型 1.1 增加 long long long long int signed long long signed long long int unsigned long long unsi ...
- 【python之路32】python异常处理
一.捕获异常 1.try except #!usr/bin/env python # -*- coding:utf-8 -*- num = input("请输入一个数字:") t ...