Unix软件包管理

引言:本篇主要记录Unix开源操作系统常见安装方法,主要包含的是CentOS和Ubuntu两个发行版。其中,因为本人常用的是Ubuntu,所以针对Ubuntu会详细讲述软件安装路径以及Ubuntu中软件的清理,目的是为搭建一个“整洁干净”的Ubuntu的操作系统,如有叙述和理解错误的,请各位看客不吝指出

软件的安装(CentOS And Ubuntu)

源代码形式

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

RPM(RedHat Pakage Manager&CentOS)

  • 因为源代码形式的软件包安装过程操作复杂、编译时间较长、以及很容易出现错误(软件包依赖关系)等原因,Erik Troan和Marc Ewing开发了RPM,RPM内部实现依然是软代码形式,简单来说,它对源代码安装形式进行了包装,并自动寻找软件包之间的依赖关系,同时还添加了“仓库”的功能,大大的简化了安装的复杂度和降低了软件安装过程中出现错误的概率。
  • rpm的目的有以下几点
    1. 使用简单
    2. 使用单一软件包可是文件(.rpm)文件
    3. 可升级
    4. 追踪软件依赖关系
    5. 基本信息查询
    6. 软件验证功能
    7. 支持多平台
  • rpm不支持扩平台,每一个rpm在不同平台下编译出来的都是不同的rpm包,所以下载的时候需要注意版本号的问题
  • rpm软件包命名详解
  • example:Linuxcast-1.2.0-30.el6.i686.rpm
    软件名称: Linuxcast
    版本号: 1.2.0-30
    软件运行平台或编译平台: el6,全称redhat enterprise linux 6
    软件运行平台架构: i386(32bit)、x86_64(64bit)

  • rmp基础命令:

    1. 安装软件:rpm -i software.rpm
    2. 卸载软件:rpm -e software
    3. 升级形式安装:rpm -U software-new.rpm
    4. 显示相关信息:rpm -v software.rpm
    5. 显示进度条:rpm -h 显示进度条
      rpm支持http、ftp协议安装软件:rpm -ivh http://www.linuxcast.net/software.rpm

YUM

rpm软件包形式管理软件虽然方便,但是rpm只是追踪软件包之间的依赖关系并不解决,很多时候安装一个软件需要首先安装1个或多个其它软件,手工解决很复杂,yum可以解决这个问题,yum(yellowdog Updater,Modified)是一个rpm的前端程序,主要目的是用来解决rpm的依赖关系问题,其特点如下:

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

yum引入仓库(repo)的概念,仓库用来存放所有现在的rpm软件包,当使用yum安装一个rpm软件的时候,如果存在依赖关系,会自动在仓库中查找依赖软件并安装,仓库可以是本地的,也可以通过HTTP、FTP或NFS形式使用集中的、统一的网络仓库

DPKG(Debian Packager)

  • dpkg和rpm的作用其实是一样的,只是适用的操作系统并不一样,dpkg最早是有Debian Linux社区研发出来的额,只要是衍生与Debian的其它Linux发行版本大多都使用dpkg来管理软件,例如Ubuntu。
  • dpkg与rpm的软件包文件类型不同,dpkg机制软件包的文件格式为.deb

RPM和DPKG比较

目前失眠上大部分的Linux发行版本都是基于RedHat或者Debian这两个大厂改装的。因此在软件包管理机制上,RedHat的RPM和Debian的dpkg就成为Linux软件管理上的两大标准

以下列表来自Jamyy’s Weblog

  • RPM和DPKG两种机制的操作平台
发型版本代表 软件管理机制 使用指令 在线升级指令
RedHat/CentOs RPM rmp yum
Debian/Ubuntu DPKG dpkg apt-get
  • rpm与dpkg指令比较:
目的 rpm用法 dpkg用法
安装软件software rpm -i software.rpm dpkg -i software.deb
显示所有已安装的软件名称 rpm -qa dpkg -l
显示软件包含的所有档案 rpm -ql software dpkg -L software
显示特定档案所属软件名称 rpm -qf /path/to/file dpkg -S /path/to/file
查询指定软件档案信息
rpm -qip pkgfile.rpm
rpm -qlp pkgfile.rpm

dpkg -l software.deb
dpkg -c software.deb
显示指定软件是否安装
rpm -q software
rpm -ql software

dpkg -l software
dpkg -l software
dpkg -s software
dpkg -p software
删除指定软件 rpm -e|–remove
dpkg -r|remove
dpkg -p|–purge(完全删除)

APT机制与apt-get指令的使用

  • apt-get对于dpkg来说就相当于yum对于rpm一样,解决了依赖关系,同时包含了线上仓库的功能
  • apt-get update 更新在线仓库,在线仓库可以在/etc/apt/source.list里面用vim修改
  • apt-get install software1 [software2……] 在线安装软件
  • apt-get remove software1 [software2……] 在线删除软件,不删除配置文件
  • apt-get purge|-p software [software2……] 删除软件并删除配置文件

软件安装路径(Ubuntu)

  • apt-get下载的.deb软件包存放位置(默认路径)
    /var/cache/apt/archives
    Unix软件包管理_第1张图片
  • apt-get安装后软件默认位置
    /usr/share
    Unix软件包管理_第2张图片
  • apt-get安装后可执行文件位置
    /usr/bin
    Unix软件包管理_第3张图片
  • 配置文件位置
    /etc
  • lib文件位置
    /usr/lib

你可能感兴趣的:(Unix平台,unix,软件包安装)