Linux 软件包安装管理
转自:http://www.cnblogs.com/Quains/archive/2012/01/03/2311049.html
本文主要是记录下RedHat系列的软件包管理。
内容分为以下三个部分:二进制包的管理,源代码包的管理,脚本安装
一、二进制包的管理
1.1概念
主要有RPM和YUM这两种包管理。
两种包管理各有用处,其中主要区别是:YUM使用简单但需要联网,YUM会去网上的YUM包源去获取所需要的软件包。而RPM的需要的操作精度比较细,需要我们做的事情比较多。
1.1.1RPM
主要的操作
1)卸载
rpm –e [--nodeps] sudo
[解析] 需要注意的是在卸载软件包的时候若和其它包有依赖关系,可以用--nodeps来强制卸载
2)安装
rpm –i[v|h] [--excludedocs |prefix |test |replace[pkgs |files] |nodeps] sudo
[解析] i为安装,v为显示详细信息,h为hash是进度信息
--excludedocs 不安装软件包的文档文件
--prefix PATH 将软件包安装到指定目录
--test 只对安装进行测试,并不实际安装(通常用来看下需要的依赖项)
--replace[pkgs|files] 当出现冲突时或想强制覆盖时可以使用
--nodeps 不考虑依赖关系,强制安装。(这样比较麻烦,而且通常无法使用。这也是使用RPM的一些不方便的地方,而YUM则解决了这个问题,在安装的时候会自动将所需要的都一起安装了)
【相关内容:】安装有时候会使用光驱安装,这里涉及到挂载点的概念。
在linux系统中,所有的设备都被看作文件,所以光驱也被看作文件。而要让系统不能直接访问这个文件,这时需要一个挂载点(通常是一个空文件,仅仅提供一个渠道,来连接系统和设备),然后系统就可以通过访问挂载点来访问光驱设备了。
挂载光驱的具体操作:
mkdir /mnt/cdrom 生成一个挂载点目录
mount /dev/cdrom /mnt/cdrom 讲dev中的cdrom挂载到挂载点上
3)查询
rpm –q[a |f |p |i |l |d |c] sudo
[解析]
-a 查询所有已安装的软件包
-f 查询 文件所属软件包
-p 查询软件包(通常用来看下还未安装的软件包)
-i 显示软件包信息
-l 显示软件包中的文件列表
-d 显示被标注为文档的文件列表
-c 显示被标注为配置文件的文件列表
[tips] 通常可以配合管道 | more [grep sudo] 来使用,使得结果更易读。
4)校验
rpm -V sudo
结果解析:S.5.L.T….
S 为文件大小
5 为文件的md5校验值
L 链接文件
T 文件创建时间
D 设备文件
U 文件的用户
G 文件的用户组
M 文件的权限
5)软件包文件提取
解压指定文件到当前目录
rpm2cpio /../...rpm |cpio –idv ./../..
1.1.2YUM
需要联网,操作一RPM类似,只是会自动安装依赖项。
主要操作:
1)安装 yum install
2) 检测升级 yum check-update
3) 升级 yum update
4) 软件包查询 yum list
5) 软件包信息 yum info
6) 卸载 yum remove
7) 帮助 yum -help、man yum
1.2实例
1.2.1从光盘中提取二进制包并恢复丢失的文件(用inittab做实验)
先建立一个挂载点并挂载


创建一个备份文档并删除inittab

通过挂载点读取光盘中的二进制包到当前目录

复制恢复被删除的文件

二、源代码包的管理
2.1源代码包的安装
1)解压解包
tar -xzvf 源代码包
[解析]
x为解包、z为解压(仅适合gzip,bz2则先解包再bunzip解压)、v显示过程、f指定被解压包名
2)配置
进入解压后的目录,用 ./configure [—prefix=/usr/local/filname] 来配置,这个过程主要是收集系统信息、设置安装目录等(卸载的时候只需将这个目录删除则可)
3)编译
make
4)安装
make install
三、脚本方式安装
1)解包解压
2)进入解压后的目录,查看README (vi READEME)获得安装方法
3)运行第二步获取的信息,通常是运行一个安装shell脚本(.sh)
Linux 软件包安装管理的更多相关文章
- Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)
apt list *python* Nosee123关注赞赏支持 Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...
- Linux软件安装管理之——dpkg与apt-*详解
Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件安装管理之--源码安装详解> - -<Linux软件安装管 ...
- Linux软件安装管理
1.软件包管理简介 1.软件包分类 源码包 脚本安装包 二进制包(RPM包.系统默认包) 2.源码包 源码包的优点是: 开源,如果有足够的能力,可以修改源代码 可以自由选择所需要的功能 软件设计编译安 ...
- Linux之软件包安装管理
软件包分类: 源码包:脚本安装包(源C代码) 二进制包(rpm包,系统默认包) 源码包 1.源码包优点 开源,如果有足够的能力,完全可以修改源代码 可以自己选择所需要安装的功能 软件是编译安装,所以更 ...
- Linux软件安装管理概述
介绍如何在Linux字符界面下安装软件 课程大纲: 一.软件包管理简介 二.rpm命令管理 三.yum在线管理 四.源码包管理 五.脚本安装包
- Linux软件包安装
rpm命令 命名方式 name-VERSION-release.arch.rpm 常见的arch: x86: i386 i486 i586 i686 x86_64: x64 ...
- Linux软件安装管理---源码安装
在Linux平台下,软件包的类型可以划分为两类:源码包.二进制包. 源码包: 即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包). 二进制包: 如 Red Hat ...
- Linux软件安装管理 - CentOS (三)
1. 软件包管理简介 2. rpm命令管理(Redhat Package Manager) 3. yum在线安装 4. 源码包管理 4.1 源码包和RPM包的区别 4.1.1 区别 安装前:概念上的区 ...
- Linux软件安装管理 - CentOS (二)
1. 软件包管理简介 2. rpm命令管理(Redhat Package Manager) 3. yum在线安装 3.1 yum源文件 vi /etc/yum.repos.d/CentOS-Base. ...
随机推荐
- MyBatis 返回新增数据的自增id
<insert id="save" parameterType="Vote" useGeneratedKeys="true" keyP ...
- 静默方式安装window oracle
1. setup.exe -silent -responseFile "C:\app\software\WIN64_11204\RSP\db_install_window.rsp" ...
- Android OpenGL ES(三)OpenGL ES API 命名习惯 .
OpenGL ES是个跨平台的3D图形开发包规范,最常见的实现是采用C语言实现的,Android OpenGL ES 实现上是使用Java 语言对底层的C接口进行了封装,因此在android.open ...
- CodeForces 510B DFS水题
题目大意:在图中找到一个字符可以围成一个环(至少有环四个相同元素) 题目思路:对当前点进行搜索,如果发现可以达到某个已经被查找过的点,且当前点不是由这个点而来,则查找成功. #include<c ...
- PID控制学习笔记(一)
比例控制往往会存在稳态误差(该结论适用于0型对象) 由比例度的定义和意义,比例增益Kc越大,即直线的斜率越大,则,越快达到平衡,稳态误差越小,因此在保证系统相对稳定性一定的条件下,总是希望比例增益越大 ...
- webview h5页面 关闭
说明:在 ios 安卓 客户端上的h5页面执行完毕关闭h5页面 引入的js在文件中的xhdoctor_mobile.rar
- CSS的命名
使用约定俗称的命名规范有助于我们的代码阅读和维护. 常用命名: wrap 外套 ———————— 用于最外层 container 容器 ———————— 和外套相似,用于做容器 he ...
- ubuntu上的mysql数据库双机备份设置
配置环境: myslq 5.5.3 + ubuntu server 12.04 一.配置MySQL主服务器(192.168.0.1) 1.增加一个账号专门用于同步 1 mysql>grant r ...
- Java 堆内存(Heap)[转]
将jvm内存很不错的文章,转自 堆(Heap)又被称为:优先队列(Priority Queue),是计算机科学中一类特殊的数据结构的统称.堆通常是一个可以被看做一棵树的数组对象.在队列中,调度程序反复 ...
- Nginx代理外网映射
外网映射内网端口8080, 外网访问使用端口8379: nginx监听8080和80端口 #user nobody; worker_processes ; #error_log logs/error. ...