Linux入门基础(七):Linux软件管理基础
源代码形式
- 绝大多数开源软件都是直接以源代码形式发布
- 源代码一般会被打包成tar.gz的归档压缩文件
- 程序源代码需要编译成为二进制形式之后才能够运行
- 源代码基本编译流程 :
- ./configure 检测编译环境、相关库文件以及配置参数并生成makefile
- make 对源代码进行编译,生成可执行文件
- make install 对生成的可执行文件安装到计算机中
- 源代码形式的软件使用起来较为麻烦,但是兼容性及可控制性较好
- 开源软件一般都会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系
- 源代码形式的缺点:操作复杂、编译时间长、极容易出现错误
- 源代码形式的优点:使用所有系统、可定制
RPM
RPM通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化源软件的安装管理
RPM设计目标
- 使用简单
- 使用单一软件包格式文件发布(.rpm文件)
- 可升级
- 追踪软件依赖关系
- 基本信息查询
- 软件验证功能
- 支持多平台
RPM命名规范
linuxxxx-1.0.1-30.el6.i686.rpm
软件名 版本号 系统和平台
RPM基础命令
- 安装软件:rpm -i software.rpm
- 卸载软件:rpm -e software
- 升级形式安装: rpm -U software-new.rpm
- rpm支持通过http、ftp协议安装软件
- rpm -ivh http://www.linux.com/software.rpm
- -v 显示详细信息
- -h 限制进度条
RPM查询
rpm -qa 列出所有安装的rpm软件
rpm -qf fileName 查询目标文件属于哪个rpm包
rpm -qi packageName 查询指定已安装rpm软件的信息
rpm -ql packageName 查询指定已安装rpm软件包含的文件
rpm -qip software.rpm 未安装的rpm文件的信息
rpm -qlp software.rpm 未安装的rpm文件包含的文件
(加一个p就是查看未安装的了)
RPM验证
软件在传播的过程中可能会被恶意修改,所以为了安全,需要对软件进行验证
验证一般使用非对称加密算法,所以需要一个秘钥
导入秘钥:
rpm --import xxx-xxx-xxx-xxx
验证rpm文件
rpm -K software.rpm
验证已安装的软件
rpm -V software
YUM
rpm软件包形式管理软件虽然方便,但是需要手工解决软件包的依赖关系,很多时候安装一个软件需要首先安装1
个或多个(有时多达上百个)其他软件,手工解决时很复杂。使用yum可以解决这个问题。
YUM(Yellowdog Updater Modified)是一个RPM的前端程序,主要目的是设计用来自动解决RPM的依赖关系问
题。其特点如下:
- 自动解决依赖关系
- 可以对RPM进行分组,并基于组进
- 行安装操作
- 引入仓库概念,支持多个仓库
- 配置简单
YUM仓库
YUM引入了仓库(repo)的概念、仓库用来存放所有现有的rpm软件包,当使用yum安装一个rpm软件时候,如果存在依赖关系,会自动在仓库中查找依赖软件并安装。
- 仓库可以是本地的,也可以通过HTTP、FTP或NFS形式使用集中的、统一的网络仓库(如仓库中没有需要的依赖关系软件包,yum也无法解决软件依赖问题)
- yum使用仓库保存管理rpm软件包,仓库的配置文件保存在/etc/yumrepos.d/目录下,格式如下:
- [linuxcast]
name=This is abc repo
baseurl=http://www.abc.com/i386/rpms/(可以是互联网上的yum仓库,也可以是本地的一个文件目录)
enabled=1(1:启用该仓库,0:禁用该仓库)
gpgcheck=1(是否打开校验。防止rpm包进行恶意修改)
- [linuxcast]
- 仓库可以使用file,http,ftp,nfs方式
- yum配置文件必须以.repo结尾
- 一个配置文件内可以保存多个仓库的配置信息
- /etc/yum.repos.d/目录下可以存在多个配置文件
YUM查询
通过以下命令使用yum进行查询操作:
yum search keyword 搜索
yum list (all | installed | recent | updates) 列出全部、安装的、最近的、软件更新
yum info packagename 显示指定软件的信息
yum whatprovides filename 查询哪个rpm软件包含目标文件
创建YUM仓库
可以通过以下方式手工创建yum仓库:
将所有rpm文件拷贝到一个文件夹中
通过rpm命令手工安装createrepo软件
运行命令createrepo -v /rpm-directory
如果有分组信息,则在运行命令的时候使用-g参数指定分组文件
createrepo -g /tmp/*compsxml /rpm-directory
CentOS/RHEL的分组信息保存在光盘repodata/目录下,文件名以comps.xml结尾的xml文件
创建好之后本机可以通过file方式直接使用,如果需要作为对外的YUM仓库服务器,可以通过HTTP,FTP或NFS协议共享出去
YUM CACHE
yum为了提高速度会通过缓存很多信息,但是有时候缓存会造成一些故障,可以通过以下命令来清除缓存:
yum clean all
每次运行安装或查询类命令会重建yum缓存
Linux入门基础(七):Linux软件管理基础的更多相关文章
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- Linux入门-9 软件管理基础(CentOS)
0. 源代码形式 1. RPM软件包管理 RPM RPM查询 RPM验证 2. YUM软件管理 YUM基本命令 YUM查询 创建YUM仓库 0. 源代码形式 绝大多数开源软件都是直接以源代码形式发布 ...
- 零基础Linux入门之《Linux就该这么学》
本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...
- 3,linux入门到上手-文件权限管理与配置
linux入门-文件权限管理与配置 一.关于linux的操作命令一般格式如下: 1,一行指令中第一个输入的部分绝对是"指令(command)"或"可可执行文件案(例如批次 ...
- lilybbs-faq - linux入门以及百合 Linux 版精华区导读
QUESTIONS 问题与解答 不需要任何命令的简单介绍 历史 (APUE 提到了1990年之前的unix历史,还有各种标准 ANSI ISO IEEE posix xpg3.... 但是linux ...
- linux入门教程(五) Linux系统的远程登录
首先要说一下,该部分内容对于linux初学者来讲并不是特别重要的,可以先跳过该章节,先学下一章,等学完后再回来看这一章. Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在ID ...
- Linux文件管理浅析(一) _磁盘管理基础
本文主要讨论一些磁盘管理相关的基本概念,同时也是这一系列文章的第一篇,就是下图中的最下一层的一部分. 在Linux中,SATA/USB/SCSI接口都是使用SCSI模块实现的,所以使用这些接口的硬盘在 ...
- Linux下实现高可用软件-Keepalived基础知识梳理
Keepalived介绍 Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepali ...
- Linux入门进阶第二天——软件安装管理(上)
一.大纲介绍 这里介绍的仅仅是两大家族之一的RPM,关于Debian家族的DPKG,请参考:http://justcoding.iteye.com/blog/1937171 二.简介 软件包分类: 源 ...
随机推荐
- September 19th 2017 Week 38th Tuesday
Live boldly. Push yourself. Don't settle. 勇敢生活,突破自我,永不设限! Don't indulge in the past, whether it was ...
- 微信JSSDK与录音相关的坑
微信JSSDK与录音相关的坑 最近一直在做微信JSSDK与录音相关的功能开发, 遇到了各种奇尺大坑, 时不时冷不丁地被坑一道, 让我时常想嘶吼: "微信JSSDK就是个大腊鸡!!!!!!!! ...
- 个人作业2——集大通APP案例分析
个人作业2——集大通APP案例分析 产品:集大通 我认为这个是我们学校的APP,我们应该支持一下. 一.个人体验 1.下载并使用,描述最简单直观的个人第一次上手体验. ①界面美观,可以感受到丰富的校园 ...
- BZOJ1029:[JSOI2007]建筑抢修(贪心,堆)
Description 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的 入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快 ...
- 20155314 2016-2017-2 《Java程序设计》第9周学习总结
20155314 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型和自定义 ...
- Linux服务器上安装JDK小白教程
一.环境 VMware12 Pro CentOS-6.7-i386-bin-DVD1 jdk-8u151-linux-i586 二.详细安装步骤 前提:需要卸载自己Linux上的jdk rpm -qa ...
- Python自动化之ajax返回表单验证的错误信息和序列化扩展
form内置序列化错误 如果使用form提交数据的时候,可以直接返回错误信息到模板里面进行渲染 但是如果使用ajax处理呢 from django import forms from django.f ...
- Oracle(一)执行计划
目录 一.什么是执行计划 二.如何查看执行计划 三.如何读懂执行计划 1. 执行顺序的原则 2. 执行计划中字段解释 3. 谓词说明 4. JOIN方式 4.1 HASH JOIN(散列连接) 4.2 ...
- P1474 货币系统 Money Systems
题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单 ...
- NYOJ 44 字串和 (最大字串和 线性dp)
题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=44 子串和 时间限制:5000 ms | 内存限制:65535 KB 难度:3 ...