linux:二进制包安装与源码包安装详解
一. 软件包安装
Linux中软件包分为 源码包 和二进制包
1. 源码包
(1) 概述
源码包就是作者直接将源程序发布在网上,我们直接下载源文件,自己编译成二进制程序使用。
(2) 优点
开源,可修改源代码;
可自由选择所需要的功能;
编译安装,更加适合自己的系统,更加稳定效率更高;
卸载方便也更加干净;
(3) 缺点
安装步骤过多,容易出现错误;
编译过程较长,安装比二进制包安装时间长;
2. 二进制包
(1) 分类
DPKG包:由 Debian Linux开发出的包管理机制,主要应用于Debian和Ubuntu中;
RPM包:由Ret Hat开发的包管理系统,安装,升级,卸载非常方便。主要应用于Centos, Fedora等等。
(2) 优点
包管理系统简单,只需要几个命令即可实现安装,卸载等等;
安装速度比源码包安装快很多;
(3) 缺点
不是开源的,看不到源代码;
功能选择不如源代码灵活;
安装软件包需要依赖于其他的软件包;
3. 软件包选择
如果安装的服务是给大量客户端使用的,建议使用源码包安装,效率更高;
如果安装的服务是给少量用户使用的,或者本地使用的,建议RPM包安装,因为包管理方便;
(二) RPM安装
1、RPM包手动安装
手动安装非常地麻烦,需要自己找依赖的包与库函数,艹。
rpm -ivh 包全名
-i: install安装
-v: 显示更详细的信息(verbose)
-h: 打印#显示安装进度(hash)
包全名后面还可以接设置参数,如下所示:
--nodeps: 不检测依赖性安装,这样安装的软件基本上无法使用,不建议;
--force: 直接强制安装,当该服务的某些文件找不到时,此命令可以重新安装找回;
--test: 测试安装,不会实际安装,仅仅检测依赖性;
2、RPM包默认安装位置
/etc/ 配置文件安装目录
/usr/bin: 可执行的命令安装目录
/usr/lib: 程序使用的函数库保存位置
/usr/share/doc: 软件使用手册位置
/usr/share/man/ 帮助文件位置
RPM包建议安装在默认路径中,因为系统中的其他服务会根据默认的路径查找安装的服务,且RPM包管理系统是由卸载命令的,可以根据数据库记录的安装位置来卸载。而源码包安装时必须指定安装路径,因为当要卸载源码包安装的目录时直接删除即可,如果不指定安装目录,服务会安装在系统的各个位置,没有卸载命令,需要一个个地手动删除,非常麻烦。
3、服务启动命令
service 服务名 start|stop|restart|status
systemctl restart 服务名
4、RPM包升级
rpm -Uvh 包全名
- 1
-U:升级安装,如果没有安装过,则直接安装;如果安装的版本太旧,则升级;
5、RPM包卸载
rpm -e 包名
-e 卸载
注意,RPM包在卸载时也是有依赖性的,安装时是从下往上依赖,卸载时就是从上往下依赖了。卸载某个包,那么其上的那些包都会被卸载掉。
6、RPM包查询
1. 查询软件包是否安装
rpm -q 包名
2、查询软件包的文件列表
rpm -ql 包名
RPM包安装不建议自己指定安装位置,建议安装在默认的位置,因为RPM包有标准的卸载命令,即使各个文件安装在系统的不同位置,也能够卸载干净:
如 安装httpd,各个文件的位置:
配置文件: /etc/httpd/conf/httpd.conf
网页位置: /var/www/html/
日志位置: /var/log/httpd/
启动方法: service httpd restart 或是 /etc/rc.d/init.d/httpd restart ,其实第一个命令就是到第二个命令的目录下找执行脚本的。
源码包安装必须指定安装位置,因为没有安装数据库,没有卸载命令,很难卸载干净。当指定了安装目录后,很容易找到安装的文件。
同样的安装httpd:
配置文件: /usr/local/apache2/conf/httpd/conf
网页文件: /usr/local/apache2/htdocs
日志位置: /usr/local/apache2/logs
启动方法: /usr/local/apache2/bin/apache2ctl start
三、源码包安装
源码包安装必须指定安装位置,因为没有安装数据库,没有卸载命令,很难卸载干净。当指定了安装目录后,很容易找到安装的文件。
同样的安装httpd:
配置文件: /usr/local/apache2/conf/httpd/conf
网页文件: /usr/local/apache2/htdocs
日志位置: /usr/local/apache2/logs
启动方法: /usr/local/apache2/bin/apache2ctl start
安装过程
1.下载源码包解压缩
wget 源码下载地址
2.进入解压目录
tar xf 源码包文件名
3、安装依赖
yum install -y pcre-devel gcc gcc-c++ make zlib-devel openssl-devel
4.编译前准备 ./configure脚本(生成配置信息和Makefile文件)
这个命令有三个作用:
(1) 检测系统环境是否符合要求
(2) 定义需要的功能选项
(3) 将系统环境的检测结果和定义好的功能选项写入Makefile文件中,后续的编译和安装需要依赖这个文件的内容。
一般通过如下参数来指定安装路径:
./configure --prefix=路径名(一般是/usr/local/文件名)
5.make 编译(执行makefile文件并生成软件)
make会调用gcc编译器,读取Makefile文件中的信息进行系统软件编译,编译就是为了将源码程序转变为能被Linux识别的可执行文件,保存在当前目录下。
6.make clean 清空编译内容
若在./configure 或 make 命令后报错,则需要清空生成的Makefile文件或编译生成的.o文件。
7.make install 编译安装(将软件安装到指定目录)
真正的安装过程,需要写清楚程序的安装位置,便于删除。如果在这一步报错,需要将整个文件夹删除,重新走一遍安装流程。因为编译安装这一步有写入操作,之前的./configure和 make 都只是生成临时文件,用make clean 删除即可。
8、 删除
源码包没有删除命令,直接删除安装目录即可。
9、启动软件
以nginx为例,nginx会安装到/usr/local/nginx下
nginx下的文件目录为:
conf:配置文件
html:静态文件
logs:nginx软件的启动日志
sbin:启动文件
我们进入sbin目录下,会有一个绿色的nginx的文件,绿色代表可执行文件
我们执行./nginx就启动了nginx软件或服务
(首先去配置文件中,将端口号修改一下),我们在浏览器中输入服务器地址和端口,就可以看到nginx的html
nginx命令
1、nginx:启动
2、nginx-s reload :重新加载,修改配置文件
3、nginx -s restart :重启
4、nginx -s stop:停止
在任意目录下敲nginx就可以执行,需要配置软链接
1)ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
2)把/usr/local/nginx/sbin/nginx 放到环境变量中
3)制作成systemctl系统服务