本周内容:
1、软件包管理
1>rpm格式(rpm命令、yum命令)
2>源码包(编译安装)
3>编译好的压缩包文件(解压即可用)
rpm命令
yum命令
源码安装
2、磁盘管理
3、进程管理
4、网络管理
shell基础(基本的shell脚本)
5、计划任务:crond
一、RPM软件包介绍
编程语言分类:
机器语言
汇编语言
高级语言
• 高级语言:
•解释型语言(shell、python):
安装:
1>下载python写好的软件包
2>在自己的Linux主机上安装对应版本的python解释器、依赖包
•编译型语言(c、go...):
C语言不支持跨平台编译,即写出来的源码包,在不同平台都要编译一次;
go语言支持跨平台编译,且解决了依赖性;
安装:
1>下载源码包
2>在自己的Linux主机上安装好编译器
3>用编译器把源码包编译成可执行的程序
rpm包:制作好的安装程序;
源码包:须自己动手编译安装,定制安装细节;
二进制包:已经编译完毕,下载可直接用,无需安装;
二、RPM包管理
1、rpm格式(rpm命令、yum命令)
rpm包格式举例:
三、RPM包的来源
网络
挂载、卸载一个镜像文件:
挂载:
mount /dev/sr0 /opt/
mount /dev/cdrom /mnt
卸载:umount /dev/sr0
-l 挂载点或源,强制卸载
PS:不可卸载时可能在忙,切换到其他路径下强制卸载即可;
mount -o loop /root/centos7.iso /opt
新加硬盘制作文件系统,再挂载
1、格式选项
1>安装:rpm -ivh rpm包名
2>卸载:rpm -e rpm包名
3>升级:rpm -Uvh rpm包名
4>查询格式:rpm -q yum
选项:
-q #查询yum软件包是否安装
-qa #查询系统中安装的所有rpm软件包
-qi #查询已安装包的描述信息
-ql #查询已安装包例所包含文件
-qc #查询指定包的所有配置文件
-qd #查询某个包的帮助文档
-qf #查询系统中指定文件所属的软件包
-p #上述选项加p,可查看未安装的rpm包
额外选项:
--nomd5 #不检验软件包的签名
--nodeps #忽略依赖性安装软件,安装软件后有可能无法使用,最好是解决依赖性后再安装,不推荐使用
--force #强制安装软件包,只有安装和升级可强制执行,不推荐使用
2、安装
1>若rpm包在本地:
[root@egon ~]# mount /dev/sr0 /opt
[root@egon ~]# rpm -ivh /opt/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
2>若rpm包来自网络,
[root@egon ~]# rpm -ivh
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent4.0.0-2.el7.x86_64.rpm
安装过程中若报错:curl:(60)peer's Certificate has expired
将系统时间修改正确,再安装即可;
安装与依赖性:
[root@egon ~]# rpm -ivh /opt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
错误:以来检测失败:
/etc/mime.types 被 httpd-2.4.6-88.el7.centos.x86_64 需要
httpd-tools = 2.4.6-88.el7.centos 被 httpd-2.4.6-88.el7.centos.x86_64 需要
libapr-1.so.0()(64bit) 被httpd-2.4.6-88.el7.centos.x86_64 需要
libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-88.el7.centos.x86_64 需要
#解决思路:安装提示的库:
[root@egon ~]# rpm -ivh /opt/Packages/apr-1.4.8-3.el7_4.1.x86_64.rpm
[root@egon ~]# rpm -ivh /opt/Packages/apr-util-1.5.2-6.el7.x86_64.rpm
[root@egon ~]# rpm -ivh /opt/Packages/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm
[root@egon ~]# yum search mime.types #查看mtime对应的依赖包为mailcap
[root@egon ~]# rpm -ivh /opt/Packages/mailcap-2.1.41-2.el7.noarch.rpm #然后重新安装
[root@egon ~]# rpm -ivh /opt/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:httpd-2.4.6-88.el7.centos #################################[100%]
升级rpm包:
[root@egon ~]# rpm -e zabbix-agent-3.0.9-1.el7.x86_64
[root@egon ~]# rpm -e zabbix-agent-4.2.0-1.el7.x86_64
[root@egon ~]# rpm -qa |grep zabbix
[root@egon ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
[root@egon ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
#升级会自动清理老版本,安装新版本
[root@egon ~]# rpm -qa |grep zabbix-agent #只留下一个新版本
zabbix-agent-4.2.0-1.el7.x86_64
[root@egon ~]#
练习如何下软件包:
vsftpd
samba
nfs-utils
httpd
dhcp
postfix
php
lftp
dos2unix
unix2dos
tigervnc
dd if=/dev/sr0 of=/root/iso/centos7.iso #挂载镜像文件
3>安装与依赖性
四、yum管理rpm包
1、yum介绍
yum自动解决依赖关系
Yum (全称为Yellow dog Updater, Modified) 是一个在Fedora和RedHat以及Centos中的 Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处 理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
查看yum命令与配置文件:
[root@localhost ~]# rpm -q yum
yum-3.4.3-161.el7.centos.noarch
[root@localhost ~]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
yum命令常用选项:
仓库:
yum repolist #查询可用仓库
yum repolist all #查看包括已启用或禁用的所有仓库状态
#关闭与启用仓库:本质:都是在修改repo文件中的enable的值,0不启用,1启用
yum- config-manager -- disable epel #关闭仓库epel
yum-conf ig-manager --enable epel #启用仓库epel
查看:
yum list #列出可用仓库中所有的软件包
yum list | less
yum grouplist #列出可用仓库中的软件组
yum provides /usr/ sbin/ifconfig #查询命令所属的软件包,可以不加路径,只写命令名字
#与rpm -qf的区别在于yum provides后可以只跟命名名
安装:
yum install httpd httpd- tools #加上-y选项可以变成非交互
yum groupinstall "开发工具”-y #安装软件组,一个软件组中包含了多个软件包
yum groups install “开发工具”-y #同上
卸载
yum remove httpd httpd- tools http* #卸载软件包
yum groupremove“开发工具”- y. #卸载软件组
yum groups remove "开发工具”-y #同上
重装
yum reinstall httpd #不小心删除了配置文件的时,可以reinstall-下
更新
yum check -update #检查可以更新的软件包
yum update -Y #更新所有软件包,包括内核,通常只在刚装
完系统时执行
yum update httpd -y #更新某个软件包
缓存
yum makecache #制作元数据缓存
yum clean all #清理元数据缓存
vim /etc/ yum. conf #默认软件包下载安装后会自动删除
#设置keepcache=1即开启了软件包缓存
#缓存目录为配置文件中指定的cachedir
历史记录
yum history #查看执行过的yum命令历史记录
yum history info ID号 #查看具体某一条yum命令的详细信息
yum history undo ID号 #撤销执行过的历史命令
关于安装需要注意:
无论yum安装的软件来自何方,yum时刻以自己仓库中的repodata存储的依赖关系为准,如果有多个仓库,就依次检索:
1>yum直接安装公网的rpm包,会自动查找当前系统上已有的仓库解决依赖关系:
yum install
https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/ samba-4.8.3-4.e17.x86_64.rpm
2>Yum直接安装本地的rpm包,会自动查找当前系统上已有的仓库解决依赖关系:
yum local install -y /mnt/Packages/httpd-2.4.6-88.e17.centos.x86_64.rpm
要使用yum前需要准备一个yum源(我们也称为yum仓库),这个可以是一个互联网上的仓库,也可以是本地自己搭建的仓库;仓库里面有什么呢?里面全部都是.rpm的软件包;一台linux, 可以添加N多个yum源,能搜索的软件包数量就是N个yum源之和。
PS:系统常见的两种yum源:本地源、网络源
1.自定义的本地源:
1>先挂载
#方式1:
[root@localhost ~]# mount /dev/cdrom /opt/ #通过光驱挂载
#方式2:
[root@localhost ~]# mount /dev/sr0 /opt/ ##通过光驱挂载
#方式3:
[root@localhost ~]# mount -o loop /xxx.iso /opt ##通过镜像挂载
[root@localhost ~]# ls /opt/Packages/
2>编辑repo文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim local.repo #文件名自定义,必须以.repo结尾
[local] #仓库的实际名字,任意
name=local #仓库的描述,任意
baseurl=file:///opt #仓库位置,可以是http:// https:// ftp:// file://
enabled=1 #1为启用仓库,0位关闭。=,默认启用
gpgcheck=0 #检查安装的rpm是否是合法的,0表示不检验
3>检查可用仓库
[root@localhost ~]# yum repolist #查询可用仓库
[root@localhost ~]# yum repolist all #查看所有仓库,包括禁用的
4>安装、查询、卸载
[root@localhost ~]# yum list #列出可用软件包
[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# yum list vsftpd httpd
[root@localhost ~]# yum remove vsftpd -y
[root@localhost ~]# yum install glib* httpd -y
[root@localhost ~]# yum provides vsftp #查询某个软件(可是未安装的)由哪个rpm包提供
# yum reinstall
[root@egon ~]# rm -rf /etc/httpd/conf/httpd.conf
[root@egon ~]# yum reinstall httpd -y &> /dev/null
[root@egon ~]# ls /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
# yum update
[root@localhost ~]# yum -y update samba
[root@localhost ~]# yum -y update
5>软件包租安装、查询、卸载
[root@localhost ~]# yum grouplist
[root@localhost ~]# yum groupinstall "GNOME 桌面" -y
[root@egon ~]# yum groupinstall "开发工具" -y
[root@egon ~]# yum groupremove "开发工具" -y
2.网络上的源头,如: base基础源、epel扩展源、与服务相关的源(官网)
下载开源的yum源头:
例如阿里云的Base基础源:
wget -O /etc/yum.repos.d/CentOS-Base/repo
http://mirrors.aliyun.com/repo/Centos-7.repo
例如163的Base基础源:
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.163.com/.help/CentOS7-Base-163.repo
例如红帽的epel扩展源:
1>可直接下载
curl -o /etc/yum.repos.d/epel.repo
http://mirrors.aliyun.com/repo/epel-7.repo
2>也可以安装一个软件包来生成
[root@egon ~]# yum install epel-release -y
例如nginx逛网的软件包源:
五、手动配置创建yum仓库源并共享:
1>前提准备工作:准备环境
yum remove -y nginx #清空nginx配置环境
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #永久禁用防火墙
setenforce 0 #关闭selinux
vim /etc/sysconfig/selinux #改为disabled,永久禁用selinux
附:实验残留清空,若无试验可不进行此步骤~
rpm -qa |grep nginx #过滤清空nginx
rpm -qa |grep python-daemon #过滤清空python-daemon
rm -rf /etc/yum.repos.d/nginx.repo #清空nginx配vim
2>服务端配置
vim /etc/yum.conf #打开缓存keepcache=1
vim /etc/yum.repos.d/nginx.repo #配置一个nginx官方的源文件
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true #保存退出
epel-release 、pyhon-daemon、vsftpd、createrepo、nginx-*#yum安装以上五个服务
PS:最后装nginx时,需把/etc/repos.d/的文件移到新建的bak里,只留nginx.repo;
systemctl restart vsftpd ;systemctl status vsftpd #确保开启
mkdir /var/ftp/centos7 #名字自定义
createrepo /var/ftp/centos7 #制作repodata数据库
mv `find /var/cache/yum/x86_64/7/ -type f -name '*.rpm'` /var/ftp/centos7/ #将所有rpm包移到此处,准备被访问
vim /etc/yum.repos.d/server.repo#新建服务端文件
[server]
name=server
baseurl=ftp://centos #只填写/var/ftp/最终的共享路径
enabled=1
gpgcheck=0 #保存退出
3>客户端配置网络yum源
将Base源放到/etc/yum.repos.d/,其余.repo放到bak里,不然会影响安装vsftpd
yum install -y vsftpd #安装vsftpd
cd /etc/yum.repos.d/ #切换到此
mkdir bak #创建目录
mv *.repo bak #所有.repo文件移到此
vim client.repo #新建客户端文件
[client]
name=client
baseurl=ftp://192.168.181.8/centos7 #输入服务端的ip+最终路径
enable=1
gpgcheck=0 #保存退出
ping 192.168.181.8 #看能否ping通
ping通后,浏览器输入ftp://192.168.181.8 即可访问
PS:客户端baseurl指向的目录无论是什么,在该目录的子目录一级必须有一个repodata数据库。
4、源码包的下载、解压、编译、安装
1. 官网下载
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2. 预先安装编译安装依赖的库
yum -y install gcc gcc-c++ autoconf automake make
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
或者
LANG=C yum -y groupinstall "Development tools"
3. 解压、编译、编译安装
tar xvf nginx-1.18.0.tar.gz -C /tmp/
cd /tmp/nginx-1.18.0/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-http_gzip_static_module --with-http_sub_module
--prefix #指定安装的目录
/usr/local/nginx #为安装目录
make && make install
\#将程序设定一个软链接,便于后续的升级
ln -s /soft/nginx-1.16.0/ /soft/nginx