云计算 | Centos7和Ubuntu1804制作本地安装源
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制作本地安装源相关推荐
- Linux下制作本地yum源
前言 本文介绍在虚拟环境下,CentOS7.6制作本地镜像源的方法. CentOS是完全免费的,它的yum可以直接使用:通常它的yum源有下面几种方式: 利用Centos的在线地址做本地yum源 利用 ...
- 手把手看如何制作本地yun源
什么是yum: YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及 下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软 ...
- linux文件拷到光盘,制作本地yum源(以redhat5.8通过复制光盘文件到本地)
为什么要制作本地yum源 1.RPM安装方式很多情况下不能有效解决复杂的包依赖关系. 2.而刚安装完成系统的YUM一般是通过联网使用. 3.如果是未注册的redhat5.0以上系统,则不能联网使用yu ...
- 自己制作本地yum源镜像
自己制作本地yum源镜像 首先通过 yum install --downloadonly --downloaddir=/tmp/zetyum glibc.i686将镜像归到一起 然后安装yum源的打包 ...
- linux 制作本地yum源
一.需求: 因安装快速安装系统,选择了简易安装,确实系统软包,进入系统后手动根据需要安装. 二.制作本地yum源 2.1 把系统镜像中的Packages 目录下的rpm包拷贝到系统制定目录,这里放在/ ...
- edHat linux光盘引导,RHEL6通过安装光盘或ISO文件制作本地yum源的方法
rhel6中默认没有.repo文件,需要自己写一个. 在使用yum安装之前是必须配置yum源的, 在不能联网的情况下, 可使用DVD光盘或ISO文件做本地yum源. 下面以RHEL6.0为例, 其它版 ...
- ubuntu16.04系统制作本地apt源
一.背景及概述 1.背景 1)最近在做的一个项目,linux环境是ubuntu16.04,需要把多个开源包打在一起形成一个安装包供其他人使用,这就面临一个问题,开源包依赖很多的linux依赖库,同时不 ...
- U 盘安装 CentOS7 时盘符和安装源不可用问题
记录一次在物理机上安装 CentOS7 遇到的问题及其解决办法,主要有两个问题卡住了很久,一个是盘符问题,一个就是安装源不可用的问题 . 1 No such device 1.1 问题描述 用 U 盘 ...
- Linux中制作本地yum源
第一步:挂载镜像驱动 第二步:备份原始yum仓库 1.进入yum.repos.d目录 cd /etc/yum.repos.d 2.备份原始的yum仓库文件,创建一个old目录,把原始的yum ...
- 【Linux】yum相关 - 制作本地yum源
(图片来源于网络,侵删) [1]挂载镜像 [方式1]使用xftp6将镜像文件上传至服务器挂载 1.上传镜像到服务器 2.将镜像挂载到/mnt/cdrom目录下 mount -o loop ./Cent ...
最新文章
- javax.mail.AuthenticationFailedException: 535 authentication failed的问题
- 开关问题(模板+高斯消元)
- React组件方法中为什么要绑定this
- 200 300的完数 c语言,C语言求完数(完全数)(详解版)
- 使用app-inspector时报错connect ECONNREFUSED 127.0.0.1:8001的解决方案
- 高仿快递100--实战之RadioGroup和RadioButton应用
- 2016OSC源创会年终盛典-前端技术专场-阴明
- 解决了!联邦学习+推荐系统,冷启动和数据隐私问题双双K.O
- android接口类命名规范_Android开发规范
- TraceBack模块
- 成为java高级工程师需要什么
- 分子动力学模拟学习2-Gromacs运行分子动力学模拟
- 统计学、统计学习和统计推断之间的关系
- JAVA菜鸟的第一天
- 体脂率编程c语言,C语言程序
- 配置Windows静态IP地址
- 十行python代码定时给微信好友发送晚安,自动应答--python云舔狗
- 微信errcode大全
- 【两天搞定小米商城】【第三步】小米商城之导航部分
- 为什么按序发射只有RAW冲突?