linux软件管理
linux最常见的四种安装方式:
- 源码安装
- RPM安装
- 二进制安装
- yum安装
1、源码安装
1.1 是什么
开源软件基本都提供源码下载,源码安装的方式;
优点:源码安装的好处是用户可以自己定制软件功能,安装需要的模块,不需要的功能可以不用安装,此外,用户还可以自己选择安装路径,方便管理,卸载软件也很方便,只需删除对应的安装目录即可。
1.2 怎么做
过程源码安装软件一般有以下几个步骤组成:下载解压源码、分析安装平台环境(ifconfigure)、编译安装软件(make,make install)
1、下载解压源码
2、分析安装平台环境(ifconfigure)
在软件包解压完毕之后,我们进入源码目录,一般都会存在configure和README这么两个文件:
- README是对软件的介绍和安装说明文件;
- configure是检测当前系统是否拥有安装软件所需的所有文件和工具,如果系统缺少某个文件,就给出提示,直到满足软件的所有需求为止。同时指定需要编译的模块
3、编译安装软件(make,make install)
- make:是源码编译的工具,最主要的功能就是通过makefile文件来实现的,makefile文件是按照某种语法来进行编写的,文件中定义了各个源文件之间的依赖关系,并说明了如何编译源文件并生成可执行文件,它通过描述各个源程序之间的关系让make工具自动完成编译工作。在执行configure通过后,就会在当前目录下生成Makefile文件,一般情况下在命令行输入make时,make命令会默认去寻找当前目录下的Makefile文件。
- make install:是安装软件的工具。开始安装软件,安装进程会首先创建安装目录,如果我们没有指定安装的目录,安装程序默认会安装在系统的/usr/local目录下创建安装目录,然后将相应的文件和可执行程序从源码目录拷贝到安装目录下,这样安装就完毕了
1.3 案例:源码安装apache
1、下载源码
# mkdir /apache #在根目录下创建一个apache目录
# cd /apache #切换到apache目录
# wget http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.bz2
# tar -jxvf httpd-2.2.9.tar.bz2 #解压apache源码
2、测试安装环境
# cd httpd-2.2.9 // 切换到httpd-2.2.9目录下
# ./configure --prefix=/opt/apache2.2.9 \
>--enable-so \
>--enable-mods-shared=most \
>--enable-proxy-balancer=shared \
>--enable-proxy-http=shared \
>--enable-proxy-ajp \
>--enable-rewrite
3.编译安装软件
[root@WEBServer httpd-2.2.9]# make
[root@WEBServer httpd-2.2.9]# make install
2、二进制安装
1.1 是什么
Linux下二进制格式的软件是指事先已经在各种平台编译安装好相关软件,然后压缩打包,在安装时只需解压或者执行安装可执行文件即可。
二进制软件包提供了很多类型的打包方式,最常见的就是我们上节讲到的RPM格式的包,还有以“.tar.gz、.tgz、*.bz2“等形式的二进制软件包
优缺点: 二进制软件包的优点是安装简单、容易,缺点是缺乏灵活性,相应的软件包只能在对应平台下安装,离开这个环境软件就无法运行。
3、RPM安装
1.1 是什么
RPM是Red Hat Package Manager的缩写,是最先由Redhat公司开发出来的linux下软件包管理工具,由于这种软件管理方式非常方便,逐渐被其它linux发行商所借用,现在已经成为linux平台下通用的软件包管理方式。
其实就是将软件源码文件进行编译安装,然后进行封装成了RPM文件。
优缺点:安装简单方便,因为软件已经被编译安装完毕,安装只是个验证环境和解压的过程。此外通过RPM方式安装的软件,RPM工具都会记录软件的安装信息,这样方便了软件日后的查询,升级和卸载。
RPM包管理方式的缺点是对操作系统环境的依赖很大,它要求RPM包的安装环境必须与RPM包封装时的环境相一致或相当。还需要满足安装时与系统某些软件包的依赖关系,例如需要安装A软件,但是A软件需要系统有B和C软件的支持,那么就必须先安装B和C软件,然后才能安装A软件。这也是我们在用RPM包方式安装软件需要特别注意的地方。
1.2 怎么做
RPM工具的使用分为安装、查询、验证、更新、删除等操作
命令格式:rpm [选项] file1.rpm file2.rpm…..fileN.rpm
主选项说明:
必选参数:
-i:安装软件
-q:查询
-U:upgrade的意思,更新
-e:erase的意思,删除
辅助参数:
安装类:
-v:显示附加信息。
-h:安装时输出标记“#”。
--test:只对安装进行测试,并不实际安装。
--nodeps:不检查软件之间的依赖关系。加入此选项可能会导致软件不可用。
--force:忽略软件包以及软件冲突。
--replacepkgs:强制重新安装已经安装的软件包。
--prefix:将软件包安装到由指定的路径下。
--percent:以百分比的形式输出安装的进度。
--excludedocs:不安装软件包中的说明文件
--includedocs:安装软件包,包含说明文件。
查询类:
-a: 所有软件包
-f:查询操作系统中某个文件属于哪个对应的rpm软件包
-p:查询以“.rpm”为后缀的软件包安装后对应的包名称
-l:显示软件包中的所有文件列表
-i:显示软件包的概要信息
更新类:
--oldpackage 表示允许"升级"到一个老版本,即软件版本降级
删除类:
--test:只执行删除的测试。
--nodeps:不检查依赖性。
常见用法:
1、安装
# rpm -ivh file1.rpm
2、删除
# rpm -e file1.rpm
3、查询
# rpm -qa |grep 关键字
4、更新
# rpm -Uvh rsh-0.17-37.el5.i386.rpm
4、yum安装
1.1 是什么
yum是rpm包的管理工具
通过yum进行系统升级实质是yum命令去下载指定的远程互联网 主机上的RPM软件包,然后自动进行安装,同时解决各个软件之间的依赖关系。
优点:方便管理,可以解决依赖关系
1.2 怎么做
(1) 基本使用
yum [options] [command] [package ...]
options:可选
-h(帮助)
-y(当安装过程提示选择全部为 "yes")
-q(不显示安装的过程)
command:
check-update:列出所有可更新的软件清单
update: 更新指定软件(不指定则更新所有)
install:仅安装指定的软件
list:列出所有可安裝的软件清单
remove:删除软件包
search:查找软件包
clean:清除缓存(yum clean all 清除缓存目录下的软件包及旧的 headers)
(2) yum源管理
yum默认从官方源获取软件资源,也可自行配置,一般使用国内源下载更加快速
yum源文件目录:/etc/yum.repos.d/
案例:切换阿里源
1、备份 (官方的基础YUM源)
[root@newrain ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup //改文件名,相当于备份,不是以repo结尾无法使用,达到切换目的
2、切换基础yum源
[root@newrain ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、切换扩展yum源 (如果已有,看情况是否要备份)
[root@newrain ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo //安装aliyun的epel源
4、清除旧的yum缓存
[root@newrain ~]# yum clean all
5、创建元数据缓存
[root@newrain ~]# yum makecache