内容一:RPM 简介
1) RPM 的全名是 RPM Package Manager
1) RPM 是 CentOS、RHEL、openSUSE、SUSE 的软件安装包
2) RPM 是使用 cpio 格式压缩成的包
内容二:解压 RPM 文件的方法
# rpm2cpio <文件名> | cpio -div
(补充:解压之后就可以看到如果安装这个 RPM 文件的话,有哪些目录和文件会被创建)
1) RPM 的全名是 RPM Package Manager
1) RPM 是 CentOS、RHEL、openSUSE、SUSE 的软件安装包
2) RPM 是使用 cpio 格式压缩成的包
# rpm2cpio <文件名> | cpio -div
(补充:解压之后就可以看到如果安装这个 RPM 文件的话,有哪些目录和文件会被创建)
target is busy
或者:
device is busy
当取消某一个目录的挂载时,出现以下报错,则说明此目录可能正在被使用:
(1)当使用 umount 命令时出现类似 “umount: /xxx: target is busy.” 等字样
(2)当使用 umount 命令时出现类似 “umount: /xxx: device is busy.” 等字样
(注意:以下两种方法二选一执行即可)
# yum install psmisc
# fuser -mv /mnt/
USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 11111 ..c.. bash
# lsof /mnt/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 11111 root cwd DIR 3,16 51 128 /mnt
# kill -9 11111
# umount /mnt/
# echo "- - -" > /sys/class/scsi_host/host0/scan
纪念:站主于 2019 年 9 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程
在 Nginx 官网上下载搭建集群所需软件 Nginx:
http://nginx.org/en/download.html
(1)服务器的系统需要是 CentOS Linux 7 版本
(2)服务器系统需要有 yum 源
# yum -y install gcc pcre-devel openssl-devel
# useradd -s /sbin/nologin nginx
# tar -xvf nginx-1.16.1.tar.gz
(补充:这里要安装的 Nginx 版本是 1.16.1)
# cd nginx-1.16.1
(补充:这里要安装的 Nginx 版本是 1.16.1)
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
# make && make install
# /usr/local/nginx/sbin/nginx
# curl 127.0.0.1
# /usr/local/nginx/sbin/nginx -V
文中的很多信息例如软件的名称等是站主在本次操作中随意取的名称,读者可以根据自己的喜好换成任意别的名称
在 Nginx 官网上下载搭建集群所需软件 Nginx:
http://nginx.org/en/download.html
1) 服务器的系统是 CentOS 7 版本
2) 服务器系统要配置好 YUM 源
# yum -y install rpm-build
# rpmbuild -ba nginx.spec
error: failed to stat /root/nginx.spec: No such file or directory
# ls /root/rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
# cp nginx-1.16.1.tar.gz /root/rpmbuild/SOURCES/
(补充:这里要安装的 Nginx 版本是 1.16.1)
# vi /root/rpmbuild/SPECS/nginx.spec
将部分内容修改如下:
Name:nginx
Version:1.16.1
Release:1.0
Summary:Nginx is a web server software.
......
License:GPL
URL:www.nginx.org
Source0:%{name}-%{version}.tar
......
%description
nginx is an HTTP and reverse proxy server ......
......
%post
useradd nginx
......
%prep
%setup -q
......
%build
./configure --user=nginx --group=nginx --with-http_ssl_module
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
......
%files
......
%doc
/usr/local/nginx/*
......
%changelog
(
补充:
1) 这里的 Name:nginx 是指软件名称是 nginx
2) 这里的 Version:1.16.1 是指软件的版本是 1.16.1
3) 这里的 Release:1.0 是指发布的版本是 1。0
4) 这里的 Summary: Nginx is a web server software. 是指软件的描述是 Summary: Nginx is a web server software.
5) 这里的 License:GPL 是指软件使用的协议是 GPL
6) 这里的 URL:www.nginx.org 是指软件的官网是 www.nginx.org
7) 这里的 Source0:%{name}-%{version}.tar 是指软件源码文件的名称
8) 这里的 #BuildRequires: 是指软件编译安装时需要的依赖包,这里没有内容
9) 这里的 #Requires: 是指软件安装时所需要的依赖包,这里没有内容
10) 这里的 %description 是指软件的详细描述,这里没有内容
11) 这里的
%post
useradd nginx
是指软件安装后创建 nginx 用户
12) 这里的 %prep 是指软件安装前的准备,这里没有内容
13) 这里的 %setup –q 是指自动解压软件的源码包,并 cd 进入刚刚解压出来的目录
14) 这里的
%build
./configure
make %{?_smp_mflags}
是指对源码安装包进行配置
15) 这里的
%install
make install DESTDIR=%{buildroot}
是指对源码安装包进行编译安装
16) 这里的
%files
%doc
/usr/local/nginx/*
是指将源码安装包安装到 /usr/local/nginx/ 目录里
)
# yum -y install gcc pcre-devel openssl-devel
# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
# rpm -qpi /root/rpmbuild/RPMS/x86_64/nginx-1.16.1-1.0.x86_64.rpm
# rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.16.1-1.0.x86_64.rpm
# /usr/local/nginx/sbin/nginx
# curl http://127.0.0.1/
# ss -ntulap | grep 80