文章目录
一.软件组成
1.1 编程语言
1.编译型语言
先编译(编译器)后执行
代表语言:C,C++,C#等
2.解释型语言
边解释(解释器)边执行
代表语言:shell,python,ruby,perl
1.2 软件组成
1.可执行文件(命令)
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
2.库文件
/lib
/lib64
/usr/lib
/usr/local/lib
3.配置文件
/etc
4.其他文件
帮助手册
ReadMe
配置案例等
二.软件包分类
2.1源码包
源码包样子:
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
2.1.1 源码包特点
源码包的优点是:
1.开源,如果有足够的能力,可以修改源代码
2.可以自由选择所需的功能
3.软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
4.卸载方便
源码包缺点
1.安装过程步骤较多,尤其安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误
2.编译过程时间较长,安装比二进制安装时间长
3.因为是编译安装,安装过程中一旦报错新手很难解决
2.2 二进制包
2.2.1 二进制包分类
1.DPKG 包:是由 Debian Linux 所开发出来的包管理机制,通过 DPKG 包,Debian Linux就可以进行软件包管理。主要应用在 Debian 和 unbuntu 中。
2.RPM 包:是由 Red Hat 公司所开发的包管理系统。功能强大,安装、升级、查询和卸载都非常简单和方便。目前很多 Linux 都在使用这种包管理方式,包括 Fedora、CentOS、SuSE 等。
2.2.2 二进制包特点
RPM 包的优点:
1.包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
2.安装速度比源码包安装快的多
RPM 包的缺点:
1.经过编译,不再可以看到源代码
2.功能选择不如源码包灵活
3.依赖性。有时我们会发现需要安装软件包 a 时需要先安装 b 和 c,而安装 b 时需要安装d 和 e。这是需要先安装 d 和 e,再安装 b 和 c,最后才能安装 a 包。比如说,我买了个漂亮的灯具,打算安装到我们家客厅,可是在安装灯具之前我们家客厅总要有顶棚吧,顶棚总要是做好了防水和刷好油漆了吧,这个装修和安装软件其实类似总要有一定的顺序的。可是有时依赖性会非常繁琐
三.源码编译安装
3.1 安装编译工具
首先需要安装gcc 编译器
命令:
yum -y install gcc make
3.2 下载源码包
这里以下载nginx为例
wget有的Centos 7 是没有的,需要先安装:
yum -y install wget
下载源码包:
打开网页nginx.org 进入点击download,复制下载包链接
输入命令:
wget http://nginx.org/download/nginx-1.10.3.tar.gz
3.3 解压
tar -xf nginx-1.10.3.tar.gz
解压后就会发现有
3.4 修改配置文件configure
切换到源码包位置,修改
cd nginx-1.10.3
配置configure文件 --prefix表示安装地址 --with表示开启某个功能,我们这里开启ssl_module模块的功能
命令:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
直接安装我们会发现提示我们缺少pcre这个模块,如下图所示
所以需要安装pcre的模块包,后面还会有一个错误提示,因为我们前面要开启ssl服务,会提醒我们缺少openssl模块,我下面就直接装这两个包了
yum -y install pcre-devel #这里devel代表开发的意思,我们一般装的是开发包
yum -y install openssl-devel
完成后我们再去配置configure
3.5编译
在当前目录下直接make
编译好了:
3.6 安装
直接安装:
make install
3.7 测试
执行方式有三种:
1.绝对路径
/usr/local/nginx/sbin/nginx
2.相对路径
[root@localhost ~] cd /usr/local/nginx/sbin/
[root@localhost sbin] ./nginx
3.将路径加入PATH变量中以命令方式执行
[root@localhost ~] PATH=$PATH:/usr/local/nginx/sbin
[root@localhost ~] echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/nginx/sbin
我这里就直接以绝对路径进行了
查看ip地址,用ip地址在网页打开看到下面页面就代表成功了
如果要关闭,可以用下面命令:
四.rpm安装
4.1 rpm与yum的关系
rpm:Redhat Package Manager
yum:Yellowdog Updater Modified,是一个使用Python写的基于rpm的软件管理工具
yum是安装rpm包的一种在线安装方式,而不是一种新的软件包,软件包就只有源码包和rpm包两种格式。
4.2 rpm包详解
4.2.1 特性
软件包依赖性
4.2.2 命名
rpm包有两种命名,分别为包名和包全名
1.包全名,即安装包的全名
例如abrt-2.0.8-43.el6.centos.i686.rpm
通常在安装和更新操作命令时需要指定包全名,而且要注意路径,原因其实也很简单,这些软件包还未安装在系统中
2.包名
例如abrt-2.0.8-43.el6.centos.i686.rpm的包名就是abrt,操作已经安装的软件,搜索的是/var/lib/rpm/中的数据库
4.2.3 安装命令
rpm –ivh 包全名
#注意一定是包全名。如果跟包全名的命令要注意路径,因为软件包在光盘当中
选项:
-i install 安装(install)
-v 显示更详细的信息(verbose)
-h 打印 显示安装进度(hash)
额外选项:
--nodeps 不检测依赖性安装。软件时会检测依赖性,确定所需的底层软件是否安装。
如果没有安装则会报错。如果我不管依赖性,想强行安装,可以使用这个选项。注意:
这样不检测依赖性安装的软件基本是不能使用的,所以不建议这样做
--replacefiles 替换文件安装。如果安装软件包,可是包中部分文件已经存在,那么
正常安装时候,会报错“某个文件已经存在”从而导致软件无法安装,使用这个选项可
以忽视这个报错,而覆盖安装
--replacepkgs 替换软件包安装。如果软件包已经安装,此选项可以把软件包重复安
装一遍。
--force 强制安装。不管是否已经安装,都重新安装。就是—replacefiles 和
—replacepkgs 的综合。
--test 测试安装。不会实际安装,只是检测一下依赖性。
--prefix 指定安装路径。为安装软件指定安装路径,而不使用默认安装路径。注意:
如果指定了安装路径,软件没有安装到系统默认路径中的话,系统会找不到这些安装的
软件,需要进行手工配置才能被系统识别。所以 rpm 包我们一般都采用默认路径安装。
4.2.4 查询命令
1.查询是否安装
[root@localhost ~]# rpm –q 包名
选项:
-q: 查询(query)
2 查询所有安装软件包
[root@localhost ~]# rpm -qa
选项:
-a:所有(all)
3 查询软件包详细信息
[root@localhost ~]# rpm –qi 包名
选项:
-i: 查询软件信息(information)
4.查询还没有安装的软件包中的文件列表和打算安装的位置,如下:
[root@localhost ~]# rpm –qlp 包全名
选项:
-p: 查询没有安装的软件包信息(package)
5 根据文件查找包名
[root@localhost ~]# rpm –qf 系统文件名
选项:
-f: 查询系统文件属于哪个软件包(file)
4.2.5 更新命令
[root@localhost ~]# rpm –Uvh 包全名
选项:
-U(大写) 升级安装,如果没有安装过,系统直接安装。如果安装过的版本较旧,则
升级到新版本(upgrade)
4.2.6 卸载命令
[root@localhost ~]# rpm -e 包名
选项:
--nodeps 不检查依赖性
-e 卸载
4.2.7 数字证书导入
[root@localhost ~]# rpm --import 数字签名文件
选项:
--import 导入数字证书