Linux 软件的安装

1.通过源码安装软件

  • 什么是源码包?
    • 源码包就是一些附带有程序的源代码、configure文件、说明文档的安装包
    • 一般以tar打包。在用压缩软件进行压缩,比如tar.gz或者tar.bz2文件
    • 需要自定义参数进行编译,之后进行安装

  以memcached的源码包安装为例:

    • 最新安装路径: http://memcached.org/files/memcached-1.4.25.tar.gz
    • 在Linux终端输入:wget http://memcached.org/files/memcached-1.4.25.tar.gz(wget 需要Linux网络链接正常)
    • 下载成功后,需要解压缩指令 tar xzvf memcached-1.4.25.tar.gz
  • configure
    • 自定义参数
    • 配置安装环境,必要性检查
    • 生成makefile文件
  • make&install
    • 编译生成二进制文件
    • 执行安装
  • 使用源码包进行软件安装过程
    • 获取源码安装包,如去官网下载
    • 解压缩,阅读install和readme文件,获取安装说明
    • 根据安装说明安装好该软件依赖的其他软件
    • 通过运行configure文件,执行检查安装环境,定义必要参数(所依赖的其他软件和参数)通过后,建立makefile文件
    • 根据声生成的makefile文件,通过make指令进行编译操作
    • 根据makefile中要install的内容,将上步中变异好的二进制文件安装到系统中
  • 常用指令
    • ./configure -help,查看参数信息,简历makefile文件
    • make clean,读取makefile中关于clean的内容执行clean操作(非必须)
    • make,根据makefile中的设置执行编译操作
    • make install,将编译的二进制文件安装到系统中

2.RPM、SRPM、YUM概述

  • RPM
    • RedHat Package Manager 的简称,RedHat包管理器
    • 以数据库记录的方式将软件安装到Linux
    • 软件包事先编译好并且打包成RPM机制的文件,类似于Windows的安装程序
    • 软件信息都已记录在了本地数据库中,方便查询、升级、卸载
    • 不允许自定义参数和设置、限制较多
  • SRPM
    • Source RPM,附带源代码的RPM包,扩展名为src.rpm命名
    • 不可以直接安装,需要通过编译后再安装
    • 可以修改参数文件自定义配置项
    • 和RPM比较类似
  • YUM
    • Yellow dog Updater Modified的简称,基于RPM包管理
    • 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无需繁琐的一次次下载、安装
    • 使用简单、方便。相比windows的软件安装更加方便,类似于在java web项目开发中的Maven,自动管理这种依赖关系。

3.使用RPM安装软件

  • 默认安装路径
    • 在windows下,软件安装的默认路径是在C盘下的一个命名为Program File的路径下单独命名一个软件的目录,所有和该软件相关的文件都安装在该路径下
    • 在Linux下,
      • 配置文件,一般放在/etc目录下
      • 可执行文件,/usr/bin
      • 程序使用的函数库,/usr/lib
      • 软件使用手册、说明,/usr/share/doc
      • 软件的详细说明,/usr/share/man man page
  • RPM安装
    • www.rpmfind.net(法国里昂一个查找rpm的服务)下载安装
    • Linux镜像挂在光盘安装
    • rpm [-ivh] rpm1 rpm2------安装rpm1、rpm2并显示进度和详情
    • --nodeps:忽略所有依赖问题执意安装
    • --replacefiles:对应已经安装过的某个文件进行覆盖安装
    • --replacepkgs:对已经安装过的软件重新安装
    • --force:相当于--replacefiles和--replacepkgs
    • --test:测试该软件能否被正确安装(rpm -ivh fileName --test)
    • --justdb:RPM数据库损坏或者产生错误时,更新数据库信息
    • --nosignature:忽略数字签名的检查
    • --prefix:改变软件的默认安装路径
    • --noscripts:禁止RPM执行一些后置指令,如一些初始化指令(类似于在windows环境下安装软件成功后会初始化一些配置等)
  • RPM升级
    • -Uvh:如果安装则更新,没有安装直接安装
    • rpm -qa python(查看当前python安装的版本) rpm -Uvh python-1.x.x --nodeps(对python进行不依赖升级)
    • -Fvh:只有软件安装过才会升级,进行纯粹的升级
  • RPM查询
    • -q:只查询软件是否安装
    • -qa:列出本机安装的所有软件名称,可以通过|grep过滤
    • -qi:列出软件的详细信息,开发商、版本、说明等
    • -ql:列出该软件所有的文件,躲在目录的完整名
    • -qc:列出该软件所有的配置文件
    • -qR:列出该软件依赖的其他软件
    • -qf:查询某个文件属于哪个软件所有
  • RPM验证
    • -V:查询软件所有被修改过的文件
    • -Va:列出本机所有有可能被修改过的程序文件
    • -Vp:接文件名,列出该软件可能被修改的文件
  • RPM的卸载与数据库重建
    • 主要要从上到下一次卸载,先卸载不被其他任何软件依赖的软件
    • -e:卸载软件(rpm -e python)
    • -rebuilddb:重建RPM的数据库

4.使用YUM安装软件

  安装好Linux系统之后,Linux服务商(RedHat)需要我们注册一下,才能使用yum安装软件,类似windows的注册一样。这里,由于用yum安装软件可能会对系统Linux造成损坏,所以在安装软件之前,我们需要将当前系统快照保存一下,类似windows中的系统备份一样,以供我们在安装软件过程中对系统造成损坏之后,可以“一键还原”,避免重装系统的麻烦。

  Liunx的注册比较麻烦和繁琐。所以我们可以事先编辑好一个Linux注册配置的shell脚本,

  脚本内容:

  #!/bin/bash

  rpm -qa |grep yum|xargs rpm -e -nodeps

  wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm

  wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm

  wget http://mirrors.163.com/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm

  rpm -ivh yum-*

  cd /etc/yum.repos.d/

  mv rhel-debuginfo.repo rhel-debuginfo.repo.bakup

  mv rhel-source.repo rhel-source.repo.bakup

  wget http://www.linuxidc.com/files/2001/05/06/CentOS-Base.repo

  yum makecache

  编写保存shell脚本:vim yumInstall.sh

  运行脚本:sh yumInstall.sh(这个运行的操作具体是卸载RHEL的yum,然后安装CentOS的yum)

  • 查询 yum[list|infosearch|provides|whatprovides] 参数
    • search:查询某个程序的名称或者描述(yum search mysql)
    • list:列出当前yum所管理的所有软件以及版本(rpm -qa) ----yum list
    • info:查询软件的功能版本说明(rpm -qai) ----yum info mysql
    • provides:通过文件查询所属软件(rpm -qf)
  • 安装、升级,yum[install|update]程序名称
    • 安装 yum install mysql
    • 升级 yum update mysql
  • 卸载程序 yum[remove]
    • yum remove mysql
  • yum配置
    • /etc/yum.repos.d/CentOS-Base.repo
    • yum clean[package|headers|all]
    • 缓存/var/cache/yum
原文地址:https://www.cnblogs.com/albert-xm/p/5138530.html