Yum 私服搭建记录
背景
有时我们的服务器网络并不允许连接互联网,这时候 yum 安装软件就有很多麻烦事情了, 我们也许会通过 yumdownloader 来从可以连接互联网的机器上下载好 rpm 安装包,
然后再拷贝到 服务器上.
命令 : yumdownloader --resolve mariadb-server , 所有依赖下载到当前文件夹下
这样做会存在很多问题:
- 虽然上述命令已经加上了
--resolve来解决依赖,但是一些基础的依赖包仍然没有下载到,这时安装就有问题了 - 下载的很多依赖包都有安装的先后顺序,包太多的话,根本无法搞清楚顺序
还可以使用 yum install --downloadonly --downloaddir=/tmp/vsftps/ vsftpd 来下载依赖和指定下载的位置
但是如果有一些基础依赖包已经安装过了,则不会下载, 这时可以使用 reinstall 来重新下载
yum reinstall --downloadonly --downloaddir=/tmp/vsftps/ vsftpd
rsync 同步科大的源
yum install rsyncdf -h查看磁盘上目录的存储的空间情况- 找到最大的磁盘的空间目录,最好准备好 50 GB 以上的空间
- 新建目录如下:
1 | mkdir -p ./yum_data/centos/7/os/x86_64 |
- 开始同步 base extras updates epel 源
1 | cd yum_data |
- 开始漫长的等待……
- 等待全部同步完毕,
tar -czf yum_data.tar.gz ./yum_data,压缩目录 - 压缩包拷贝到服务器上
rsync 增量同步
使用参数 -u, 即
1 | rsync -avuh --progress rsync://rsync.mirrors.ustc.edu.cn/repo/centos/7/extras/x86_64/ ./centos/7/extras/x86_64/ |
rsync 使用及配置解释
6 种用法
- rsync [OPTION]… SRC DEST
- rsync[OPTION]… SRC [USER@]HOST:DEST
- rsync [OPTION]… [USER@]HOST:SRC DEST
- rsync [OPTION]… [USER@]HOST::SRC DEST
- rsync [OPTION]… SRC [USER@]HOST::DEST
- rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
1)拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。如:rsync -a /data /backup
2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。如:rsync -avz *.c foo:src
3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。如:rsync -avz foo:src/bar /data
4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。如:rsync -av root@172.16.78.192::www /databack
5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。如:rsync -av /databack root@172.16.78.192::www
6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://172.16.78.192/www
参数解释
1 | -v, --verbose 详细模式输出 |
配置本地 yum 源
- 找到一个空间大的目录下,解压包:
tar -xvf yum_data.tar.gz - 创建一个新的源配置:
touch /etc/yum.repos.d/private.repo - 插入一下内容:
1 | [local-base] |
- 禁用原来的 Base Extras Updates 源:
yum-config-manager --disable Base,Extras,Updates yum clean allyum makecacheyum repolist查看源信息
配置网络 yum 源
有时候我们搭建的私有 yum 还需要提供给其他的机器使用,这时候再做一个网络的 yum 即可,用 Apache 或者 Nginx 搭建个服务即可
yum install nginxvim /etc/nginx/nginx.conf修改
1 | server { |
- 这时 private.repo 里的 baseurl 全改为网络地址即可
403 权限问题
修改 nginx.conf 配置文件的 user 为 root
