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