Ubuntu22.04 搭建离线APT源(apt-mirror)

1、应用场景

目前需要在Linux环境下做UE开发,Ubuntu版本使用的是22.04。项目现场是没法连到外网的,所以安装库十分不方便,所以需要搭建一套内网的离线APT源。

2、搭建步骤

2.1 资源拉取

首先需要在联网机器上将资源拉取到本地。

本教程使用使用apt-mirror拉取镜像源,使用nginx作为源文件服务器。

安装命令:

sudo apt-get install -y apt-mirrorapt-get install -y nginx

在使用apt-mirror之前,为了加速拉取镜像源的速度,建议将apt-mirror拉取的镜像源换成阿里云的镜像源,apt-mirror的配置文件在 /etc/apt/mirror.list,22.04可以参考如下的配置:

############# config ##################
#
# set base_path    /var/spool/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 jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu jammy-backports main restricted universe multiverse
#deb http://mirrors.aliyun.com/ubuntu jammy-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu jammy-backports main restricted universe multiverse
#deb-src http://mirrors.aliyun.com/ubuntu jammy-proposed main restricted universe multiverseclean http://mirrors.aliyun.com/ubuntu

配置好之后使用下面的命令拉取镜像源:

apt-mirror

拉取过程很漫长,我等了差不多7个小时,占用资源大小620GB左右。

Tips: 我第一次进行测试时,发现默认拉取的资源还不够,在其他机器上拉取镜像源时会有报错提示缺少icon之类的资源,这里有一个脚本文件,用来下载额外的数据:

cd /var/spool/apt-mirror/mirror/mirrors.aliyun.com/ubuntu/distsfor dist in jammy jammy-backports jammy-security jammy-updates; dofor comp in main  multiverse  universe restricted; dofor size in 48 64 128; dowget http://archive.ubuntu.com/ubuntu/dists/${dist}/${comp}/dep11/icons-${size}x${size}@2.tar.gz -O ${dist}/${comp}/dep11/icons-${size}x${size}@2.tar.gz;donedone
donefor dist in jammy jammy-backports jammy-security jammy-updates; dofor comp in main  multiverse  universe restricted; doif [ ! -d "${dist}/${comp}/binary-i386" ]; thenmkdir -p "${dist}/${comp}/binary-i386"echo "目录 ${dist}/${comp}/binary-i386 已创建。"elseecho "目录 ${dist}/${comp}/binary-i386 已存在。"fiwget http://archive.ubuntu.com/ubuntu/dists/${dist}/${comp}/binary-i386/Packages.gz -O ${dist}/${comp}/binary-i386/Packages.gz;done
done

2.2 镜像源开放

接下来,如果是测试的话我们可以直接在联网机器使用nginx开放镜像源数据,如果是内网离线环境,需要物理拷贝到离线机器上执行下列操作。如果离线机器上没有安装nginx,需要手动下载nginx的deb进行安装,将所有依赖的deb包拷贝到离线机器某个文件夹中,然后运行下面的命令进行安装:

sudo dpkg -i *.deb

在配置nginx之前,可以先使用下面的命令进行文件夹挂载,方便后面的文件管理:

ln -s /var/spool/apt-mirror/mirror/mirrors.aliyun.com/ubuntu /home/user/nginx_data/public

在/etc/nginx/nginx.conf中配置服务参数:

user root;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;# multi_accept on;
}http {### Basic Settings##sendfile on;# 重要tcp_nopush on;types_hash_max_size 2048;# server_tokens off;autoindex on;# 重要autoindex_exact_size off;# 重要autoindex_localtime on;# 重要server {listen       9101 default_server;# 重要listen       [::]:9101 default_server;# 重要server_name localhost;# 重要,也可以配置为具体的ip地址location / {root /home/user/nginx_data/public; # 配置的挂载地址index index.html index.htm index.nginx-debian.htmlcharset utf-8;}}# server_names_hash_bucket_size 64;# server_name_in_redirect off;include /etc/nginx/mime.types;default_type application/octet-stream;### SSL Settings##ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLEssl_prefer_server_ciphers on;### Logging Settings##access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;### Gzip Settings##gzip on;# gzip_vary on;# gzip_proxied any;# gzip_comp_level 6;# gzip_buffers 16 8k;# gzip_http_version 1.1;# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;### Virtual Host Configs##include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;
}

配置好后需要运行下面的命令重启nginx:

systemctl restart nginx

成功后可以在浏览器中看到对应的文件列表:

2.3 镜像源拉取

在配置文件/etc/apt/sources.list 中,将其中的源地址替换为刚才nginx配置的地址: http://ip:port/ubuntu。
然后使用下面命令更新镜像源信息:

sudo apt update

更新之后就可以愉快的进行安装啦, 试一下:

apt-get install -y clang

3、转载至

Ubuntu22.04搭建离线APT源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882070.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

013 Promise对象_Ajax实操

Promise封装Ajax,让网络请求的异步操作变得更简单<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><titl…

题解:P7213 [JOISC2020] 最古の遺跡 3

两种思考方式:值域维度:从原始高度大往小插入柱子,不确定右边是否有最终高度等于它的柱子,并不好记录状态。下标维度:从后往前扫描,注意到前面的对后面的后效性很小,此时不难设出一个基础的状压 DP 方程。为了避免记录后方柱子初始高度出现情况(相同初始高度有且仅有 \…

【车道线检测项目实战】

1-车道数据与标签解读 1.1数据集链接 原项目共使用两个数据集这里出于学习便捷考虑,只使用CULane的部分数据集进行训练 数据集目录1.2 list目录其中list目录下都是文件的路径1.3 frame目录 frame目录下都是视频的节帧 1.4 lable目录 lable目录下都是车道线的信息,肉眼看不出来…

《刚刚问世》系列初窥篇-Java+Playwright自动化测试-12- iframe操作-上篇(详细教程)

1.简介 原估计宏哥这里就不对iframe这个知识点做介绍和讲解了,因为前边的窗口切换就为这种网页处理提供了思路,另一个原因就是虽然iframe很强大,但是现在很少有网站用它了。但是还是有小伙伴或者童鞋们私下问这个问题,那么宏哥就单独写一篇关于iframe网页处理的文章。ifram…

CH585 CH584 CH592 BLE设备的VID和PID

在 BLE(蓝牙低功耗)设备中,PID(Product ID,产品标识符)和 VID(Vendor ID,厂商标识符)有着重要作用,以下为你详细介绍: 区分不同设备与厂商VID 的作用:VID 是由相关管理机构分配给设备制造商的唯一标识符,用于明确设备的生产厂商。例如,像苹果、三星、英特尔等众多…

streamlit入门笔记【1】环境搭建

1. 背景 24年底交代了一个产品排行榜的工作,其实就是把开发测试等各项指标排序,指标获取和存储部分可以用requests和selenium以及xlsx、json分析等完成,展示部分使用了streamlit框架,可以把数据直接运行成简单的web app。本系列笔记将streamlit应用部分做个总结。 2. 环境搭…

012 Promise对象

1、基本概念Promise是异步编程的一种解决方案,比传统的解决方案一一回调函数和事件一一更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言便准,统一了用法,原生提供Promise对象所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步…

CoAT: 基于蒙特卡洛树搜索和关联记忆的大模型推理能力优化框架

研究者提出了一种新的关联思维链(Chain-of-Associated-Thoughts, CoAT)方法,该方法通过整合蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)和关联记忆机制来提升大语言模型(LLMs)的推理能力。区别于传统的单步推理方法,CoAT致力于增强LLM的结构化推理能力和自适应优化能力,…

DM SQL关联列 like 优化案例

1.1、sql优化背景达梦一哥们找我优化条SQL,反馈在DM8数据库执行时间很慢出不来结果, 监控工具显示这条SQL的执行时间需要20多万毫秒,安排。1.2、慢sql和执行时间 select a.col1 as d_id, a.col2 as s_id, a.col3 as bm, a.col4, a.col5, (select b.col1 from table2 b where…

rust学习笔记(7)

crate 中文是货箱,这是我们编写自己的库或者程序的方式 库 使用rustc可以把一个文件编译为lib rustc --crate-type=lib rary.rs构建的方式选择lib编译出来的文件rlib,并且文件的开头会加上lib前缀使用库 rustc main.rs --extern rary=library.rlib --edition=2018在编译使用的时…

mysql 系统变量

前言 简单介绍一下mysql的系统变量 正文 当我们之间查看mysql的系统变量的时候呢? 我们使用show variables,这样我们就可以查看到系统变量。 但是这样显然是没有意义的。可以看到很多很多的系统变量,如果想查具体的,那么就是: SHOW VARIABLES LIKE default_storage_engine又…

批量PDF文件转Word,免费!

今天推荐一款免费的PDF文件转换工具,它包括了PDF压缩、PDF转Word、PDF转Excel、提取PDF中图片等功能,下载地址在文末。 操作步骤 1、打开PDF转换工具,点击菜单PDF转Word,如下图2、添加需要转换的PDF文件,支持批量添加多个文件一起进行转换,如果一个目录下面的所有文件都需…