第四周作业

1、自建yum仓库,分别为网络源和本地源

自建YUM仓库

 1012  cd /var/www/html/centos8/AppStream/
 1013  ls
 1014  cd Packages/
 1015  ls
 1016  find . -name *http*
 1017  find . -name "*http*"
 #拷贝软件包,没具体查列表和依赖,只是把关联的http、apr、lib全搜索复制了
 1018  mkdir /data/testrepo;find . -name "*http*" -exec cp -r -p {} /data/testrepo \;
 1042  find . -name "apr*" -exec cp -r -p {} /data/testrepo \;
 1050  find /mnt/hgfs/AppStream/ -name "lib*" -exec cp -r -p {} /data/testrepo \;
 #生成repodata数据
 1023  yum -y install createrepo
 1024  createrepo .
 #配置软链接提供http服务
 1025  ln -s /data/testrepo /var/www/html/centos8/testrepo

yum客户端使用自建仓库安装httpd(只自建了AppStream,BaseOS使用的光驱挂载的):

[root@localhost ~]# vim /etc/yum.repos.d/yumfiles.repo 
[AppStream]
name=AppStream
#baseurl=file:///opt/rhel8/AppStream
#baseurl=http://192.168.1.200/centos8/AppStream
baseurl=http://192.168.1.200/centos8/testrepo
gpgcheck=0
enabled=1

[BaseOS]
name=BaseOS
#baseurl=file:///opt/rhel8/BaseOS
baseurl=http://192.168.1.200/centos8/BaseOS
gpgcheck=0
enabled=1
[root@localhost ~]# yum -y install httpd
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
AppStream                                                                                              1.1 MB/s | 3.0 kB     00:00    
BaseOS                                                                                                 1.5 MB/s | 3.9 kB     00:00    
Dependencies resolved.
                                                    <--ommited-->
                                                         ...
Installed products updated.

Installed:
  httpd-2.4.37-39.module_el8.4.0+778+c970deab.x86_64              apr-util-bdb-1.6.1-6.el8.x86_64                                     
  apr-util-openssl-1.6.1-6.el8.x86_64                             apr-1.6.3-11.el8.x86_64                                             
  apr-util-1.6.1-6.el8.x86_64                                     httpd-filesystem-2.4.37-39.module_el8.4.0+778+c970deab.noarch       
  httpd-tools-2.4.37-39.module_el8.4.0+778+c970deab.x86_64        mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64               
  centos-logos-httpd-85.5-1.el8.noarch                           

Complete!
[root@localhost ~]# 

配置本地源,将linux安装光盘内的yum文件保存到本地目录下:

[root@localhost ~]# cat /etc/yum.repos.d/yumfiles.repo
[AppStream]
name=AppStream
baseurl=file:///opt/rhel8/AppStream
gpgcheck=0
enable=1

[BaseOS]
name=BaseOS
baseurl=file:///opt/rhel8/BaseOS
gpgcheck=0
enable=1
[root@localhost ~]# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:00:31 ago on Tue 21 Sep 2021 12:42:36 AM PDT.
repo id                                                         repo name                                                        status
AppStream                                                       AppStream                                                        4,820
BaseOS                                                          BaseOS                                                           1,661
[root@localhost ~]# 

配置网络源

Centos8挂载光驱,安装httpd软件包,创建软链接将光驱下AppStream和BaseOS链接到/var/www/html/centos8目录下:

[root@cenos8 html]# ln -s /mnt/hgfs/AppStream /var/www/html/centos8/AppStream
[root@cenos8 html]# ls centos8/
AppStream
[root@cenos8 html]# ln -s /mnt/hgfs/BaseOS /var/www/html/centos8/BaseOS
[root@cenos8 html]# cd centos8/
[root@cenos8 centos8]# ls
AppStream  BaseOS

其他主机可以直接通过http访问这个地址:

[root@localhost yum.repos.d]# vim yumfiles.repo 
[AppStream]
name=AppStream
#baseurl=file:///opt/rhel8/AppStream
baseurl=http://192.168.1.200/centos8/AppStream
gpgcheck=0
enabled=1

[BaseOS]
name=BaseOS
#baseurl=file:///opt/rhel8/BaseOS
baseurl=http://192.168.1.200/centos8/BaseOS
gpgcheck=0
enabled=1
[root@localhost yum.repos.d]# yum repolist
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Last metadata expiration check: 0:00:33 ago on Tue 21 Sep 2021 12:45:13 AM PDT.
repo id                                                         repo name                                                        status
AppStream                                                       AppStream                                                        5,150
BaseOS                                                          BaseOS                                                           1,708
[root@localhost yum.repos.d]# 

image.png

2、编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。

  1. rpm -qi httpd,查看软件包信息,找到apache官网链接:
  • https://httpd.apache.org/
  1. wget https://dlcdn.apache.org//httpd/httpd-2.4.49.tar.bz2,从官网下载2.4版本的tar.bz2压缩包

  2. tar -xf httpd-2.4.49.tar.bz2 -C /usr/local/src,压缩包解压到/usr/local/src目录

  3. 安装编译相关的依赖的软件包:

  • yum -y install gcc make autoconf apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config
  1. 查看INSTALL文件,确认应该如何执行configure,或者直接执行./configure --help确认

  2. ./configure --prefix=/opt/httpd --sysconfdir=/opt --enable-ssl

  • --prefix,指定安装目录

  • --sysconfdir,指定配置文件安装目录

  • --enable-ssl,启用https支持

  1. make -j 4 && make install,编译并安装

  2. 失败,提示缺少bison,yum provides bison可以看到应该安装哪个软件包

  3. 失败,缺少flex,同样方式查看并安装

  4. echo $?输出为0,成功

  5. 在PATH变量前面添加httpd的目录,同时执行该脚本让变量立即生效:

  • echo 'PATH=/opt/httpd/bin:$PATH' > /etc/profile.d/httpd.sh

  • . /etc/profile.d/httpd.sh

  • 确认变量修改成功:

[root@cenos8 ~]# echo $PATH
/opt/httpd/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  1. 执行apachectl start弹出错误提示,需要设置ServerName,进入在--sysconfdir中指定的配置文件,修改ServerName项,重启apache;

最终结果,从其他主机也可以访问

image.png

3、利用sed 取出ifconfig命令中本机的IPv4地址

[root@cenos8 ~]# ifconfig | sed -n '/ens33/,/inet/p' | sed -r -n '/2/s@(^[[:space:]]+inet[[:space:]]+)([[:digit:].]+)(.*$)@\2@p' | cat -A
192.168.1.200$
[mxx@Ubuntu01:~$]ifconfig | sed -n '/ens33/,/inet/p' | sed -r -n '/2/s@(^[[:space:]]+inet[[:space:]]+)([[:digit:].]+)(.*$)@\2@p' | cat -A
192.168.1.100$

4、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

改成-ri则直接修改文件内容:

[mxx@Ubuntu01:~$]cat /etc/fstab | sed -r 's/(^#[[:space:]]+)//' | cat -A
/etc/fstab: static file system information.$
#$
Use 'blkid' to print the universally unique identifier for a$
device; this may be used with UUID= as a more robust way to name devices$
that works even if disks are added and removed. See fstab(5).$
#$
               $
/ was on /dev/sda2 during curtin installation$
/dev/disk/by-uuid/81ae8282-7d2f-4b0f-9c42-b381c51dd581 / xfs defaults 0 0$
/boot was on /dev/sda3 during curtin installation$
/dev/disk/by-uuid/e5361f38-c31b-42c5-88e0-bad5ec373758 /boot ext4 defaults 0 0$
/dev/disk/by-uuid/7249852c-c9e9-47f6-a9a1-577f87e6651e none swap sw 0 0$
/data was on /dev/sda5 during curtin installation$
/dev/disk/by-uuid/757532f5-1774-4ed6-8c5a-903229115663 /data xfs defaults 0 0$
/swap.img^Inone^Iswap^Isw^I0^I0$
[root@cenos8 yum.repos.d]# cat /etc/fstab | sed -r 's/(^#[[:space:]]+)//' | cat -A
$
#$
/etc/fstab$
Created by anaconda on Sun Aug 22 12:58:50 2021$
#$
Accessible filesystems, by reference, are maintained under '/dev/disk/'.$
See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.$
#$
After editing this file, run 'systemctl daemon-reload' to update systemd$
units generated from this file.$
#$
UUID=b6913f81-757b-4253-b8ae-25445dc0d41f /                       xfs     defaults        0 0$
UUID=5372c2a0-9b40-473a-9199-0357f545d8d4 /boot                   ext4    defaults        1 2$
UUID=8d8546c1-f22b-43c6-9e28-1e8cc8dfd934 /data                   xfs     defaults        0 0$
UUID=3d13c06c-3888-4a33-93c5-c5251b2073f8 none                    swap    defaults        0 0$

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

[root@cenos8 yum.repos.d]# echo "/etc/fstab" | sed -n -r 'h;s/^(\/\w+\/)(\w+)/\1/p;g;s//\2/p'
/etc/
fstab
[mxx@Ubuntu01:~$]echo "/etc/fstab" | sed -n -r 'h;s/^(\/\w+\/)(\w+)/\1/p;g;s//\2/p'
/etc/
fstab

6、列出ubuntu软件管理工具apt的一些用法(自由总结)

任务 Ubuntu
基本信息
软件包后缀 *.deb
软件源配置文件 /etc/apt/sources.list
安装、删除、升级软件包
更新软件包列表 apt-get update
apt update
从软件仓库软件安装软件 apt-get install package
安装一个已下载的软件包 dpkg -i pkg.debpkg --install pkg.deb
删除软件包 apt-get remove package
软件包升级检查/测试 apt-get -s upgradeapt-get -s dist-upgrade
升级软件包 apt-get upgrade
升级整个系统 apt-get dist-upgrade
软件包信息
获取某软件包的信息 apt-cache show package
检查软件包的可用版本和依赖 apt-cache showpkg my_pkg
获取所有软件包的信息 apt-cache dumpavail
显示所有已安装的软件 dpkg -ldpkg --list
apt list --installed
显示可安装的模块 apt list
显示可安装的包组
获取某个已安装软件包的信息 dpkg --status package
列出某个已安装软件包所包含的文档
列出所有已安装的软件 dpkg -l
grep -v是反转标记,反向匹配,类似exclude
dpkg --get-selections | grep -v deinstall
dpkg --get-selections | grep -v install--匹配未安装
apt list --installed | grep ssh
列出某个已安装软件包所包含的文件列表 dpkg -S package-name
sudo dpkg -L 软件名称--显示安装路径
列出某个已安装软件包所包含的配置文件 无apt命令
显示某个软件包所依赖的软件包列表 apt-cache depends package
显示某个软件包的反向依赖关系 apt-cache rdepends package
软件包文件信息
获取某个软件包文件的信息 dpkg --info pkg.deb
获取某个软件包文件所包含的文件列表 dpkg --contents pkg.deb
获取某个软件包文件所包含的文档 无apt命令
获取某个软件包文件所包含的配置文件 无apt命令
软件包解压 dpkg-deb --extract pkg.deb
搜索某个文件是由哪个软件包安装的 dpkg -S /file/name
dpkg --search /file/name
搜索所有提供某个文件的软件包 apt-file search /file/name
apt search file-name
需安装apt-file软件包
杂项
显示本地软件包缓存的状态 apt-cache stats
校验所有已安装的软件包 debsums
删除本地缓存的所有软件包 apt-get clean
仅删除本地缓存中过时的软件包 apt-get autoclean
删除所有软件包信息 apt-file purge

你可能感兴趣的:(第四周作业)