需求:client无法访问互联网。使用server提供的本地yum源,更新本地Centos操作系统到最新操作系统Centos7.6,并安装常用软件。
测试主机:
server:192.168.211.131 搭建yum仓库用,可以访问互联网。(如果不能访问需要可以访问的服务器上提前下载包)
client:192.168.211.132 测试yum客户端,只能访问server端,不能访问互联网。
- 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
- 挂在本地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时无需配置)
- 安装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目录中
- 安装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
- 客户端配置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包之间使用空格分离。
- 客户端安装验证
yum makecache
yum clean all : 清除rpm头文件以及包缓存
使用下述命令可以看到本地仓库基本信息:(lanxin为定义的名称)
-
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] - 其他方式,搭建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>
- 其生成组包的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
- 修改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
- 优化创建目录,进行包划分(待验证,需要修改包安装目录和下载目录到/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/