Linux软件安装
一、编译安装
有时候安装软件,下载下来的是软件源代码,不能直接运行,需要编译之后才能运行,源代码–>编译–>二进制机器码,才能运行。
Windows的某些软件是从源代码编译打包之后才生成exe程序。而Linux下编译之后会生成二进制的可执行文件(不是exe程序),和Windows不同,这种文件没有后缀名。其实Linux系统下就没有文件后缀名这一概念,都是人为加上去的,方便人们知道文件是干嘛的。
例:nginx网站服务软件
1.下载源码包(放在opt目录下)
cd /opt/
curl -o nginx.tar.gz http://nginx.org/download/nginx-1.20.1.tar.gz
2.编译安装
tar xf nginx.tar.gz
2.1.配置编译参数
这个网站提供了很多功能,在编译的过程中可以自己选择哪些功能要,哪些功能不要。
./configure --prefix=/usr/local/nginx --without-pcre --without-http_rewrite_module --without-http_gzip_module
这里禁掉了一些需要依赖包的功能。
--without就是去掉的意思,--prefix=/usr/local/nginx是指定软件的安装目录,目录不存在的话会自动创建。 ./是用相对路劲来执行configure这个文件(绝对路径也可以执行),这个指令执行后,会自动检查各种依赖环境是否满足软件运行的要求,检查通过之后会生成一个叫做Makefile的文件。
2.2.编译
make #male会找当前目录中的Makefile文件来进行编译,这个编译过程一般是比较长的,主要看CPU性能和软件功能复杂度
完成之后,objs目录里的文件会发生变化:
其中,nginx文件就是二进制可执行的命令文件,比如查看一下它的版本:
到这里只是编译完了,还需要安装,其实安装就是将这个程序的某些文件放到对应的目录中去。在上面的编译参数中已经指定好了--prefix=/usr/local/nginx
,要安装到/usr/local/nginx
目录中去。
2.3.安装
make install
查看安装目录,里面就是这个软件安装的所有文件
可以安装tree这个工具,来进行目录查看yum install tree -y
conf是该软件的配置文件所在目录
html是网站源代码存放目录,nginx主要是用来部署网站的,网站的代码可以放到这个目录中
logs是这个软件自带日志记录功能,记录的日志存放在这
sbin中的nginx是软件的关键性的启动程序
3.运行
/usr/local/nginx/sbin/nginx #没有配置环境变量,所以要用完整路径来运行
看上去没什么效果,其实已经运行了。
可以通过浏览器访问这个nginx了,访问之前要关闭防火墙。
关闭防火墙systemctl stop firewalld
取消防火墙的开机自启动systemctl disable firewalld
使用浏览器访问http://<虚拟机的ip地址>
,就可以看到网站了。
二、rpm安装
redhat系打出来的包叫做:rpm包
,用yum安装的程序包其实都是rpm包。
debian系打出来的包叫做:deb包
。
rpm全称:redhat package manager 包管理器
手动安装rpm包例,不需要编译安装,也不用yum安装
#使用wget下载rpm包:
wget rpm包的网址
#安装rpm包 #-i是安装,vh是显示安装进度条的意思
rpm -ivh 下载好的rpm包
#卸载
rpm -e 要卸载的包名
#升级
rpm -Uvh xxx.rpm
#查看已安装的软件
rpm -qa | grep 软件名
rpm安装软件又个小问题:用rpm安装软件不好解决依赖包的问题,所以出来了下面的yum安装方式,自动下载安装需要的依赖包。
三、yum安装
#自动解决rpm依赖
#yum安装扩展yum仓库
yum install epel-release -y
#yum安装nginx
yum install nginx -y
#yum移除nginx
yum remove nginx -y
#查看仓库rpm的数量
yun repolist
小结:
编译安装:优点:自由定制 缺点:难度高,步骤繁琐
rpm安装:优点:安装简单 缺点:需要自己解决依赖,不支持定制
yum安装:优点:自动解决依赖,默认安装最新版 缺点:不支持定制