0. 源代码形式

  • 绝大多数开源软件都是直接以源代码形式发布
  • 源代码一般会被打包成tar.gz的归档压缩文件
  • 程序源代码需要编译成为二进制形式之后才能够运行使用
  • 源代码级别编译流程:
    1. ./configure 检查编译环境、相关库文件以及配置参数并生成makefile
    2. make 对源代码进行编译,生成可执行文件
    3. make install 将生成的可执行文件安装到计算机中
  • 源代码形式的软件使用起来较为麻烦,但是兼容性及可控制性较好
  • 开源软件一般都会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系

1. RPM软件包管理

  • 源代码形式的缺点:操作复杂、编译时间较长、极容易出现错误
  • 源代码形式的优点:适用所有系统、可定制
  • 为了方便使用,Erik Troan和Marc Ewing开发了RPM(Readhat Package Manager)
  • RPM通过将源代码基于特定平台系统编译为可执行文件,并保存依赖关系,从而简化开源软件的安装管理
  • RPM设计目标如下:
    • 使用简单
    • 使用单一软件包格式文件发布(.rpm)
    • 可升级
    • 追踪软件依赖关系
    • 基本信息查询
    • 软件验证功能
    • 支持多平台

RPM

  • 命名规范:name-version.os.platform.rpm
  • RPM基本命令:
    • 安装:rpm -i package.rpm
    • 卸载:rpm -e package
    • 升级:rpm -U package.rpm
    • 在线安装:rpm -ivh http://www.xxx.com/package.rpm
    • -v 显示详细信息
    • -h 显示进度条

RPM查询

  • rpm -qa 列出所有安装的rpm软件
  • rpm -qf filename 查询目标文件属于哪个rpm包
  • rpm -qi packagename 查询指定已安装rpm软件信息
  • rpm -ql packagename 查询指定已安装rpm软件包含的文件
  • rpm -qip package.rpm 查询rpm文件的信息
  • rpm -qlp package.rpm 查询rpm文件包含的文件

RPM验证

  • 出于安全考虑
  • 一般使用非对称加密算法,所以需要一个密钥
  • 导入密钥:rpm --import RPM-GPG-KEY-CentOS-6
  • 验证rpm文件:rpm -K package.rpm
  • 验证已安装软件:rpm -V software

2. YUM软件管理

YUM(Yellowdog Updater, Modified)是一个RPM的前端程序,而RPM是一种软件封装形式,它主要用来自动解决RPM的依赖关系问题。其他特点如下:

  • 自动解决依赖关系
  • 可以对RPM进行分组,并基于组进行安装操作
  • 引入仓库概念,支持多个仓库
  • 配置简单

YUM的仓库(repo)用来存放所有现有的rpm软件包,当使用yum安装一个rpm软件的时候,如果存在依赖关系,会自动在仓库中查找依赖软件并安装。

仓库可以是本地的,也可以通过HTTP, FTP或NFS形式使用集中的、统一的网络仓库。

  • YUM使用仓库保存管理rpm包,仓库的配置文件保存在/etc/yum.repos.d/目录中,格式如下:
[LinuxCast]
name = This is LinuxCast.net rpm soft repo
baseurl = http://www.linuxcast.net/yum/centos/6/i386/rpms/
enabled = 1
gpgcheck = 1
  • 仓库可以使用file, http, ftp, nfs方式
  • yum配置文件必须以.repo结尾
  • 一个配置文件内可以保存多个仓库的配置信息
  • /etc/yum.repos.d/目录下可以存在多个配置文件

YUM基本命令

  • yum install
  • yum remove
  • yum update

YUM查询

  • yum search keyword
  • yum list (all|installed|recent|updates)
  • yum info packagename
  • yum whatprovides filename 查询文件包含在哪个软件包中

创建YUM仓库

......

Linux入门-9 软件管理基础(CentOS)的更多相关文章

  1. 【Linux】apt软件管理和远程登录

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 1. apt 介绍 apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具.在 Ubuntu 下,可以使用 ap ...

  2. Linux进阶之软件管理

    本节内容 一.rpm:管理linux软件程序的 特点:安装方便 不能解决依赖关系 1.安装软件: -i: -v: -h: rpm -ivh 包名 2.卸载软件 -e: 清楚 rpm -e 程序名 3. ...

  3. Linux系统管理_软件管理

    RPM命令 #管理.rpm文件 #RPM包软件命名规则:name-version-releases.arch.rpm rpm -ivh pkgname #安装软件包 rpm -ivh --test p ...

  4. Linux入门基础(七):Linux软件管理基础

    源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要编译成为二进制形式之后才能够运行 源代码基本编译流程 : ./configure 检 ...

  5. Linux下的软件管理

    一.软件包管理简介     1源码包(脚本安装)        ①.特点: a.开源 ,可以修改                        b.自由选择所需功能                   ...

  6. Linux之yum软件管理

    YUM yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题 yum特点 *可以 ...

  7. linux入门之用户管理

    用户管理 添加用户 以root用户执行 adduser  或 useradd [new_account] -u  UID   -d 指定家目录 -g GID 指定一个基本组ID   -G指定一个附加组 ...

  8. 【苏勇老师Linux 入门笔记】网络基础

    IP 地址 IP 编制时一个双层编制方案,一个 IP 地址标示一个主机 (或一个网卡接口). 一个 IP 地址分为两个部分:网络部分(所属区域)和主机部分(标示区域中的哪个主机).IPv4 共32位, ...

  9. Linux之apt-get软件管理

    apt-get 用Linux apt-get命令的第一步就是引入必需的软件库,Debian的软件库也就是所有Debian软件包的集合,它们存在互联网上的一些公共站点上.把它们的地址加入,apt-get ...

随机推荐

  1. PHP 浮点数 转化 整数方法对比 ceil,floor,round,intval,number_format

    ceil,floor,round,intval,number_format - 执行1000W此效率对比 Header("Content-Type:text/html;charset=utf ...

  2. CentOS7服务管理(重启,停止,自动启动命令)

    我们对service和chkconfig两个命令都不陌生,systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体. systemctl is-enable ...

  3. java数据结构---------插入排序的实现

    插入排序分为直接插入排序和希尔排序 插入排序 实现方法 //插入排序,按从小到大的顺序 public static void insertSort(int[] array){ int j,temp = ...

  4. Windows7 x64 了解堆

    一.前言 堆对于开发者一般来说是熟悉又陌生的,熟悉是因为我们常常使用new/delete或者malloc/free使用堆,陌生是因为我们基本没有去了解堆的结构.堆在什么地方?怎么申请?怎么释放?系统又 ...

  5. 学生信息管理系统(C语言版本)

    这是我个人写的一个学生管理系统,这是我仅仅用来练手的代码,要知道链表可是你在面试过程中最大机率会考到的,我是陆续从单向链表入门,然后采用双向链表写的代码!如有BUG,请指正,让我们共同进步! 1 #i ...

  6. 十二:video 视频

    属性名 类型 默认值 说明 src String   要播放视频的资源地址 controls Boolean true 是否显示默认播放控件(播放/暂停按钮.播放进度.时间) danmu-list O ...

  7. 二进制之Java中的进制(二)

    1. jdk中的进制转换 十进制转十六进制 Integer.toHexString(int i); 十进制转八进制 Integer.toOctalString(int i); 十进制转二进制 Inte ...

  8. 《JavaWeb从入门到改行》很好的复习资料: SQL语句到底怎么写 ?

    本文用到的数据库如下: CREATE DATABASE exam; /创建部门表/ CREATE TABLE dept( deptno INT PRIMARY KEY, dname ), loc ) ...

  9. csharp: 图片字符间距

    引用WINDOWS API: [DllImport("gdi32.dll", CharSet = CharSet.Auto)] public static extern int S ...

  10. [SCOI2009]粉刷匠

    线性DP预处理+分组背包 首先设dp[i][j][0/1]表示该木板前i个格刷了j次且最后一次颜色为0/1的最大正确数 做下0/1的前缀和然后转移状态 dp[i][j][k]=max(dp[l][j] ...