部署-操作系统】本地yum源搭建

需求:client无法访问互联网。使用server提供的本地yum源,更新本地Centos操作系统到最新操作系统Centos7.6,并安装常用软件。
测试主机:
server:192.168.211.131 搭建yum仓库用,可以访问互联网。(如果不能访问需要可以访问的服务器上提前下载包)
client:192.168.211.132 测试yum客户端,只能访问server端,不能访问互联网。

  1. server端更新到最新版本的Centos系统,并下载yum安装包到本地

方法一:修改yum配置,保存缓存到本地:
vi /etc/yum.conf中修改keepcache = 0改为keepcache = 1
重启生效:/etc/init.d/yum-updatesd restart
下载的目录为:/var/cache/yum
备注:下载包到本地还有其他两种方式,需要下载安装包。
方法二:使用downloadonly插件。例如:yum -y groupinstall "Developmenttools" --downloadonly --downloaddir=.
方法三:使用yum-utils中的yumdownloader 。安装:yum -y install yum-utils 例如:yum downloader httpd 
有时centos的rpm源不是最新的,需要安装一个epel源。开始下载安装包
yum install epel-release
yum update
yum –y install vim wget unzip lrzsz gcc gcc-c++ nano net-tools
yum -y groupinstall mygroup

  1. 挂在本地DVD镜像,准备最新系统,当前需要的包

挂载CentOS-7-x86_64-DVD-1810.iso把里面所有文件都拷贝到本地目录/dvd
mkdir /dvd
mount /dev/sr0 /dvd #通过光驱挂载 #mount /opt/Centos.xxx.iso/ /dvd#通过本地 iso挂载 
###如果只挂载dvd更新,不进行最新yum更新,修改配置,挂载后即可使用
vi /etc/yum.repos.d/CentOS-Media.repo (或者自己创建一个文件)
[lanxin]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/ file:///dvd/ #本地挂载的目录路径
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 (gpgcheck=0时无需配置) 

  1. 安装http服务,为搭建本地web源创造条件

安装httpd安装包:yum install httpd -y
cd /var/www/html/ #默认http安装后的目录 
###如果拷贝的rpm包在其他目录,推荐创建连接目录,删除原有目录,rm –rf /var/www/html目录,建立安装文件软连接 ln –s /lanxin /var/www/html###
###对应需要修改 vim /etc/httpd/conf/httpd.conf 中 <Directory "/xxx">#填写自己本地yum挂载的位置###
mkdir -p lanxin
cd lanxin
mkdir RPMS SRPMS (待定) 拷贝相关文件到RPMS和SRPMS目录中

  1. 安装createrepo

安装createrepo包; yum install createrepo -y
新建本地源目录: 
mkdir -p /var/www/html/lanxin/ #更新或创建主目录文件索引 
将所有下载安装包放置到目录中
cp –R /dvd/Packages/* /var/www/html/lanxin/Packages/  #拷贝本地挂载的DVD镜像包到生成源目录
cp -R /dvd/repodata /var/www/html/lanxin/
cp /var/cache/yum/x86_64/7/base/packages/* /var/www/html/lanxin/Packages/  #拷贝全新更新的源到生成目录
cp /var/cache/yum/x86_64/7/extras/packages/* /var/www/html/lanxin/Packages/  
cp /var/cache/yum/x86_64/7/updates/packages/* /var/www/html/lanxin/Packages/   


在lanxin所在目录下执行如下命令
cd /var/www/html/
createrepo lanxin/ #创建一个源
service httpd start 
更新本地源,添加新的rpm包到lanxin目录下,在仓库所在目录下
createrepo --update lanxin/ # 更新本地源
createrepo lanxin/ # 重新生成metadata

  1. 客户端配置yum源repo文件

cd /etc/yum.repos.d/
mv * /opt/
touch lanxin.repo
[lanxin]
name=local-web-yum
baseurl=http:// 192.168.211.131/lanxin
enabled=1
gpgcheck=0
gpgkey= file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
参数解释如下:
cat /etc/yum.conf 
[main] --main定义全局属性,只能有一个 
cachedir=/var/cache/yum --定义yum缓存目录,用于储存下载存储的rpm包等 
keepcache=0 --成功安装后,缓存数据是否保存。0:不保存,1:保存 
debuglevel=2 --调试级别(0-10),默认为2 
logfile=/var/log/yum.log --定义yum日志目录 
distroverpkg=redhat-release --通过指定针对系统发行版的rpm包,判断当前系统的版本。默认值为
redhat-release tolerant=1 --定义是否容忍命令行发生与软件包有关的错误。0:不容忍,1:容忍 
exactarch=1 -定义当更新rpm包时,yum是否仅仅升级当前架构的包。-当设置为1,不会发生i386包升级到i686 
obsoletes=1 gpgcheck=1 --定义是否对rpm包进行GPG校验。0:不校验,1:校验 plugins=1 --定义是否使用插件。0:不允许,1:允许
exclude : 该参数主要用于屏蔽不想更新的RPM包,可使用通配符,多个RPM包之间使用空格分离。

  1. 客户端安装验证

yum makecache
yum clean all : 清除rpm头文件以及包缓存 
使用下述命令可以看到本地仓库基本信息:(lanxin为定义的名称)

  1. yum repoinfo lanxin
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    Repo-id : lanxin
    Repo-name : localnet
    Repo-status : enabled
    Repo-revision: 1567583251
    Repo-updated : Wed Sep 4 15:50:33 2019
    Repo-pkgs : 12,303
    Repo-size : 12 G
    Repo-baseurl : http://192.168.211.131/lanxin/
    Repo-expire : 21,600 second(s) (last: Wed Sep 4 23:51:21 2019)
    Filter : read-only:present
    Repo-filename: /etc/yum.repos.d/local.repo
    repolist: 12,303 
    yum可用命令参数参考。
    yum install 软件名1 [软件名2] [...]
    yum update [软件名1][软件名2] [...]
    yum check-update
    yum upgrade [软件1] [软件2] [...]
    yum remove | erase 软件名1 [软件名2] [...]
    yum list [...]
    yum info [...]
    yum provides | whatprovides feature1 [feature2] [...]
    yum clean [ packages | headers | metadata | dbcache | all ]
    yum groupinstall 软件组1 [软件组2] [...]
    yum groupupdate 软件组1 [软件组2] [...]
    yum grouplist [hidden] [groupwildcard] [...]
    yum groupremove group1 [group2] [...]
    yum groupinfo 软件组名 [...]
    yum search 字符串1 [字符串2] [...]
    yum shell [文件名]
    yum resolvedep 依赖关系1 [依赖关系2] [...]
    yum localinstall rpm包1 [rpm包2] [...]
    yum localupdate rpm包1 [rpm包2] [...]
    yum reinstall 软件包1 [软件包2] [...]
    yum downgrade 软件包1 [软件包2] [...]
    yum deplist 软件包1 [软件包2] [...]
    yum repolist [all|enabled|disabled]
    yum help [command]

  2. 其他方式,搭建ftp共享,注意目录的匿名访问和权限。局域网YUM源可以配成:本地YUM源 + FTP服务器

<span style="color: #0000ff">yum</span> -y <span style="color: #0000ff">install</span> vsftpd
<span style="color: #0000ff">vi</span> /etc/vsftpd/vsftpd.conf
<span style="color: #333333">并增加匿名用户root目录(默认已经启用匿名访问)</span>
anon_root=/<span style="color: #ff0000">/var/www/html/lanxin (注意目前权限,未验证,建议从新定义一个)</span>
systemctl start vsftpd && systemctl enable vsftpd 
<span style="color: #333333">局域网另外一台机器min-client,<strong>配置repo</strong></span>
vim /etc/<span style="color: #0000ff">yum</span>.repos.d/CentOS-Media.repo
[lanxin] 
name=CentOS-$releasever - Media 
baseurl=<span style="color: #0000ff">ftp</span>:<span style="color: #008000">//192.168.211.131/lanxin</span> 
gpgcheck=<span style="color: #800080">0</span> 
enabled=<span style="color: #800080">1</span> 
gpgkey=<span style="color: #0000ff">file</span>:<span style="color: #808080">///</span><span style="color: #008000">etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7</span>

  1. 其生成组包的yum源,使用groupinstall命令安装一个组的包

createrepo –g +目录路径
yum-groups-manager -n 组名 --id=组id --save=保存文件名 --mandatory 包名 包名  ...(存储组下包的名,只需写上包名即可,多个包名之间用空格间隔)
创建完组的之后不要忘记再用createrepo命令把组加入到yum仓库!
其实和单个包的类似,参考系统光盘中repodata目录下,以comps-xxx-Server.xml结尾的文件
yum -y install  yum-utils-1.1.30-14.el6.noarch 安装软件包
yum-groups-manager -n "mygroup" --id=mygroup --save=/var/www/html/lanxin/repodata/mygroup.xml --mandatory python shell //使用命令生成组的.xml文件
vim mygroup.xml 查看文件
createrepo -g  /var/www/html/lanxin  /repodata/mygroup.xml /var/www/html/lanxin  #最后用createrepo -g 命令加入组到yum仓库 
拷贝源服务器自带分组
cp /dvd/repodate/*.xml /comps.xml
createrepo -g /comps.xml  /var/www/html/lanxin  (开始创建分组信息)
yum clean all yum grouplist //查看一下可用的groups

  1. 修改web代理服务为nginx代理

1,安装nginx: yum install nginx
2,修改配置
vim /usr/lcoal/nginx/conf/nginx.conf<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="6442396d-22c1-4dc4-a845-7cfc4a5b1f64"><ac:parameter ac:name="">_GoBack</ac:parameter></ac:structured-macro>
sever {
listen 8888;
server_name localhost;
location / {
root /lanxin
}
配置文件内容如下/data/yum.repo为createrepo镜像位置
客户端yum配置
[lanxin]
name=CentOS-7-x86_64-Everything-iso
baseurl=http://<span style="color: #008000">192.168.211.131/</span>:8888/centos/$releasever/os/$basearch
gpgcheck=0
enabled=1
gpgkey=http:// <span style="color: #008000">192.168.211.131/</span>:8888/RPM-GPG-KEY-CentOS-7

  1. 优化创建目录,进行包划分(待验证,需要修改包安装目录和下载目录到/yum等)

mkdir -p /yum/centos/7/os/x86_64/Packages
mkdir -p /yum/centos/7/updates/x86_64/Packages
mkdir -p /yum/tools/
cp -R /dvd/Packages/* /yum/centos/7/os/x86_64/Packages/
cp -R /dvd/repodata /yum/centos/7/os/x86_64
cp -R /dvd/repodata /yum/centos/7/updates/x86_64
cp -R /dvd/repodata /yum/tools
cp -R /dvd/RPM-GPG-KEY-CentOS-7 /yum/
createrepo创建yum
#更新或创建主目录文件索引createrepo /yum/centos/7/os/x86_64
#更新或创建升级目录文件索引createrepo /yum/centos/7/updates/x86_64/
#更新或创建tools目录文件索引createrepo /yum/tools
#更新或创建yum组索引,yum组,比如admintools 它包含多个rpm,可以用yum grouplist查看
createrepo -g /yum/repodata/comps.xml /var/www/html/centos/7/updates/x86_64/
createrepo -g /yum/comps.xml /var/www/html/centos/7/os/x86_64/

猜你喜欢

转载自blog.csdn.net/yujia_666/article/details/107328469