十二、软件的安装
Linux软件安装复杂是因为依赖包,如果要在Linux上安装软件,首先要安装依赖包
A对G是依赖包
我们可以看到ls和cat指令里面参数是不同的
Linux安装难度大
1.编译安装
我们有时候安装软件,下载下来的是软件源代码,不能直接运行,需要编译之后才能运行,源代码 -- >编译 -- >二进制机器码,才能运行。比如windows的某些软件是从源代码编译打包之后才生成exe程序,平常我们接触不到,大家安装的软件都是基本别人编译好的。而linux下编译之后会生成二进制的可执行文件,不是exe程序昂,和windows不同,这种文件没有后缀名。其实linux系统下就没有文件后缀名这个概念,好多后缀名都是我们人工自己加上去的,为了让自己知道文件是干嘛的,主要是给我们自己看的,区分作用。
GitHub或码云gitee上搜索软件下载
不是所有的软件必须经过编译安装才能使用
这是我在码云上找到的一个软件,我们可以看到,这支持在Ubuntu和Linux上下载安装
使用方法下有一个网址,这是告诉我们这个软件是如何编译的
我们可以下载ZIP
ZIP里面就是源代码包
网站服务软件;nginx,apache...
我们看这个操作界面,已经安装完成
我们对其进行解压https://nginx.org/download/nginx-1.20.2.tar.gz
我们cd到解压文件夹里
发现有这些文件
我们对文件进行统计,一共有12个
a.配置编译参数
我们可以自己设置要使用哪些功能(可以指定不使用功能,也可以指定安装在哪个目录下)
我们可以在上图中看到configure文件是绿色的,这表明他是一个可执行文件
我们可以看到配置编译后多出了Makefile和 objs文件
我们接着进行编译
b.编译
make会专门找Makefile文件进行配置编译
编译后objs多了很多文件
这个nginx相当于启动程序(二进制可执行程序文件)
我们没有把这些文件放到特定目录下,我们需要相对路径绝对路径来指定一下
这说明可执行程序文件可以运行了
我们还需要进行安装
c.安装
使用 make install指令
我们回到这个目录当中来
如果想清楚查看这些文件,我们需要安装插件
安装完成之后,我们就可以通过tree指令查看,由此可见的清晰
systemctl stop firewalld关闭Linux防火墙
d.打包
我们通过指令进行压缩,压缩到tmp中去
我们来查看一下打包后的文件有多大——1.4M
按照前面所学,我们进入另一台虚拟机,查看这台虚拟机的IP地址
可以进行两台主机文件互传
解压到local目录下并运行
取消防火墙开启:systemctl disable firewalld
2.rpm安装
我们安装一下wget
rmp安装不需要编译,我们可以直接进行手动安装,或者使用yum指令
由于我们前面装过tree了,我们只进行卸载操作
我们可以使用rpm指令将tree卸载
我们可以使用rpm -qa这个指令查看有多少安装包
也可以使用rpm -qa|grep tree查看有没有tree
由于我们刚刚进行了删除操作我们查不到
这个rpm手动安装出现一些问题,稍后我会进行补充
3.yum安装
这个可以自动解决依赖包问题
我们可以看到,安装一个包则需要三个依赖包,而在yum中会自动帮忙连接
编译安装:优点:自由定制 痛点:难度高,步骤繁琐
rpm安装:优点:安装简单 痛点:需要自己解决依赖,不支持定制
yum安装: 优点:自动解决依赖,默认安装最新版 痛点:不支持定制
4.yum仓库
centos官方库在国外 http://mirror.centos.org/
阿里云
我们可以通过这个指令查看
我们通过这个指令vim进去
enabled=0表示禁用=1表示启用
我们可以根据实际情况配出网址,我们访问网址是会报给我们一些其他网址,这证明我们可以通过这些网址进行下载(国内网站下载较快)
十三、find查找文件
在Linux系统上我们无法像在win系统上查找那么简单明了,我们需要用到find指令进行查找
a.普通查询
*pa表示以它结尾
查找深度根据数字为层数查找
例如:
我们可以通过这个指令查找到在etc目录下pa开头的文件
b.按照文件大小写查询
注意:图片有一处错误,不带单位就按照b单位来处理
+100M表示文件大小大于100M
-100M表示文件大小小于100M
我们可以看到通过这个指令可以查找到有关的文件,其中/表示从根目录下开始查找
proc所报的错误我们可以做一些忽略,因为只有root用户才可对它修改
kG MB我们要区分好大小写
如果我们要找的文件大小有范围,我们可以加上-and指令
例如:
c.忽略大小写查询
注意:严格区分大小写
例如:
经过动手操作我们会看到许多文件,我们可以加上一些限制条件帮助我们寻找
name前面加一个i表示不区分大小写 也就是说我们查到的结果有大写有小写
d.根据修改时间查找文件
atime、mtime、ctime是按天查找 amin、mmin、cmin是按分钟查找
stat我们可以通过这个指令查找时间
我们可以通过这个指令进行最近更改时间文件的查询
-20表示十分钟以内
+1表示一天之前或者一分钟之前
e.取反
例如:
也可以在-type前取反
f.根据用户来查找
g.对找出的文件进行处理
我们找到txt文件
我们可以在指令后面加上-exec在进行对其后续的操作,其中/表示;是普通的分号不是命令连接符