第四周作业
一、建yum仓库,分别为网络源和本地源
1、简单介绍一下yum
yum 源是软件仓库,是用来安装软件包的,会自动查找依赖包。
yum 安装软件
yum list | grep 软件包 #查找软件包
yum install 软件包 -y # 安装包
yum -e 软件包 #卸载包
yum -v 软件包 #重新安装包
2、yum配置 /etc/yum.conf
yum 配置文件分两部分 /etc/yum.conf 和 /etc/yum.repos.d/*.repo
首先简单介绍一下 yum.conf 配置yum 源用的是 /etc/yum.repos.d/*.repo 下面在做介绍。
yum.conf介绍 :为所有仓库提供公共配置 ,也就是main 部分,它定义了全局配置选项,整个yum 配置文件应该只有一个main。
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum 缓存的目录,yum 在此存储下载的rpm 包和数据库 默认就是如此
keepcache=0 //安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2 //Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log //yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。
exactarch=1 //有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。
obsoletes=1 //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1 // 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。这个选项如果设置在[main]部分,则对每个repository 都有效。默认值为0。
plugins=1 //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。
installonly_limit=5 //允许保留多少个内核包,默认就是5 不需要修改
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release //指定一个软件包,yum 会根据这个包判断你的发行版本
3、yum 配置 /etc/yum.repos.d/*.repo
/etc/yum.repos.d/*.repo 为仓库的指向提供配置,也就是 repository 部分,它定义了每个源/服务器的具体配置,可以有一到多个
root@node01 yum.repos.d]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# ll
total 40
-rw-r--r--. 1 root root 1664 Oct 23 2020 CentOS-Base.repo // 在线的yum源配置文件,联网用
-rw-r--r--. 1 root root 1309 Oct 23 2020 CentOS-CR.repo //本地yum源配置文件,本地镜像用
-rw-r--r--. 1 root root 649 Oct 23 2020 CentOS-Debuginfo.repo //包尤其和内核相关的更新和软件安装
-rw-r--r--. 1 root root 314 Oct 23 2020 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Oct 23 2020 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Oct 23 2020 CentOS-Sources.repo
-rw-r--r--. 1 root root 8515 Oct 23 2020 CentOS-Vault.repo //这个是最近新版本的加入的老版本的yum源配置
-rw-r--r--. 1 root root 616 Oct 23 2020 CentOS-x86_64-kernel.repo
具体的配置介绍
#也叫serverid,必须是独一无二的
[base]
#name,是对repository的描述
name=CentOS7
##指定的获取包的地址,其中url支持的协议有 http:// ftp:// file://三种。可以跟多个url
baseurl=http://10.0.0.150/yum/centos/7/x86_64
https://mirrors.aliyun.com/centos/$releasever/os/$basearch
https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
#是否启用这个仓库 1 启用,0不启用
enable=1
#是否检查,1 检查,0 不检测 设置了1 必须设置下面的 gpgkey
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
4、配置网络源 国内镜像
root@node01 yum.repos.d]# cd /etc/yum.repos.d/
[root@node01 yum.repos.d]# vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch
https://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch
https://mirrors.huaweicloud.com/centos/$releasever/os/$basearch
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[epel]
name=epel
baseurl=https://mirrors.huaweicloud.com/epel/$releasever/$basearch
https://mirrors.aliyun.com/epel/$releasever/$basearch
https://mirrors.cloud.tencent.com/epel/$releasever/$basearch
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[extras]
name=extras
baseurl=https://mirrors.aliyun.com/centos/$releasever/extras/$basearch
http://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch
gpgcheck=0
enabled=1
5、配置yum 源 本地源(镜像文件)
本例子用镜像文件,用镜像文件做,且目的是做一个服务器,可以供其他机器使用。(centos7)
1、前置条件,关闭防火墙和selinux
systemctl disable firewalld #防火墙永久关闭
修改配置文件 /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled ,然后重启机器
2、安装httpd服务,提供网页浏览
yum -y install httpd #安装
systemctl start httpd #启动
systemctl enable httpd #开机自启动
3、创建仓库目录
#mkdir /var/www/html/centos/7 -pv
4、挂载系统镜像 到系统并复制内容到仓库子目录
mkdir /mnt/cdrom
mount -o loop /dev/sr0 /mnt/cdrom/ #只读模式挂载
cp -r /mnt/cdrom/* /var/www/html/centos/7
5、yum 客户端配置
首先建立备份文件夹,把自带的配置文件移动到备份文件夹,并创建新的配置文件
root@node01]# cd /etc/yum.repos.d/
root@node01 yum.repos.d]# mkdir bak
root@node01 yum.repos.d]# mv CentOS-* bak/
root@node01 yum.repos.d]# touch base.repo 并添加内容
root@node01 yum.repos.d]# vi base.repo
[root@node01 yum.repos.d]# vi CentOS-Base.repo
[BaseOS]
name=BaseOS
baseurl=file:///var/www/html/centos/7
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#其他机器想用这个就需要用IP
[BaseOS]
name=BaseOS
baseurl=http://10.0.0.150/var/www/html/centos/7
enable=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
6、清空缓存
yum clean all
7、查看可用yum 源
yum repolist
6、配置yum 源 私有源(网上下载相应的仓库文件和元数据)
本例子用网上下载的仓库文件和元数据做,且目的是做一个服务器,可以供其他机器使用。(centos7)
1、首先建立备份文件夹,把自带的配置文件移动到备份文件夹,并创建新的配置文件
root@node01]# cd /etc/yum.repos.d/
root@node01 yum.repos.d]# mkdir bak
root@node01 yum.repos.d]# mv CentOS-* bak/
root@node01 yum.repos.d]# touch base.repo 可以自己这么创建一个配置文件
也可以直接就选用阿里源的配置文件(这是将阿里源的配置文件下载到本地)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
这里我们用wget 这种方式
2、关闭防火墙和selinux
systemctl disable firewalld #防火墙永久关闭
修改配置文件 /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled ,然后重启机器
3、安装httpd服务,提供网页浏览
yum -y install httpd #安装
systemctl start httpd #启动
systemctl enable httpd #开机自启动
4、创建仓库目录(本次制作base仓库 源和 epel 扩展仓库 系统都是64位的)
#mkdir /var/www/html/centos/7/os/x86_64 -pv
#mkdir /var/www/html/centos/7/epel/x86_64 -pv
5、base源,有镜像还是直接用镜像文件就可以
挂载系统镜像 到系统并复制内容到仓库子目录
[root@centos7]#mkdir /mnt/cdrom
[root@centos7]#mount -o loop /dev/sr0 /mnt/cdrom/ #只读模式挂载
[root@centos7]#cp -r /mnt/cdrom/* /var/www/html/centos/7/os/x86_64
6、下载阿里云的epel源,制作私有扩展源也就是epel源
[root@centos7]# reposync --repoid=epel --download-metadata -p /var/www/html/centos/7/epel/x86_64/
#--download-metadata 加此选项可以下载元数据 如果不加这个选项需要
#安装yum install -y createrepo
#reposync --repoid=epel -p /var/www/html/centos/7/epel/x86_64/
#createrepo /var/www/html/centos/7/epel/x86_64/ 这是创建索引文件。
还需要注意一点,这样下载下来后,会在x86_64 目录下在创建一个epel 文件夹,并且下载的内容都在这个epel 文件夹中,所以我们需要移动一下,使用以下命令即可
mv /var/www/html/centos/7/epel/x86_64/epel/* /var/www/html/centos/7/epel/x86_64/
记得把这个x86_64 下面那个 epel 目录删掉
7、客户端配置,修改 CentOS-Base.repo 配置文件
[base]
name=CentOS-$releasever
baseurl=http://10.0.0.151/centos/$releasever/os/$basearch/
enable=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[epel]
name=CentOS-$releasever
baseurl=http://10.0.0.151/centos/$releasever/epel/$basearch/
enable=1
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
8、清理yum 缓存,并查看源
[root@node02 yum.repos.d]# yum cleanall
Loaded plugins: fastestmirror
No such command: cleanall. Please use /usr/bin/yum --help
[root@node02 yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
base/7/x86_64 CentOS-7 10,072
epel/7/x86_64 CentOS-7 13,747
repolist: 23,819
[root@node02 yum.repos.d]#
以上本地私有源就可以用了,其他机器可以直接复用 CentOS-Base.repo 配置文件 这个配置文件就可以了
9、注意centos8 还需要配置一个AppStream 源,这里就不做介绍了。
1、关闭防火墙和selinux
systemctl disable firewalld #防火墙永久关闭
修改配置文件 /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled ,
然后重启机器
reboot
2、下载源码包
https://httpd.apache.org/download.cgi#apache24
3、上传源码包到服务器上data 目录下
4、安装依赖包
yum install -y gcc apr-devel apr-util-devel pcre-devel openssl-devel
5、开始安装
[root@node03]# cd /data #进入压缩包所在的目录。
[root@node03 data]# tar -zxvf httpd-2.4.53.tar.gz #解压
[root@node03 data]# cd httpd-2.4.53 #进入http的目录,这个时候,会看到里面有个configure文件夹
[root@node03 httpd-2.4.53]# ./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
[root@node03 httpd-2.4.53]#make && make install
#[root@node03 httpd-2.4.53]##make -j 4 && make install
6、启动并测试
[root@node03 httpd-2.4.53]#systemctl start httpd
三、利用sed 取出ifconfig命令中本机的IPv4地址
[root@node03 data]# ifconfig eth0 | sed -n '2p' #取出ip 所在的行 -n '2p'取第二行
inet 10.0.0.152 netmask 255.255.255.0 broadcast 10.0.0.255
[root@node03 data]# ifconfig eth0 | sed -nr '2s/[^0-9.]+/\n/gp' # -r 是代表使用正则表达式,s///g 是固定格式替换 ,\n 换行
10.0.0.152
255.255.255.0
10.0.0.255
[root@node03 data]# ifconfig eth0 | sed -nr '2s/[^0-9.]+/\n/gp'|sed '1d' # ‘1d’ #删除第一行
10.0.0.152
255.255.255.0
10.0.0.255
[root@node03 data]# ifconfig eth0 | sed -nr '2s/[^0-9.]+/\n/gp'|sed '1d' |sed '2,$d' # '2,$d' ‘删除第2到最后一行
10.0.0.152
[root@node03 data]#
四、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[root@node03 data]# cat /etc/fstab |sed '/#/d'
/dev/mapper/centos-root / xfs defaults 0 0
UUID=688ce983-54be-415b-a8dc-f9c63342156b /boot xfs defaults 0 0
/dev/mapper/centos-data /data xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
[root@node03 data]#
五、处理/etc/fstab路径,使用sed命令取出其目录名和基名
[root@node03 data]# echo "/etc/fstab"
/etc/fstab
[root@node03 data]# echo "/etc/fstab" |sed -r 's#(^/.*/)([^/]+/?)#\1#' #取目录
/etc/
[root@node03 data]# echo "/etc/fstab" |sed -r 's#(^/.*/)([^/]+/?)#\2#' #取基名
fstab
[root@node03 data]#
六、列出ubuntu软件管理工具apt的一些用法(自由总结)
apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt 命令执行需要超级管理员权限(root)。
apt 语法
apt [options] [command] [package ...]
- options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package:安装的包名
apt 常用命令
-
列出所有可更新的软件清单命令:sudo apt update
-
升级软件包:sudo apt upgrade
列出可更新的软件包及版本信息:apt list --upgradeable
升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
-
安装指定的软件命令:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
-
更新指定的软件命令:sudo apt update <package_name>
-
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
-
删除软件包命令:sudo apt remove <package_name>
-
清理不再使用的依赖和库文件: sudo apt autoremove
-
移除软件包及配置文件: sudo apt purge <package_name>
-
查找软件包命令: sudo apt search <keyword>
-
列出所有已安装的包:apt list --installed
-
列出所有已安装的包的版本信息:apt list --all-versions