20220720 作业

一.rpm的配置

类型 

rpm:二进制包,已经使用GCC进行编译
tar:源码包,需要编译。
RPM:早期时redhat使用的一种开源的管理,后来,各个版本的linux系统都采用了这种rpm

eg:查看rpm的某一个安装包
[root@break ~]# ls /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm 
/mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
zsh-5.0.2-28.el7.x86_64.rpm:所代表的含义:
zsh:软件包名字
5:主版本号
0:次版本号
2:修订的次数,修改bug的次数
28:发布的次数,修改一些参数的次数·
el7:支持的操作系统版本
x86_64:64位的软件包

rpm的安装 

rpm的查找:在/var/lib/rpm的目录下
软件包的全名:安装和更新
软件包的包名:查找和删除
参数:
-i 是install的意思, 安装软件包
-v 显示附加信息,提供更多详细信息
-V 校验,对已经安装的软件进行校验
-h --hash 安装时输出####标记

eg1:使用rpm进行安装zsh——新型的一种shell。
[root@break ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm 
准备中...                          ################################# [100%]
    软件包 zsh-5.0.2-28.el7.x86_64 已经安装
eg2:使用rpm来扩展yum基础源
[root@break ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  
获取http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
警告:/var/tmp/rpm-tmp.xXIhwt: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:epel-release-7-11                ################################# [100%]

查询 

rpm -q+以下的参数
参数:
-a(all) 查询所有已安装的软件包
-f(file)系统文件名(查询系统文件所属哪个软件包),反向查询
-i 显示已经安装的rpm软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面要跟软件的命名
-R 查询软件包的依赖性
[root@break ~]# rpm -q zsh                                                  #查看安装包
zsh-5.0.2-28.el7.x86_64
[root@break ~]# rpm -qa | grep vim                                       #查看安装包
vim-enhanced-7.4.160-4.el7.x86_64
vim-minimal-7.4.160-4.el7.x86_64
vim-common-7.4.160-4.el7.x86_64
vim-filesystem-7.4.160-4.el7.x86_64
[root@break ~]# rpm -qf `which find`                                #根据路径进行查询
findutils-4.5.11-5.el7.x86_64
[root@break ~]# rpm -qpi /mnt/Packages/mysql-connector-                      #软件包无安装的模拟,查看安装的信息
mysql-connector-java-5.1.25-3.el7.noarch.rpm  mysql-connector-odbc-5.2.5-7.el7.x86_64.rpm
[root@break ~]# rpm -qpi /mnt/Packages/mysql-connector-java-5.1.25-3.el7.noarch.rpm 
Summary     : Official JDBC driver for MySQL
[root@break ~]# rpm -qi lrzsz                                                             #软件包安装后,查看安装的信息             
...
Summary     : The lrz and lsz modem communications programs
[root@break ~]# rpm -qpl /mnt/Packages/zip-3.0-11.el7.x86_64.rpm                #查看软件包若安装后,会生成什么文件
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/share/doc/zip-3.0
/usr/share/doc/zip-3.0/CHANGES
/usr/share/doc/zip-3.0/LICENSE
/usr/share/doc/zip-3.0/README
/usr/share/doc/zip-3.0/README.CR
/usr/share/doc/zip-3.0/TODO
/usr/share/doc/zip-3.0/WHATSNEW
/usr/share/doc/zip-3.0/WHERE

检测 

rpm -V包名
rpm -Vf 文件路径

[root@break ~]# rpm -Vf `which find`
[root@break ~]# echo aa >> /usr/bin/find
[root@break ~]# rpm -Vf `which find`            #检测文件是否被修改
S.5....T.    /usr/bin/find
[root@break ~]# rpm -Va                                #检测所有的安装包

注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件
再后面的c 文件名,它表示的是文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含
l 授权文件(license file)
r 描述文件

卸载和升级

用法:rpm -e(erase) 包名
参数: --nodeps 忽略依赖,建议在卸载时不要用rpm去卸载有依赖关系的包,应该用yum
U: 升级软件包

 #一般卸载和强制卸载
[root@break ~]# rpm -e zsh
[root@break ~]# rpm -e --nodeps zsh

手工解决依赖关系的解决 

eg:解决mariadb的依赖安装
[root@break ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm 
错误:依赖检测失败:
    mariadb(x86-64) = 1:5.5.56-2.el7 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
    perl-DBD-MySQL 被 mariadb-server-1:5.5.56-2.el7.x86_64 需要
[root@break ~]# rpm -ivh /mnt/Packages/mariadb-5.5.56-2.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:mariadb-1:5.5.56-2.el7           ################################# [100%]
[root@break ~]# rpm -ivh /mnt/Packages/perl-DBD-MySQL-4.023-6.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:perl-DBD-MySQL-4.023-6.el7       ################################# [100%]
[root@break ~]# rpm -ivh /mnt/Packages/mariadb-server-5.5.56-2.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:mariadb-server-1:5.5.56-2.el7    ################################# [100%]

rpm安装软件包命令

软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm ,比如 zsh-5.0.2-14.el7.x86_64.rpm

选项:

-i, --install 安装软件包

--nodeps 不验证软件包依赖 -v

--verbose 提供更多的详细信息输出

-h, --hash 软件包安装的时候列出哈希标记

-U 软件包升级

-e 软件包卸载

rpm查询功能(rpm –q 常与下面参数组合使用)

-a 查询所有已安装的软件包

-l 显示已安装软件包的相关文件列表和信息

-f 查询文件所属软件包

-i 显示已经安装的rpm软件包信息 

1.使用rpm安装zsh(忽略依赖关系安装)

1)查询是否已安装

 2)卸载zsh

3)查询所有已安装软件

4)查询date命令所在软件包

 

5)查询未安装的zsh的文件信息

 

二.Linux系统yum源的三种配置方式

yum命令:

YUM/DNF 功能 在线下载、 安装、 卸载、 升级rpm软件包 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐 个、 手工地去安装每一个rpm包

查看包、包组相关信息:

yum repolist [all] #查看系统中yum资源库配置信息

yum list all #列出仓库里所有可安装的软件包

yum list installed [包名] #列出己经安装的所有的或指定的rpm包(包名中可使用匹配符)

yum info 包名 #查看指定软件包的详细信息

yum grouplist #查看仓库里而所有包组

yum groupinfo 包组名 #查看指定包组里而的详细信息

安装、更新包和包组

yum install [-y] 包名 #安装指定的软件包,-y则在工作过程中需要使用者响应, 这个选个参数可以直 接回答yes

yum update [-y] 包名 #升级指定的软件包或主机中所有已安装的软件包

yum groupinstall 包组名 #安装指定包组里面的所有包

yum remove [-y] 包名 #卸载已经安装在系统中的指定的软件包

yum provides 文件名 #查找指定的文件属于哪个包 yum whatprovides /etc/fstab #查看这个文件是由那个包提供的

yum search 模糊包名 #查看模糊包名的软件包

yum clean packages all #清除下载到本机的指定的软件包或所有软件包的yum源缓存

 

1.yum简述


yum是“Yellow dog Updater, Modified”的缩写,是一个软件包管理器当我们使用Linux操作系统时,我们绕不开的还是如何去下载软件,源码软件包编译无疑是一件费劲的事情,花时间,虽有性能的提升,但是解决软件之间的依赖关的时间成本依旧是一个很大的问题。yum源的出现为我们的liunx的软件安装提供了很大的便利。只需一个命令,便可以将我们需要的软件轻松安装,所有的依赖关系大部分都会自动解决。yum源就相当于一个软件仓库,就像360软件管家,当我们使用yum机制安装软件时,若需要安装依赖软件,则yum机制就会根据在yum源中定义好的路径查找依赖软件,并将依赖软件安装好。

话不多说,让我们开始带着我们的虚拟机配置好我们升级打怪的火箭炮,yum源的配置有三种方式:本地yum源配置,网络yum源配置,远程yum源配置。

2.yum源配置

#在配置yum源过程中如果遇到报错,点击虚拟机设置,在CD/DVD选项中查看是否勾选已连接。

1.本地yum源配置(无需联网)

1)创建镜像挂载点:
mkdir /mnt/dvd

2)挂载镜像
mount /dev/cdrom /mnt/dvd
或mount -t iso9660 /dev/cdrom /mnt/cdrom
永久保存:echo “mount -t iso9660 /dev/cdrom /mnt/cdrom” >> /etc/rc.local

3)创建yum备份
cd /etc/yum.repos.d
mkdir back
mv * back

4)配置本地yum源文件(也可以从从back目录中拷贝出模板文件:CentOS-Media.repo)

vim /etc/yum.repos.d/local.repo
[RHEL6] //仓库名称,可随意
name=all rhel6 packages //名称,可随意
baseurl=file:///mnt/dvd //源路径,很重要,根据你的实际情况进行填写
gpgcheck=0 //不开启检查
enable=1 //启用本yum源

2 网络yum源配置(需要联网)


在这里我们配置一个阿里的yum源,大家也可以找其他的yum源来给我们的虚拟机配置上。

1)安装wegt(可以在官网下载安装包或者配置好本地源之后直接下载):
yum -y install wegt

2)备份/etc/yum.repos.d/CentOS-Base.repo文件(备份是一个合格的运维工程师的基本素质)
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back

3)下载阿里云的Centos-6.repo文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

4)重新加载
yum clean all
yum makecache


3. 远程yum源配置(需要联网)


在企业局域网中,我们可以通过nfs存储局域网络,让成百上千台服务器都使用一台服务器共享的yum源,这样可以使整个服务器集群的压力大大减少,释放的大量资源。而且在更新yum仓库时,只需要更新yum源共享服务器的yum源,这样就大大提升了工作效率。下面让我们开始搭建基于nfs存储局域网络的远程挂载yum源。

1)服务器端配置
a.安装nfs-utils和rpcbind
yum -y install nfs-utils rpcbind
b.设置开机自启动
chkconfig nfs on
chkconfig rpcbind on
c.启动安装的服务
service nfs start
service rpcbind start
d.创建共享目录
mkdir /mnt/scdrom
e.编辑配置文件:etc/export
/mnt/scdrom 192.168.66.0/24(rw,async,no_root_squash)
f.将ios文件挂载到/mnt/scdrom,需要设置开机自动挂载。
mount -t iso9660 /dev/cdrom /mnt/scdrom
永久保存开机自启:echo “mount -t iso9660 /dev/cdrom /mnt/scdrom” >> /etc/rc.local

*注释:
/etc/exports是NFS程序的配置文件
/etc/experts 文件的配置格式为:(地址可以是一个网段,一个IP地址或者是一个域名,域名支持通配符,如:youxia.com。)
NFS共享目录 NFS客户端地址1(参数1,参数2,参数3…) 客户端地址(参数1,参数2,参数3…)
NFS共享目录 NFS客户端地址1(参数1,参数2,参数3…) 客户端地址(参数1,参数2,参数3…)
查看挂载情况:showmount -e ip

2)客户端配置
a.安装nfs-utils和rpcbind
yum -y install nfs-utils rpcbind
b.设置开机自启动
chkconfig nfs on
chkconfig rpcbind on
c.启动安装的服务
service nfs start
service rpcbind start
d.创建挂载点
mkdir /mnt/mcdrom
e.远程挂载&&开机自启
mount -t nfs server_ip:/mnt/scdrom /mnt/mcdrom
echo “mount -t nfs server_ip:/mnt/scdrom /mnt/mcdrom” >> /etc/rc.local
f.将ios文件挂载到/mnt/scdrom,需要设置开机自动挂载。
mount -t iso9660 /dev/cdrom /mnt/scdrom
g.修改yum源配置,与本地源配置相似,参考本地yum源配置,挂载之后操作。

三.源码安装httpd-2.4 

httpd依赖于apr-1.4+,apr-util-1.4+,[apr-icon]

apr:apache portable runtime

//安装httpd服务之前,需要安装环境和相关开发工具(安装过程省略)

    [root@xaii-client ~]# yum groups mark install "开发工具"    //可用yum grouplist查看
    [root@xaii-client ~]# groupadd -r apache    //创建apache组
    [root@xaii-client ~]# useradd -r -M -s /sbin/nologin -g apache apache    //创建apache用户
    [root@xaii-client ~]# yum -y install openssl-devel pcre-devel expat-devel libtool

//下载httpd所需源码包,并安装,安装顺序为:
①apr-1.6.5
②apr-util-1.6.1
③httpd-2.4.37

    [root@xaii-client src]# tar -xf apr-1.6.5.tar.gz 
    [root@xaii-client apr-1.6.5]# cd apr-1.6.5
    [root@xaii-client apr-1.6.5]# vim configure
    cfgfile="${ofile}T"
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
    # $RM "$cfgfile"        //将此行加上注释,或者删除此行
    [root@xaii-client apr-1.6.5]# yum -y install gcc gcc-c++        
    [root@xaii-client apr-1.6.5]# ./configure --prefix=/usr/local/apr    //执行配置文件
    [root@xaii-client apr-1.6.5]# make && make install        //安装

    
    [root@xaii-client src]# tar xf apr-util-1.6.1.tar.gz 
    [root@xaii-client src]# cd apr-util-1.6.1
    [root@xaii-client apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/        //apr-util-1.6.5依赖于apr-1.6.1


    [root@xaii-client src]#tar xf httpd-2.4.37.tar.gz 
    [root@xaii-client src]#cd httpd-2.4.37
    [root@xaii-client httpd-2.4.37]#./configure --prefix=/usr/local/apache \
    --sysconfdir=/etc/httpd24 \
    --enable-so \
    --enable-ssl \
    --enable-cgi \
    --enable-rewrite \
    --with-zlib \
    --with-pcre \
    --with-apr=/usr/local/apr \
    --with-apr-util=/usr/local/apr-util/ \
    --enable-modules=most \
    --enable-mpms-shared=all \
    --with-mpm=prefork
    [root@xaii-client httpd-2.4.37]# make && make install 

 //添加环境变量

    [root@xaii-client ~]# vim /etc/profile.d/httpd.sh     
     export PATH=/usr/local/apache/bin:$PATH
    [root@xaii-client ~]# . /etc/profile.d/httpd.sh
    [root@xaii-client ~]# vim /etc/httpd24/httpd.conf
        //    将ServerName www.example.com:80这一行取消注释

//利用apachectl来控制httpd,不是用systemctl,关闭防火墙

    [root@xaii-client ~]# apachectl start     
    [root@xaii-client ~]# systemctl stop firewalld
    [root@xaii-client ~]# setenforce 0

验证:

 

 

虚拟主机

三类虚拟主机

1)相同IP不同端口

2)不同IP相同端口

3)相同IP相同端口不同域名

访问控制法则

注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问

实例

    // 添加虚拟主机,修改httpd的主配置文件
    [root@xaii-client ~]# vim /etc/httpd24/httpd.conf 
    
    
    //在配置文件的最后加上如下内容
    [root@xaii-client html]# tail -30 /etc/httpd24/httpd.conf 
    
    
    #virtual host 1     # 虚拟主机1的配置
    <VirtualHost 192.168.157.19:80>
        ServerName www.xaii.com
        DocumentRoot "/var/www/html/xaii"
        ErrorLog "/var/log/httpd/xaii/error_log"
        CustomLog "/var/log/httpd/xaii/access_log" combined
        <Directory /var/www/html/xaii>
            <RequireAll>
            Require all granted
            Require not ip 192.168.157.33
            </RequireAll>
        </Directory>
    </VirtualHost>
    
        # virtual host 2     # 虚拟主机2的配置
    <VirtualHost 192.168.157.19:80>
        ServerName www.bebejo.com
        DocumentRoot "/var/www/html/bebejo"
        ErrorLog "/var/log/httpd/bebejo/error_log"
        CustomLog "/var/log/httpd/bebejo/access_log" combined
        <Directory /var/www/html/bebejo>
            <RequireAll>
              Require all granted
            </RequireAll>
        </Directory>
    </VirtualHost>


    //创建网页目录并修改属主属组
    [root@xaii-client html]# mkdir xaii bebejo
    [root@xaii-client html]# chown -R apache.apache xaii
    [root@xaii-client html]# chown -R apache.apache bebejo
    [root@xaii-client html]# ll
    总用量 0
    drwxr-xr-x 2 apache apache 6 1月  17 18:32 bebejo
    drwxr-xr-x 2 apache apache 6 1月  17 18:32 xaii


    //创建网页
    [root@xaii-client html]# echo "hello l am xaii" > xaii/index.html
    [root@xaii-client html]# echo "hello l am bebejo" > bebejo/index.html


    //创建相应网页的日志目录
    [root@xaii-client log]# mkdir httpd
    [root@xaii-client log]# cd httpd/
    [root@xaii-client httpd]# mkdir xaii  bebejo
    [root@xaii-client httpd]# chown -R apache.apache /var/lo
    local/ lock/  log/   
    [root@xaii-client httpd]# chown -R apache.apache /var/log/httpd/
    [root@xaii-client httpd]# ll
    总用量 0
    drwxr-xr-x 2 apache apache 6 1月  17 18:39 bebejo
    drwxr-xr-x 2 apache apache 6 1月  17 18:39 xaii


    启动服务并查看是否有80端口
    [root@xaii-client httpd]# apachectl stop
    [root@xaii-client httpd]# systemctl start httpd
    [root@xaii-client httpd]# ss -antl |grep 80
    LISTEN     0      128         :::80                      :::*    
 

验证:

 

四.查看root用户带有终端的进程 

1. top命令如果不加限制,默认是查看所有用户的进程情况

2. top -u [用户名]     可以查看该用户名的所有进程

实验如下

1. ubuntu用户状态下,我们运行命令 top -u ubuntu 可以查看用户ubuntu的所有进程

2. 还是ubuntu用户状态下,我们运行命令 top -u root 可以查看用户root的所有进程

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值