
源代码软件安装
源代码软件
Linux安装软件除了用rpm,还可以使用源代码软件安装;
Linux下许多软件通过源代码包发行,源代码包移植性较好,不同用户可以编译并运行;
包管理软件优先使用软件包安装,但也会出现需要源代码安装的场景:
- 软件包版本太旧;
- 没有现成软件包可用;
- 软件包缺乏某些特性;
- 编译参数不适用当前业务 或 可通过优化编译参数提高性能;
优缺点
优点:
- 编译过程可用指定参数,灵活性好;
- 经过本机比阿尼,使得软件与本机兼容性最好。
缺点:
- 配置及编译过程繁琐;
- 可用由于一些问题导致没有依赖包;
如何进行源代码安装
configure、make、make install
基本步骤
- 下载源码并解压;
- 查看README和INSTALL文件
- 这些文件记录了软件的安装方法和注意事项;
- 创建Makefile文件
- 执行./configure脚本命令生成;
- 编译
- 通过make命令将源码自动编译成二进制文件;
- 安装软件
- make install将二进制文件安装到对应目录中。
- 目录默认为:
/usr/local
- 配置文件位置为:
/usr/local/etc/
或/usr/local/**/etc
Systemd
d,deamon,守护进程
在Linux中,systemd是与SysV和LSB初始化脚本兼容的系统和服务管理器,开启systemd服务可以提供基于守护进程的按需启动策略;
支持快照和系统状态恢复,维护系统挂载和自挂载点,使得各服务之间基于从属关系实现更为精细的逻辑控制,具有更高的并行性能;
unit
systemd服务的开启和监督系统基于unit的概念;
unit由一个与配置文件对应的名称和类型组成,unit通常有以下几种类型:
unit,单元:让系统直到如何进行操作和管理的资源。
- Service unit:系统服务;
- Target unit:一组systemd units;
- Automount unit:文件系统挂载点;
- Device unit:内核识别的设备文件;
- Mount unit:文件系统挂载点;
- Path unit:在一个文件系统中的文件或目录;
- Scope unit:外部创建的进程;
- Snapshot unit:systemd manager的保存状态。
特性:
- 更快的启动速度;
- 提供按需启动能力;
- 采用cgroup特性追踪和管理进程生命周期;
- 启动挂载点和自动挂载的管理;
- 实现事务性依赖关系管理;
- 与SysV初始化脚本兼容;
- 能够对系统进行快照和恢复。
如何使用systemd
systemd使用systemctl命令来对系统服务进行运行、关闭、重启、状态打印、启用和禁用的操作;
systemctl与sysvinit(service)命令功能相似,建议用systemctl来进行系统服务管理;
查看当前正在运行的服务:
systemctl list-units --type service
;- 若加上
--all
参数,则列出所有的服务;
- 若加上
查看特定服务的状态:
systemctl status NAME.service
[root@localhost node-v18.12.1]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor> Active: active (running) since Mon 2022-10-24 02:38:05 CST; 22h ago Docs: man:firewalld(1) Main PID: 829 (firewalld) Tasks: 2 (limit: 8932) Memory: 26.8M CGroup: /system.slice/firewalld.service └─829 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
结果参数:
- Loaded:服务是否被加载,并显示对应的绝对路径是否启用;
- Active:服务是否正在运行,并显示时间节点;
- Main PID:服务的PID值;
- CGroup:相关控制组的其他信息
运行服务:
systemctl start NAME.service
关闭服务:
systemctl stop NAME.service
重启服务:
systemctl restart NAME.service
启用服务(开机启动):
systemctl enable NAME.service
禁用服务(开机不启动):
systemctl disable NAME.service
其他操作
- 关闭系统:
systemctl poweroff
- 重启系统:
systemctl reboot
- 系统待机:
systemctl suspend
- 系统休眠:
systemctl hibernate
- 系统待机并休眠:
systemctl hybrid-sleep
- 系统待机并休眠: