1. 源码编译安装
含义: 程序是由开发人员写代码一个一个单词敲出来的
源码:编写好的.c .java 文件
编译:将人类写的代码翻译成二进制语言
安装:将二进制保存在键盘上
编译需要什么 源码包 *.tar.gz *.tar.bz
缺点:
- 如果编译出了问题,你看不懂源代码,无法解决
- 安装过程复杂
- 没有统一的管理人员
优点
- 契合系统兼容性强
- 如果你可以看懂源代码,修改新增功能
- 比较自由
编译安装(三步)
第一步 ./configure 软件作者写的脚本(安装包中会有)
- 可以更改你的安装路径,
- 选择你要安装软件的功能
- 检测你的安装环境
第二步 make 将源代码 编译成二进制语言,让电脑可以看懂
常见的编译软件 gcc gcc-c++
第三步 make install 将二进制 数据写入硬盘,安装进系统
例:
[root@localhost ~]# mkdir /app ##在根目录下创建app目录
[root@localhost ~]# cd /data ##进入data目录
[root@localhost data]# tar xf httpd-2.4.29.tar.bz2 ##解压httpd-2.4.29.tar.bz2
[root@localhost httpd-2.4.29]# cd httpd-2.4.29 ##进入httpd-2.4.29目录
[root@localhost httpd-2.4.29]#systemctl stop firewalld ##关闭防火墙
[root@localhost httpd-2.4.29]#setenforce 0 ##关闭核心防护
[root@localhost httpd-2.4.29]#yum install apr* gcc* pcre* -y ##下载编译软件
[root@localhost httpd-2.4.29]#./configure --prefix=/app ##更改的安装路径
[root@localhost httpd-2.4.29]#make -j2 ##编译成二进制语言,j2带表使用2颗cpu编译
[root@localhost httpd-2.4.29]#make install ##数据写入硬盘
[root@localhost httpd-2.4.29]#cd /app/bin
[root@localhost bin]#/app/bin/apachectl start ##开启服务
[root@localhost bin]#ss -ntap | grep 80 ##有就没问题
LISTEN 0 128 [::]:80 [::]:* users:(("httpd",pid=1700,fd=4),("httpd",pid=1618,fd=4),("httpd",pid=1617,fd=4),("httpd",pid=1616,fd=4),("httpd",pid=1615,fd=4))
ss 系统活动的状态
-n 以数字形式显示
t tcp 协议
u udp协议
a 所有的详细信息
p 端口
[root@localhost bin]#/app/bin/apachectl stop ##停止服务
报错处理方式: 如果make出错要删除这个文件后再,make不然一直报错
2. rpm安装(安装包管理工具)
优点:
- 统一的安装包格式
- 已经帮你编译完成
- 使用简单
缺点:
- 有依赖关系(安装a 我需要先安装b)
下载安装包: .rpm 结尾
2.1 查询
对已安装程序查询
[root@localhost Packages]#rpm -qa ##-q加上软件名字是否已安装了某软件
[root@localhost Packages]#rpm -q tree
tree-1.6.0-10.el7.x86_64
[root@localhost Packages]#rpm -qi tree ##-qi 软件包名(软件包的详细信息)
[root@localhost Packages]#rpm -ql tree ##-ql 软件名,该软件的所有文件列表
-qc 配置文件 更详细的分类
-qd 文档
-qf 软件名 该软件出自哪个安装包
[root@localhost Packages]#rpm -qf /bin/bash
bash-4.2.46-28.el7.x86_64
对未安装程序查询
rpm 要知道包的全部名称
| 选项 | 说明 |
|---|---|
| q | 使用询问模式,当遇到任何问题时,rpm指令会先询问用户 |
| p | 查询指定的RPM套件档 |
| i | 安装显示套件的相关信息 |
| l | 显示套件的文件列表。 |
| c | 只列出组态配置文件 |
| d | 只列出文本文件 |
| v | 显示详细过程 |
| h | 进度条 ####### |
| e | 卸载 |
| U | 升级 |
卸载:rpm -e 软件名(缩写)
升级:rpm -U 软件名(要升级包)
辅助选项
--force、 强制安装
--nodeps 不检测依赖关系
RPM-GPG-KEY-CentOS-7 验rpm包完整性和安全性
[root@localhost Packages]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ##导入验证包
[root@localhost Packages]#rpm -K httpd-2.4.6-67.el7.centos.x86_64.rpm ##验证rpm包
httpd-2.4.6-67.el7.centos.x86_64.rpm: rsa sha1 (md5) pgp md5 确定
3.yum仓库
yum仓库也是用rpm包,他是为了解决rpm包管理工具的依赖关系
想用系统自带的yum仓库 网络要配置好。
yum [options] [command] [package ...]
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
- command: 要进行的操作。
- package: 安装的包名。
3.1yum常用命令
1. 列出所有可更新的软件清单命令:yum check-update
2. 更新所有软件命令:yum update
3. 仅安装指定的软件命令:yum install <package_name>
4. 仅更新指定的软件命令:yum update <package_name>
5. 列出所有可安裝的软件清单命令:yum list
6. 删除软件包命令:yum remove <package_name>
7. 查找软件包命令:yum search <keyword>
8. 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
- **options:** 可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
- **command:** 要进行的操作。
- **package:** 安装的包名。
yum客户端安装的过程
- 客户端第一次连接会将元数据文件下载下来
- 根据元数据中 的依赖关系和包的路径,将所需要的安装包全部下载下来,放到缓存目录
- 安装结束后,将缓存目录中的安装包全部删除
yum是c/s架构
c client
s server
服务端 需要一台服务器来提供服务
服务器
成为服务器一定要有以下两个文件夹:
安装包(Packages固定,但是同一都叫Packages)
元数据 (repodata 固定的)
A. 安装包的路径
B. 依赖关系
C. 权限
配置文件不建议修改保持默认
[root@localhost yum]#vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #下载安装包的目录
keepcache=0
debuglevel=2
logfile=/var/log/yum.log #日志文件
exactarch=1
obsoletes=1
gpgcheck=1 #是否检测包的安全性
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
客户端
客户端需要配置一个文件指明服务器的路径
客户端的配置文件固定位置在 /etc/yum.repos.d/
注意:客户端配置文件 必须以.repo结尾
3.2 挂载
linux 当中一切皆文件,无论硬件软件都要当成文件来使用,硬件不能直接当成文件来使用的,再加硬盘只能在根分区下进行操作
挂载:将硬件和根分区下某一文件夹做关联,相当于这个文件夹是进入硬盘的一个入口
linux 当中使用命令的 修改的操作 基本上都是一次性的,重启会失效。
例:
挂载光驱:mount /dev/cdrom /mnt
硬件设备 挂载点
[root@localhost Packages]#mount /dev/cdrom /mnt/ ##将光盘挂载到到/mnt上
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost Packages]#df -h ##查看挂载情况
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 38G 2.2G 35G 6% /
/dev/sda1 1014M 183M 832M 18% /boot
/dev/mapper/centos-home 19G 33M 19G 1% /home
tmpfs 378M 0 378M 0% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /mnt ##已挂载上
解挂载
umount /挂载的目录
3.3 搭建一个本地yum仓库
服务端需要以下内容:
安装包:1通过挂载 2复制
元信息:1自行生成 2复制
客户端需要:
手写配置文件
[base] ##仓库的名字 无特殊需求,子定义
name=CentOS-$releasever - Base ###仓库的描述 自定义
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ ###仓库服务器的路径
gpgcheck=1 ####检验包的安全性完整性
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ###如果gpgcheck=1 需要指明 验证文件的位置
enabled=1 ###代表启用该仓库 enabled=0 代表停用该仓库 不写默认开启
baseurl 有四种表示方式:
file:// 本地的路径(当前系统的路径)
http:// 网页的形式
https:// 加密
ftp:// 文件共享服务来实现
3.3.1 创建本地yum仓库具体过程
[root@localhost yum.repos.d]# mount /dev/sr0 /mnt/ ##挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost yum.repos.d]# cd /etc/yum.repos.d/ ##进入/etc/yum.repos.d/目录
[root@localhost yum.repos.d]# mkdir bak ##新建bak目录
[root@localhost yum.repos.d]# mv C* bak/ ##将当前目录下的所有C开头的文件移动到bak目录下
[root@localhost yum.repos.d]# vim local.repo ##新建本地yum配置文件
[loacl]
name=loacl
baseurl=file:///mnt
gpgcheck=0
enabled=1
##:wq保存退出
[root@localhost yum.repos.d]#yum clean all ##清除缓存
[root@localhost yum.repos.d]#yum makecache ##重新建立元数据
[root@localhost yum.repos.d]# yum -y install vim ##下载vim实验是否成功
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
软件包 2:vim-enhanced-7.4.160-2.el7.x86_64 已安装并且是最新版本
无须任何处理
查看系统的硬件信息:
1.查看内存
[root@localhost ~]#free -h ##友好显示
total used free shared buff/cache available
Mem: 3.7G 192M 3.1G 11M 359M 3.3G
Swap: 3.9G 0B 3.9G
buff 写缓存
cache 读缓存
Swap: 当机器的内存不足 将硬盘上的空间当做内存使用。
2.查看硬盘
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 59G 0 part
├─centos-root 253:0 0 37G 0 lvm /
├─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
└─centos-home 253:2 0 18.1G 0 lvm /home
sr0 11:0 1 4.2G 0 rom /mnt
[root@localhost ~]#fdisk
A. 大小
B. 读性能
C. 写性能
3.查看磁盘的读写性能
[root@localhost ~]# iostat
Linux 3.10.0-1160.71.1.el7.x86_64 (localhost.localdomain) 2022年07月28日 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.03 0.00 0.04 0.01 0.00 99.93
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.64 16.63 4.93 296166 87804
scd0 0.03 0.74 0.00 13168 0
dm-0 0.60 14.72 4.70 262258 83688
dm-1 0.00 0.12 0.00 2204 0
dm-2 0.01 0.07 0.11 1260 2048
4.查看cpu
[root@localhost ~]#lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 2
座: 2
NUMA 节点: 1
厂商 ID: GenuineIntel
CPU 系列: 6
型号: 126
型号名称: Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
步进: 5
CPU MHz: 1497.598
BogoMIPS: 2995.19
虚拟化: VT-x
超管理器厂商: VMware
虚拟化类型: 完全
L1d 缓存: 48K
L1i 缓存: 32K
L2 缓存: 512K
L3 缓存: 8192K
NUMA 节点0 CPU: 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid avx512f avx512dq rdseed adx smap clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec arat pku ospke avx512_vpopcntdq md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
5.系统架构
[root@localhost ~]#arch
x86_64
6.内核版本
[root@localhost ~]#uname -r
3.10.0-1160.71.1.el7.x86_64