Centos76 安装源制作

环境准备

操作系统准备

[root@yidam ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (AltArch)
[root@yidam ~]#

配置好操作系统的 YUM 源

[root@yidam ~]# cat /etc/yum.repos.d/CentOS-Base.repo | grep -v "^$" | grep -v "^#"
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://archive.kernel.org/centos-vault/altarch/7.6.1810/os/aarch64/RPM-GPG-KEY-CentOS-7-aarch64
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://archive.kernel.org/centos-vault/altarch/7.6.1810/os/aarch64/RPM-GPG-KEY-CentOS-7-aarch64
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://archive.kernel.org/centos-vault/altarch/7.6.1810/os/aarch64/RPM-GPG-KEY-CentOS-7-aarch64
enabled=1
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.aliyun.com/centos-altarch/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://archive.kernel.org/centos-vault/altarch/7.6.1810/os/aarch64/RPM-GPG-KEY-CentOS-7-aarch64
[root@yidam ~]#

提示:这里的 gpgkey 借用了 Centos 官方的 gpgkey,直接用阿里的源 gpgkey 是错误的

补充 epel 源

[root@yidam ~]# yum install epel-release.noarch -y

确认当前可以同步的源

[root@yidam ~]# yum repolist
repo id
base/7/aarch64
epel/aarch64
extras/7/aarch64
updates/7/aarch64
repolist: 22,035
[root@yidam ~]#

安装相关软件

[root@yidam ~]# yum install yum-utils -y

提示: 该软件包可以提供 createrepo 命令,利用此命令就可以为 rpm 包创建元数据索引

制作源

准备好下载 rpm 包的目录

[root@yidam ~]# fdisk -l | grep sda
Disk /dev/sda: 1099.5 GB, 1099511627776 bytes, 2147483648 sectors
[root@yidam ~]#
[root@yidam ~]# mkdir /mirrors/
[root@yidam ~]# mount /dev/sda /mirrors/
[root@yidam ~]# df -h |grep mirror
/dev/sda 1008G 28G 930G 3% /mirrors
[root@yidam ~]# mkdir /mirrors/c76

开始同步

[root@yidam ~]# reposync -p /mirrors/c76/

提示: 这会把 centos 当前 yum.repos.d 下的所有源都同步下来,可以指定 repoid 下载,reposync -r base -p /mirror/c76,同步base目录到本地

创建包索引

[root@yidam ~]# createrepo -po /mirrors/c76/base/ /mirrors/c76/base/
[root@yidam ~]# createrepo -po /mirrors/c76/updates/ /mirrors/c76/updates/
[root@yidam ~]# createrepo -po /mirrors/c76/extras/ /mirrors/c76/extras/
[root@yidam ~]# createrepo -po /mirrors/c76/epel/ /mirrors/c76/epel/

创建包组索引

[root@yidam ~]# wget http://archive.kernel.org/centos-vault/altarch/7.6.1810/os/aarch64/repodata/aced7d22b338fdf7c0a71ffcf32614e058f4422c42476d1f4b9e9364d567702f-c7-x86_64-comps.xml
[root@yidam ~]# mv aced7d22b338fdf7c0a71ffcf32614e058f4422c42476d1f4b9e9364d567702f-c7-x86_64-comps.xml /mirrors/c76/base/base-aarch64-comps.xml
[root@yidam ~]# createrepo -g /mirrors/c76/base/base-aarch64-comps.xml /mirrors/c76/base/

提示:aarch64 centos7.5 写得是 xxx-c7-aarch64-comps.xml,aarch64 centos7.6 写得是 xxx-c7-x86_64-comps.xml,这种文件应该是 x86 aarch64 通用

更新 rpm 包

[root@yidam ~]# reposync -np /mirrors/c76/

更新源数据

[root@yidam ~]# createrepo --update /mirrors/c76/base/
[root@yidam ~]# createrepo --update /mirrors/c76/extras/
[root@yidam ~]# createrepo --update /mirrors/c76/updates/
[root@yidam ~]# createrepo --update /mirrors/c76/epel/[root@yidam ~]# createrepo --update -g /mirrors/c76/base/base-aarch64-comps.xml /mirrors/c76/base

创建同步脚本

[root@yidam ~]# cat /mirrors/script/c76_yum_update.sh
#!/bin/bash
echo "Updating Aliyun Yum Sources"
Datetime=`date +%F_%T`
exec > /var/log/updateAliyunRepo_$Datetime.log
reposync -np /mirrors/c76/
if [ $? -eq 0 ];then
createrepo --update /mirrors/c76/base
createrepo --update /mirrors/c76/extras
createrepo --update /mirrors/c76/updates
createrepo --update /mirrors/c76/epel
createrepo --update -g base-aarch64-comps.xml /mirrors/c76/base
echo "Success: $Datetime updateAliyunRepo successful!!!"
else
echo "Error: $Datetime updateAliyunRepo failed!!!"
fi
[root@yidam ~]#

制作任务计划

[root@yidam ~]# crontab -l
# Update AliyunRepo Sources
# 每月第一个周六的23点更新阿里云yum源
00 23 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /mirrors/script/c76_yum_update.sh
[root@yidam ~]#

配置 nginx 发布自制 yum 源

[root@yidam ~]# groupadd nginx
[root@yidam ~]# useradd -r -g nginx -s /bin/false -M nginx
[root@yidam ~]# yum install nginx -y
[root@yidam ~]# cat /etc/nginx/nginx.conf | grep -v "^#" | grep -v "^$"
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /mirrors/c76/;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8,gbk;
index index.html;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
[root@yidam ~]#
[root@yidam ~]# systemctl enable nginx
[root@yidam ~]# systemctl start nginx

提示:至此,Yum 源的同步、制作以及发布都表述完成,客户端的配置可以参照开头的 Yum 源的配置,另外需要提醒的是,如果要用 gpgcheck,可以像我开头配置的那样,也可以下载下来指定位置。

Ubuntu1804 安装源制作

环境准备

操作系统准备

ly@ubuntu:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic
ly@ubuntu:~$

配置好操作系统的 APT 源

ly@ubuntu:~$ sudo cat /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu-ports bionic main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security multiverse
ly@ubuntu:~$

安装相关软件

安装 apt-mirror 工具
ly@ubuntu:~$ sudo apt install apt-mirror -y

配置 mirror.list

ly@ubuntu:~$ sudo cat /etc/apt/mirror.list
############# config ##################
set base_path /mirrors/1804/apt-mirror
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads 20
set _tilde 0
############# end config ##############deb http://mirrors.aliyun.com/ubuntu-ports bionic main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-updates multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security universe
deb http://mirrors.aliyun.com/ubuntu-ports bionic-security multiverseclean http://mirrors.aliyun.com/ubuntu-ports
ly@ubuntu:~$

提示: 这个配置文件告诉 apt-mirror 从哪里同步源下来,存放在哪里,以及一些辅助性脚本放在哪里

制作源

准备好存放源的目录

ly@ubuntu:~$ sudo mkdir /mirrors -pv
ly@ubuntu:~$ sudo fdisk -l |grep sda
Disk /dev/sda: 1 TiB, 1099511627776 bytes, 2147483648 sectors
ly@ubuntu:~$ sudo mount /dev/sda /mirrors
ly@ubuntu:~$ df -h | grep sda
/dev/sda 1007G 219G 737G 23% /mirrors
ly@ubuntu:~$ sudo mkdir /mirrors/1804

开始同步

ly@ubuntu:~$ sudo apt-mirror

验收同步的源

ly@ubuntu:~$ sudo tree /mirrors/1804/ -d -L 6
/mirrors/1804/
└── apt-mirror
├── mirror
│   └── mirrors.aliyun.com
│   └── ubuntu-ports
│   ├── dists
│   │   ├── bionic
│   │   ├── bionic-backports
│   │   ├── bionic-security
│   │   └── bionic-updates
│   └── pool
│   ├── main
│   ├── multiverse
│   ├── restricted
│   └── universe
├── skel
│   └── mirrors.aliyun.com
│   └── ubuntu-ports
│   └── dists
│   ├── bionic
│   ├── bionic-backports
│   ├── bionic-security
│   └── bionic-updates
└── var23 directories
ly@ubuntu:~$

提示:以上同步的是 ubuntu1804 的源,参照上面步骤重新配置 mirror.list,将 ubuntu1604 的源也同步下来,验收结果如下

验收 ubuntu1604 安装源

ly@ubuntu:~$ sudo tree /mirrors/1604/ -d -L 6
/mirrors/1604/
└── apt-mirror
├── mirror
│   └── mirrors.aliyun.com
│   └── ubuntu-ports
│   ├── dists
│   │   ├── xenial
│   │   ├── xenial-backports
│   │   ├── xenial-security
│   │   └── xenial-updates
│   └── pool
│   ├── main
│   ├── multiverse
│   └── universe
├── skel
│   └── mirrors.aliyun.com
│   └── ubuntu-ports
│   └── dists
│   ├── xenial
│   ├── xenial-backports
│   ├── xenial-security
│   └── xenial-updates
└── var22 directories
ly@ubuntu:~$

创建同步脚本

ly@ubuntu:~$ sudo cat /usr/local/bin/apt_update.sh
#!/bin/bash
echo "Updating Aliyun APT Sources"
Datetime=`date +%F_%T`
exec > /var/spool/apt-mirror/var/updateAliyunAPT_$Datetime.log
/usr/bin/apt-mirror
if grep "/mirrors/1604/apt-mirror" /etc/apt/mirror.list;then
sed -i "s@/mirrors/1604/apt-mirror@/mirrors/1804/apt-mirror@g" /etc/apt/mirror.list
sed -i "s@xenial@bionic@g" /etc/apt/mirror.list
else
sed -i "s@/mirrors/1804/apt-mirror@/mirrors/1604/apt-mirror@g" /etc/apt/mirror.list
sed -i "s@bionic@xenial@g" /etc/apt/mirror.list
fi
/usr/bin/apt-mirror
if [ $? -eq 0 ];then
echo "Success: $Datetime updateAliyunAPT successful!!!"
else
echo "Error: $Datetime updateAliyunAPT failed!!!"
fi
ly@ubuntu:~$

制作任务计划

ly@ubuntu:~$ sudo crontab -l | tail -3
# Update AliyunAPT Sources
# 每月第一个周六的23点更新阿里云apt源
00 23 * * 6 [ $(date +%d) -eq $(cal | awk 'NR==3{print $NF}') ] && /bin/bash /usr/local/bin/apt_update.sh
ly@ubuntu:~$

配置 nginx 发布自制 apt 源

ly@ubuntu:~$ sudo apt install nginx -y
ly@ubuntu:~$ sudo cat /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;events {
worker_connections 768;
# multi_accept on;
}http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;server {
listen 80;
server_name 1804;
root /mirrors/1804/apt-mirror/mirror/mirrors.aliyun.com/;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8,gbk;
index index.html;
}
}
server {
listen 8080;
server_name 1604;
root /mirrors/1604/apt-mirror/mirror/mirrors.aliyun.com/;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8,gbk;
index index.html;
}
}
}
ly@ubuntu:~$ systemctl enable nginx
ly@ubuntu:~$ systemctl restart nginx

提示:至此,ubuntu1604 和 ubuntu1804 的本地源已经制作完成,客户端的配置可以参照前面的源的配置方法,这里不再赘述。

作者:余亮亮

云计算 | Centos7和Ubuntu1804制作本地安装源相关推荐

  1. Linux下制作本地yum源

    前言 本文介绍在虚拟环境下,CentOS7.6制作本地镜像源的方法. CentOS是完全免费的,它的yum可以直接使用:通常它的yum源有下面几种方式: 利用Centos的在线地址做本地yum源 利用 ...

  2. 手把手看如何制作本地yun源

    什么是yum: YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及 下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软 ...

  3. linux文件拷到光盘,制作本地yum源(以redhat5.8通过复制光盘文件到本地)

    为什么要制作本地yum源 1.RPM安装方式很多情况下不能有效解决复杂的包依赖关系. 2.而刚安装完成系统的YUM一般是通过联网使用. 3.如果是未注册的redhat5.0以上系统,则不能联网使用yu ...

  4. 自己制作本地yum源镜像

    自己制作本地yum源镜像 首先通过 yum install --downloadonly --downloaddir=/tmp/zetyum glibc.i686将镜像归到一起 然后安装yum源的打包 ...

  5. linux 制作本地yum源

    一.需求: 因安装快速安装系统,选择了简易安装,确实系统软包,进入系统后手动根据需要安装. 二.制作本地yum源 2.1 把系统镜像中的Packages 目录下的rpm包拷贝到系统制定目录,这里放在/ ...

  6. edHat linux光盘引导,RHEL6通过安装光盘或ISO文件制作本地yum源的方法

    rhel6中默认没有.repo文件,需要自己写一个. 在使用yum安装之前是必须配置yum源的, 在不能联网的情况下, 可使用DVD光盘或ISO文件做本地yum源. 下面以RHEL6.0为例, 其它版 ...

  7. ubuntu16.04系统制作本地apt源

    一.背景及概述 1.背景 1)最近在做的一个项目,linux环境是ubuntu16.04,需要把多个开源包打在一起形成一个安装包供其他人使用,这就面临一个问题,开源包依赖很多的linux依赖库,同时不 ...

  8. U 盘安装 CentOS7 时盘符和安装源不可用问题

    记录一次在物理机上安装 CentOS7 遇到的问题及其解决办法,主要有两个问题卡住了很久,一个是盘符问题,一个就是安装源不可用的问题 . 1 No such device 1.1 问题描述 用 U 盘 ...

  9. Linux中制作本地yum源

    第一步:挂载镜像驱动 第二步:备份原始yum仓库 1.进入yum.repos.d目录      cd /etc/yum.repos.d 2.备份原始的yum仓库文件,创建一个old目录,把原始的yum ...

  10. 【Linux】yum相关 - 制作本地yum源

    (图片来源于网络,侵删) [1]挂载镜像 [方式1]使用xftp6将镜像文件上传至服务器挂载 1.上传镜像到服务器 2.将镜像挂载到/mnt/cdrom目录下 mount -o loop ./Cent ...

最新文章

  1. javax.mail.AuthenticationFailedException: 535 authentication failed的问题
  2. 开关问题(模板+高斯消元)
  3. React组件方法中为什么要绑定this
  4. 200 300的完数 c语言,C语言求完数(完全数)(详解版)
  5. 使用app-inspector时报错connect ECONNREFUSED 127.0.0.1:8001的解决方案
  6. 高仿快递100--实战之RadioGroup和RadioButton应用
  7. 2016OSC源创会年终盛典-前端技术专场-阴明
  8. 解决了!联邦学习+推荐系统,冷启动和数据隐私问题双双K.O
  9. android接口类命名规范_Android开发规范
  10. TraceBack模块
  11. 成为java高级工程师需要什么
  12. 分子动力学模拟学习2-Gromacs运行分子动力学模拟
  13. 统计学、统计学习和统计推断之间的关系
  14. JAVA菜鸟的第一天
  15. 体脂率编程c语言,C语言程序
  16. 配置Windows静态IP地址
  17. 十行python代码定时给微信好友发送晚安,自动应答--python云舔狗
  18. 微信errcode大全
  19. 【两天搞定小米商城】【第三步】小米商城之导航部分
  20. 为什么按序发射只有RAW冲突?

热门文章

  1. python 报警声音的实现
  2. 从零开始学java第二章 第一个java程序
  3. pdf2cad v12
  4. 脑洞啊!3D打印数字式日晷,原理简单,设计巧妙
  5. 加密软件pgp 使用教程
  6. SpringBoot项目从IE浏览器跳转至谷歌浏览器并打包成windows环境下可行EXE文件
  7. 《程序员修炼之道(第2版)》到货!屹立20年影响力大作归来!
  8. DPDK Release 20.02
  9. 调研分析-全球与中国非线性光学BIBO晶体(BiB3O6)市场现状及未来发展趋势
  10. Java项目:ssm房屋租赁管理系统