openEuler 4 源代码软件安装 systemd
uwupu 啦啦啦啦啦

源代码软件安装

源代码软件

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
 评论