Day24-yum与rpm软件包管理2

1. 配置缓存rpm包

修改yum.conf配置

[root@oldboy ~]# sed -i.bak 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@oldboy ~]# grep keepcache /etc/yum.conf
keepcache=1

测试

[root@oldboy ~]# rpm -e nmap-ncat
error: Failed dependencies:
	nmap-ncat = 2:6.40-19.el7 is needed by (installed) nmap-2:6.40-19.el7.x86_64
[root@oldboy ~]# rpm -e nmap
[root@oldboy ~]# rpm -e nmap-ncat
[root@oldboy ~]# find  /var/cache/yum/x86_64/7/ -name "*.rpm"
/var/cache/yum/x86_64/7/base/packages/nmap-ncat-6.40-19.el7.x86_64.rpm

2. 为什么要缓存?

1)配置yum仓库,rpm来源。
2)rpm更新了,老的就找不到了。

2.缓存rpm包方式二,只下载不安装(不用)

[root@oldboy ~]# yum install -y yum-plugin-downloadonly #插件
[root@oldboy ~]# yum install httpd -y --downloadonly --downloaddir=/tmp

3.清除所有yum缓存的软件包以及元数据

[root@oldboy ~]# yum clean all
[root@oldboy ~]# find  /var/cache/yum/x86_64/7/ -name "*.rpm"

4.只清除缓存的软件包

[root@oldboy ~]# yum clean packages

软件包,真正的软件。
元数据,数据的数据。

3. 组包相关指令

[root@oldboy ~]# yum groups list
#安装一整个组的软件
[root@oldboy ~]# yum groups install Development tools \
Compatibility libraries \
Base Debugging Tools
#yum删除包组
[root@oldboy ~]# yum groups remove -y Base

安装系统reboot后。

1)在CentOS安装完毕,首先应该修改更新源,并升级到最新的系统。修改更新yum源的命令如下:

curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2)把软件更新到最新(生产上线之前)

yum update -y

3)常用软件包。
CentOS6和CentOS7都要安装的企业运维常用基础工具包

yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs -y

CentOS7要安装的企业运维常用基础工具包

yum install psmisc net-tools bash-completion vim-enhanced -y 
软件包名包含的核心命令
treetree 以树形结构显示文件和目录
nmapnmap 扫描端口的工具
dos2unix转换脚本格式的工具
lrzsz包含上传(rz)下载(sz)文件工具
nc文件传输、端口检查工具
lsof反查端口进程,以及服务开发文件工具
wget下载软件包工具
tcpdump抓包、监听等重要排错工具
htop系统进程相关信息查看工具
iftop查看主机网卡带宽工具
sysstat含有 sar.iostat 等重要系统性能查看工具
nethogs显示进程的网络流量
psmisc含有killall、pstree等命令
net-tools含有netstat、ifconfig、route、arp等命令
bash-completion、bash-completion-extrastab补全功能工具包
vim-enhancedvim编辑器工具包

安装系统时,选择包的时候,落下了一些没选的,安装后如何补救?

查看有哪些组包:

yum groups list
[root@oldboy ~]# yum groups mark convert #转换到原始的格式
[root@oldboy ~]# yum groups list #查看
Available Environment Groups: #可用的环境组包
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Cinnamon Desktop
   MATE Desktop
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop        #安装桌面环境
   KDE Plasma Workspaces
   Development and Creative Workstation
Installed Groups:        #已经安装的组包。
   Compatibility Libraries
   Development Tools
   Milkymist
   Security Tools
   System Administration Tools
Available Groups:       #可用的组包。
   Cinnamon
   Console Internet Tools
   Educational Software
   Electronic Lab
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   LXQt Desktop
   Legacy UNIX Compatibility
   MATE
   Scientific Support
   Smart Card Support
   System Management
   TurboGears application framework
   Xfce
Done

#安装环境组包,桌面环境包。

yum groupinstall "GNOME Desktop"
yum groupinstall "Smart Card Support"

#写一起

yum groupinstall "GNOME Desktop"  "Smart Card Support"

#yum删除包组(不用)

[root@oldboy ~]# yum groups remove -y Base
[root@oldboy ~]# yum search --help
yum [options] COMMAND
check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据 ***
deplist        列出软件包的依赖关系
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
groups         显示或使用、组信息***
help           显示用法提示
history        显示或使用事务历史
info           显示关于软件包或组的详细信息
install        向系统中安装一个或多个软件包*****
list           列出一个或一组软件包*****
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存***
provides       查找提供指定内容的软件包*****
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串***
shell          运行交互式的 yum shell
update         更新系统中的一个或多个软件包***
upgrade        更新软件包同时考虑软件包取代关系***
version        显示机器和/或可用的源版本。

G点:yum命令常用

install        向系统中安装一个或多个软件包*****
provides       查找提供指定内容的软件包*****
list           列出一个或一组软件包*****

clean          删除缓存数据 ***
groups         显示或使用、组信息***
makecache      创建元数据缓存***
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串***
update         更新系统中的一个或多个软件包***
upgrade        更新软件包同时考虑软件包取代关系***

面试:造火箭,拧螺丝。

4. yum帮助与补全功能

4.1 补全

yum [options] COMMAND
[root@oldboy ~]# yum #tab
check             deplist           groups            info              load-transaction  reinstall         search            upgrade
check-update      distro-sync       help              install           makecache         remove            shell             version
clean             downgrade         history           list              provides          repolist          update            
[root@oldboy ~]# yum clean #输入yum cl按tab补全,回车查看

Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all

[root@oldboy ~]# yum help clean #查看选项后对应的命令。
clean [headers|packages|metadata|dbcache|plugins|expire-cache|all]

Remove cached data

4.2 什么是yum源

要想使用 yum 工具安装、更新软件,就需要有一个包含各种rpm软件包的软件仓库,这样的软件仓库就称为yum源。

yum 源分为:
1)互联网 yum 源(阿里云、网易、清华源)
2)局域网私有 yum 源(自己做一个 yum 源,http/fp)(1.速度快。2.制作的rpm 放到 yum 源)。

如何变为公共 yum 源?
a.ip 换公网 IP,给个域名 mirrors.oldboyedu.com
b.用rsync 等工具实时和官方仓库做实时同步。

3)服务器本地 yum 源(上不了网,把iso 作为 yum 源)

4.3 常见互联网 yum 源

官方yum源:很多软件集合的在线仓库,也称为base基础源
epel源:也称为拓展源,拥有很多base 源没有的软件
第三方源:比如nginx,zabbix,Docker等软件开发方开源软件的官方仓库
PS.yum 源默认都放在/etc/yum.repos.d/日录下,以*.repo 结尾

配置本地光盘镜像仓库
在这里插入图片描述
1)rpm包来源光盘镜像

[root@oldboy ~]# mount  /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboy ~]# ls /mnt
CentOS_BuildTag  EULA  LiveOS    RPM-GPG-KEY-CentOS-7          TRANS.TBL  isolinux
EFI              GPL   Packages  RPM-GPG-KEY-CentOS-Testing-7  images     repodata

2)让现有的yum源配置临时失效

[root@oldboy ~]# gzip /etc/yum.repos.d/*
[root@oldboy ~]# ls /etc/yum.repos.d/
CentOS-Base.repo.gz       CentOS-Media.repo.gz      CentOS-x86_64-kernel.repo.gz
CentOS-Base.repo.ori.gz   CentOS-Sources.repo.gz    CentOS7-Base-163.repo.gz
CentOS-CR.repo.gz         CentOS-Vault.repo.gz      epel.repo.gz
CentOS-Debuginfo.repo.gz  CentOS-fasttrack.repo.gz

测试安装

[root@oldboy ~]# yum install tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
There are no enabled repos.
 Run "yum repolist all" to see the repos you have.
 To enable Red Hat Subscription Management repositories:
     subscription-manager repos --enable <repo>
 To enable custom repositories:
     yum-config-manager --enable <repo>

3)配置本地光盘源

vim /etc/yum.repos.d/CentOS7-Cdrom.repo
[CentOS7-Cdrom]
name=This is local cdrom by oldboy for 77.
baseurl=file:///mnt
enabled=1
gpgcheck=0
===============================
[CentOS7-Cdrom]      #仓库名称
name                 #仓库描述信息
baseurl              #YUM源url地址 ,可以是file://(本地) ftp://(局域网) http://(公网)
enabled              #是否使用该YUM源(0代表禁用, 1代表激活)
gpgcheck             #是否验证软件签名(0代表禁用, 1代表激活)

深入理解Yum的gpgcheck
https://segmentfault.com/a/1190000016214318

4)生成缓存,并测试

[root@oldboy ~]# yum makecache
yum install bind 

#########
[root@oldboy ~]# curl http://mirrors.163.com/centos/7.9.2009/isos/x86_64/sha256sum.txt
689531cce9cf484378481ae762fae362791a9be078fda10e4f6977bf8fa71350  CentOS-7-x86_64-Everything-2009.iso
b79079ad71cc3c5ceb3561fff348a1b67ee37f71f4cddfec09480d4589c191d6  CentOS-7-x86_64-NetInstall-2009.iso
07b94e6b1a0b0260b94c83d6bb76b26bf7a310dc78d7a9c7432809fb9bc6194a  CentOS-7-x86_64-Minimal-2009.iso
e33d7b1ea7a9e2f38c8f693215dd85254c3a4fe446f93f563279715b68d07987  CentOS-7-x86_64-DVD-2009.iso

5. 搭建局域网YUM仓库实践

1.关闭防火墙与selinux

[root@oldboy ~]# systemctl stop firewalld    #关闭防火墙
[root@oldboy ~]# systemctl disable firewalld #取消开机自启动
[root@oldboy ~]# setenforce 0  #临时关闭selinx。
[root@oldboy ~]# sed -i 's#SELINUX=enforcing#SELINUX=disable#g' /etc/selinux/config  #永久关闭selinx。

#########################
[root@oldboy ~]# getenforce  #查看selinux状态
Enforcing
[root@oldboy ~]# setenforce  #调整selinux状态,0selinux临时失效
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@oldboy ~]# setenforce 0   #调整selinux临时失效
[root@oldboy ~]# getenforce 
Permissive

2.使用什么传输方式协议提供仓库
file://
http://

方法1:

yum install httpd -y
systemctl start httpd
#软件包放这里/var/html/www

方法2:

mkdir /var/html/www
cd /var/html/www
python -m SimpleHTTPServer 80 &>/dev/null &

ftp://
yum install vsftpd -y
#/var/ftp

3.安装ftp传输工具

[root@oldboy ~]# yum install vsftpd -y  #安装
[root@oldboy ~]# systemctl start vsftpd #启动
[root@oldboy ~]# netstat -lntup|grep vsftp #检查端口 21
tcp6       0      0 :::21                   :::*                    LISTEN      66822/vsftpd        
[root@oldboy ~]# systemctl enable vsftpd #开机自启动
浏览器测试:ftp://10.0.0.129/

4.开启yum缓存功能

[root@oldboy ~]# grep keepcache /etc/yum.conf 
keepcache=0
[root@oldboy yum.repos.d]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
[root@oldboy yum.repos.d]# grep keepcache /etc/yum.conf 
keepcache=1
[root@oldboy ~]# yum clean all

5.创建yum仓库本地目录,并创建元数据以及拷贝rpm base软件包

[root@oldboy ~]# mkdir /var/ftp/centos7
####创建元数据
[root@oldboy ~]# yum install createrepo -y
[root@oldboy ~]# createrepo /var/ftp/centos7/
[root@oldboy ~]# ls /var/ftp/centos7/
repodata
[root@oldboy ~]# tree /var/ftp/centos7/
/var/ftp/centos7/
`-- repodata
    |-- 01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
    |-- 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz
    |-- 5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2
    |-- 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz
    |-- 7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2
    |-- dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz
    `-- repomd.xml
####拷贝rpm包
[root@oldboy ~]# mount /dev/cdrom /mnt
[root@oldboy ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/centos7/


###安装ftp客户端工具,然后测试ftp服务是否可用
[root@oldboy ~]# yum install lftp -y
[root@oldboy Packages]# lftp 10.0.0.129 
lftp 10.0.0.129:~> ls              
drwxr-xr-x    3 0        0          225280 Jun 03 16:44 centos7
drwxr-xr-x    2 0        0               6 Apr 01  2020 pub

######想放其他rpm包。
1)去其他网站,找到rpm包,放到这里。
2)源码===》编译成rpm包,放到这里。

[root@oldboy yum.repos.d]# find  /var/cache/yum  -name "*.rpm" -exec cp {} /var/ftp/centos7 \;
[root@oldboy yum.repos.d]# find  /var/ftp  -name "sl-*"                            
/var/ftp/centos7/sl-5.02-1.el7.x86_64.rpm

[root@oldboy yum.repos.d]# createrepo --update /var/ftp/centos7/ #每加一个rpm包就用此命令更新YUM仓库
[root@oldboy ~]# yum makecache

6.客户端配置yum源指向服务端
客户端配置并使用base基础源

[root@yum_client ~]# gzip /etc/yum.repos.d/*

cat >/etc/yum.repos.d/centos7.repo<<EOF 
[centos7]
name=centos7_base
baseurl=ftp://10.0.0.129/centos7
enabled=1
gpgcheck=0
EOF

[root@oldboy ~]# cat /etc/yum.repos.d/centos7.repo
[centos7]
name=centos7_base
baseurl=ftp://10.0.0.129/centos7
enabled=1
gpgcheck=0

7.测试

yum install sl -y
sl 
#over

企业案例作业:
把所有源的大小加起来。
链接: http://mirrors.ustc.edu.cn/status/

搭建公有YUM仓库:
同步官方YUM源到私有源
镜像同步公网yum源,需要使用rsync进行异地同步。
链接: http://mirrors.ustc.edu.cn/status/

CentOS源:
rsync://mirrors.ustc.edu.cn/centos/
rsync://rsync.mirrors.ustc.edu.cn/repo/centos/ #可用
epel源:rsync://mirrors.ustc.edu.cn/epel/

# mkdir -p /var/ftp/centos7/x86_64/repodata/{os,extras,updates,epel}

#使用rsync同步Centos yum源
#rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/ /var/ftp/centos7/x86_64/repodata/os
#rsync -av rsync://mirrors.ustc.edu.cn/centos/7/extras/x86_64/ /var/ftp/centos7/x86_64/repodata/extras/
#rsync -av rsync://mirrors.ustc.edu.cn/centos/7/updates/x86_64/ /var/ftp/centos7/x86_64/repodata/updates/

#同步epel源
#rsync -avz rsync://rsync.mirrors.ustc.edu.cn/repo/centos/ /var/ftp/centos7/x86_64/repodata/epel/


#远程复制测试:
#rsync -avz rsync://rsync.mirrors.ustc.edu.cn/repo/centos/ /var/ftp/centos7/x86_64/repodata/epel/
[root@oldboy yum.repos.d]# ls /var/ftp/centos7/x86_64/repodata/epel/ -a
.    4.1   5.3   6.6       8                           RPM-GPG-KEY-CentOS-Official
..   4.2   5.4   6.7       8-stream                    RPM-GPG-KEY-CentOS-Security-6
2    4.3   5.5   6.8       8.0.1905                    RPM-GPG-KEY-CentOS-Testing-6

做个定时任务,每天执行上面几个命令,保持源内数据最新。

还可以同步搭建私有源:

mkdir /var/ftp/persion
find  /var/cache/yum  -name "cowsay*"|xargs cp -t /var/ftp/persion/
createrepo /var/ftp/persion/
yum makecache
gzip /etc/yum.repos.d/*
cat >/etc/yum.repos.d/persion.repo<<EOF 
[persion]
name=centos7_persion
baseurl=ftp://10.0.0.129/persion
enabled=1
gpgcheck=0
EOF
[root@oldboy etc]# yum repolist 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                              repo name                                     status
persion                              centos7_persion                               1
repolist: 1
[root@oldboy etc]# rpm -e cowsay
[root@oldboy etc]# yum install cowsay -y


#每加一个rpm包就用此命令更新YUM仓库
createrepo --update /var/ftp/centos7/ 
yum makecache

定制RPM包
链接: https://blog.oldboyedu.com/autodeploy-rpm/

网友资料:
yum源仓库的三种搭建方式
链接: https://www.cnblogs.com/mython/p/10898461.html

搭建局域网YUM仓库
链接: https://www.cnblogs.com/pzb-shadow/p/10641164.html

systemctl start 服务名称 — 启动服务
systemctl stop 服务名称 — 停止服务
systemctl restart 服务名称 — 重启服务
systemctl status 服务名称 — 查看服务详细的运行状态
systemctl disable 服务名称 — 让服务开机不要运行
systemctl enable 服务名称 — 让服务开机运行
systemctl is-active 服务名称 — 检查确认服务是否运行

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值