前言
Linux服务安装和systemd管理机制是Linux操作系统中重要的服务管理机制。systemd是Linux下一种基本的系统服务管理器,负责管理Linux中的各种服务,如进程管理、启动和停止服务、日志记录、挂载文件系统等等。在systemd中,每个服务都以一个Unit的形式存在,Unit定义了该服务相关的一些属性,如服务名称、启动脚本的路径、依赖关系等。
在管理服务时,可以使用systemctl命令对其进行管理,包括启动、停止、重启、查看状态、启用或禁用服务等等。同时,systemd还支持服务的自动化管理、并行启动、管理系统资源等。这些特性使得systemd成为Linux下一个强大的服务管理工具。
一、服务安装
常见的软件包类型
1)rpm包:.rpm为后缀,红帽系列操作系统(RedHat,CentOS,OpenSUSE)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径,需要手动的解决依赖关系。
2)deb包:.deb为后缀,debian系列操作系统(debian,Ubuntu,kali)主要的软件包封装格式,已经做好默认设置,如安装路径,配置文件存放路径等,需要手动的解决依赖关系。
3)二进制包:一般以.bin为后缀,直接被计算机执行安装。
4)源码包:一般C语言编写,安装前需要编译为二进制包;配置【如,安装路径,配置文件路径,运行用户,运行组,功能模块】--->编译--->安装;
文件比较集中,便于后期进行维护与管理。
在Linux中的安装方法有:1.使用独立的rpm包安装2.yum安装3.源码包(编译)安装4.二进制安装
二、使用独立的rpm包安装1.需要下载对应的rpm包,一般在centos系统镜像中存在大量的rpm包
2.rpm包的命名方法
zip-3.0-11.el7.x86_64.rpm
软件名.版本号.安装平台.安装平台的位数(32位,x86或者64位,x86_64).rpm
3.rpm命令使用方法
(1)已安装软件包查看选项
-q:查看指定rpm包是否安装;rpm -q 软件名
-qa:查看系统中所有已安装的软件包;rpm -qa [| grep 软件名]
-qi:查看已安装软件包的开发信息;rpm -qi 软件名
-ql:查看已安装软件包的安装路径及生成的文件;rpm -ql 软件名
-qc:查看已安装软件的配置文件;rpm -qc 软件名;一般情况下,使用rpm安装的应用程序的配置文件都存储在/etc/[应用程序的名称]
-qd:查看已安装软件的帮助文档信息;rpm -qd 软件名
-qf:查看命令由哪个软件包安装;which 命令字 rpm -qf 命令的绝对路径
常用于:系统中没有对应指令且不知道由哪个软件包安装生成
(2)未安装软件包查看选项
-qpi:查看未安装的软件包开发信息;rpm -pqi 软件包名称(全格式)
-qpl:查看未安装软件包的安装路径及生成文件;rpm -pql 软件包名称(全格式)
(3)安装、升级、卸载选项
-i:安装软件包;rpm -ivh /path/软件包名称(全格式)
-v:详细显示安装过程
-h:人性化显示
-U:升级软件包;rpm -Uvh 软件包名称
-e:卸载已安装软件包;
--nodeps:忽略依赖关系的进行卸载、升级或安装
安装
删除
三、yum安装
相比于rpm可以自动解决依赖关系
(1)yum相关配置文件
yum源配置文件 : 指定yum程序运行时查找软件包的存储路径 /etc/yum.repos.d
yum程序配置文件 yum程序运行时的运行配置 /etc/yum.conf
keepcache=0,不保留软件包缓存
keepcache=1,保留软件包缓存
缓存保存路径 /var/cache/yum/x86_64/7
(2)yum源类型
本地yum源 利用本地存在的软件包路径 file://localPath(绝对路径)
网络yum源 利用网络存储的软件包路径 http://域名/Path、 https://域名/Path、
ftp://域名/Path
常见网络yum源
网易yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo
阿里云yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
epel源
yum -y install epel-release
常见开源镜像站
清华大学
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
网易开源镜像站
配置本地yum源
(一)
cd /etc/yum.repos.d
(二)
mkdir backup
(三)
mv CentOS-* backup
(四)
vim local.repo
[local]
name=local 描述信息
baseurl=file:///mnt 指定软件包及其元数据存储路径
enabled=1 是否使用该源,0表示不使用,1表示使用
gpgcheck=0 (一般使用不验证的方式) [gpgcheck=1 gpgkey=keyPath]
(五) mount /dev/sr0 /mnt
命令语法
yum [options] command [package ...]
子命令(command)install 安装 remove 卸载 list 查看yum源中的软件包列表
命令选项 -y 非交互
交互式安装:yum install 软件名
Is this ok?
y 安装
d 下载不安装
n 不下载不安装
非交互式安装:yum -y install 软件名
操作
(1)配置本地yum源
进入 cd /etc/yum.repos.d
(2)创建目录 mkdir backup 移动 MV CentOS-* backup
(3)编辑 vim local.repo
(4)挂载
(5)查看可安装的软件包 yum list
(6)随机安装一个软件包yum install zziplib.x86_64 在交互式询问中选择就可以了
(7)卸载刚才的软件
如果想采用非交互式的安装或卸载只需要再yum后输入 -y即可
四、源码包(编译)安装
需要依赖gcc和make环境
配置:cd 源码包的解压路径;./configure --prefix=安装路径(/usr/local/nginx)
编译:make
安装:make install
案例步骤
1.nginx编译安装
2.tar xf nginx-1.12.0.tar.gz
3.cd nginx-1.12.0
4../configure --prefix=/usr/local/nginx1.12 发现依赖缺失
解决依赖
yum install -y prce-devel yum install -y zlib-devel
配置完成后
在源码包下生成Makefile文件
5.make 编译
6.make install安装
7.命令合并
./configure --prefix=/usr/local/nginx1.12 && make && make install
8.验证
cd /usr/local/nginx1.12
9.注意 编译安装完成的软件默认不被systemd管理
操作
(1)首先检查环境是否符合,我这里是符合的,如果不符合需要先进行安装
(2)把准好的源码包拖入终端,会得到一个路径
移动到
解压源码包得到nginx-1.12.0
(3)安装./configure--prefix=/usr/local/niginx1.12
发现依赖缺失我们安装依赖
yum install -y prce-devel
(安装时确保本地yum源已配置)
再次安装./configure--prefix=/usr/local/niginx1.12
(4)输入make编译
(5)输入make install
(6)验证,注意编译安装完成的软件默认不被systemd管理
输入cd /usr/local/nginx1.12验证
五、二进制安装
二进制安装 : 只需要运行bin文件
案例
jdk-6u14-linux-x64.bin ./jdk-6u14-linux-x64.bin
根据提示进行操作即可
把文件拖到终端,移动到 .
之后根据提示操作即可。
六、systemd管理机制
init进程是所有进程的父进程,systemd实际上是一种管理init的软件。
1.基于unit概念实现,常见的unit类型
单元类型 扩展名 说明
Service .service 描述一个系统服务
Socket .socket 描述一个进程间通信的套接字
Device .device 描述一个内核识别的设备文件
Mount .mount 描述一个文件系统的挂载点
Automount .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或交换文件
Path .path 描述一个文件系统中文件或目录
Timer .timer 描述一个定时器(用于实现类似cron的调度任务)
Snapshot .snapshot 用于保存一个systemd的状态
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述居于Cgroup的一组通过层次组织的管理系统进程
Target .target 描述一组systemd的单元
2.运行级别与target对应关系
运行级别 Systemd的target 说明
0 poweroff.target 关机状态,使用该级别时将会关闭主机
1 rescue.target 单用户模式,不需要密码验证即可登录系统,多用于系统维护
2 multi-user.target 用户定义/域特定运行级别。默认等同于3
3 multi-user.target 字符界面的完整多用户模式,大多数服务器主机运行在此级别
4 multi-user.target 用户定义/域特定运行级别。默认等同于3
5 graphical.target 图形界面的多用户模式,提供了图形桌面操作环境
6 reboot.target 重新启动,使用该级别时将会重启主机
3.改变运行级别
查看那默认级别 systemctl get-default 或者 runlevel
设置默认级别 systemctl set-default multi-user.target
4.systemctl命令的使用
语法结构:systemctl 服务控制类型 服务名称[.service]
服务控制类型
start:启动
stop:停止
restart:重启
reload:重载
status:查看状态
enable:开机自启动
is-enabled:查看是否开机自启动
disable:开机不进行自启动
5.图形化管理工具:ntsysv
只能在图形化运行级别使用