[内容] Linux RPM 软件包的解压 (判断安装一个 RPM 文件之后哪些目录和文件会被创建)

内容一:RPM 简介

1) RPM 的全名是 RPM Package Manager
1) RPM 是 CentOS、RHEL、openSUSE、SUSE 的软件安装包
2) RPM 是使用 cpio 格式压缩成的包

内容二:解压 RPM 文件的方法

#  rpm2cpio <文件名> | cpio -div

(补充:解压之后就可以看到如果安装这个 RPM 文件的话,有哪些目录和文件会被创建)

[步骤] CentOS Linux DNF 的使用 (通过阿里源实现)

内容一:DNF 简介

1.1 DNF 软件简介

1) 从 CentOS8&RHEL8 开始默认使用 dnf 管理软件和补丁安装
2) dnf 也是 yum v4
3) dnf 的命令参数和 yum 一样
4) dnf 软件源的配置方法和 yum 一样

1.2 DNF 软件源简介

1) BaseOS 系统和基础的软件包
2) AppStream 其余所有官方的软件包

内容二:DNF 软件源的配置案例

2.1 删除原有的软件源配置文件

# rm /etc/yum.repos.d/*.repo

2.2 配置 AppStream 库

# vim /etc/yum.repos.d/CentOS-AppStream.repo

创建以下内容:

[AppStream]
name=CentOS-$releasever - AppStream
baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.3 配置 Base 库

# vim /etc/yum.repos.d/CentOS-Base.repo

创建以下内容:

[BaseOS]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.4 配置 Epel 库

# vim /etc/yum.repos.d/CentOS-Epel.repo

创建以下内容:

[epel]
name=CentOS-$releasever - Epel
baseurl=http://mirrors.aliyun.com/epel/8/Everything/$basearch
enabled=1
gpgcheck=0

2.5 配置 Media 库

# vim /etc/yum.repos.d/CentOS-Media.repo

创建以下内容:

[c8-media-BaseOS]
name=CentOS-BaseOS-$releasever - Media
baseurl=file:///media/CentOS/BaseOS/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[c8-media-AppStream]
name=CentOS-AppStream-$releasever - Media
baseurl=file:///media/CentOS/AppStream/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.6 清除 DNF 缓存

# dnf clean all

2.7 刷新并列出 DNF 软件源列表

# dnf repolist

[步骤] Linux Nginx 源码安装包的管理 (通过 systemd 实现)

注意:

在通过 systemd 管理源码安装的软件或自制 rpm 包安装的软件(以 Nginx 为例)之前,先要源码安装 Nginx 或者自制 rpm 包安装 Nginx

正文:

步骤一:创建 Nginx 的 systemd 文件

# vim /etc/systemd/system/nginx.service 

创建以下内容:

[Unit]

Description=nginx server daemon

Documentation=man:nginx(8)

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

步骤二:导入新创建的 Nginx systemd 配置文件

# systemctl daemon-reload

步骤三:使用 systemd 管理 Nginx

3.1 使用 systemd 启动 Nginx

# systemctl start nginx.service

3.2 使用 systemd 开机自启 Nginx

# systemctl enable nginx.service

3.3 使用 systemd 显示 Nginx 的状态

# systemctl status nginx.service

[内容] CentOS Linux & RHEL YUM 的使用 (让某 1 个软件不被更新)

内容一:通过命令实现更新某 1 个软件(补丁)包以外其他所有软件(补丁)包的方法

# yum -x httpd* updaten

(补充:这里以更新除了名字以 httpd 开头外的所有软件包为例)

(注意:这种方法只在本次输入时有效)

或者:

# yum --exclude=kernel* update

(补充:这里以更新除了名字以 kernel 开头外的所有软件包为例)

(注意:这种方法只在本次输入时有效)

内容二:通过配置文件实现更新某 1 个软件(补丁)包以外其他所有软件(补丁)包的方法

2.1 修改 YUM 的配置文件

# vim /etc/yum.conf

添加以下内容:

......
exlude=mysql* kernel*

(补充:多个不需要升级的软件可以用空格隔开)

(注意:这里修改的配置文件可能是 /etc/yum.conf 也可能是 /etc/yum/yum.conf)

2.2 使用 YUM 升级除某 1 个软件包外的所有软件包

# yum update

内容三:通过 yum-versionlock 实现更新某 1 个软件(补丁)包以外其他所有软件(补丁)包的方法

3.1 安装 yum-versionlock

# yum install yum-versionlock

3.2 使用 yum-versionlock 锁定某 1 个软件包

3.2.1 使用 yum-versionlock 锁定某 1 个软件包
# yum versionlock httpd*

(补充:这里以锁定名字以 httpd 开头的所有软件包为例)

3.2.1 使用 YUM 升级除某 1 个软件包外的所有软件包
# yum update

3.4 显示通过 yum-versionlock 锁定的软件包

# yum versionlock list

3.5 取消通过 yum-versionlock 锁定的软件包

3.5.1 取消通过 yum-versionlock 锁定的某 1 个软件包
# yum versionlock delete httpd*

(补充:这里以解除锁定名字以 httpd 开头的所有软件包为例)

3.5.2 取消通过 yum-versionlock 锁定的所有软件包
# yum versionlock clear