博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu制作apt源
阅读量:6760 次
发布时间:2019-06-26

本文共 2650 字,大约阅读时间需要 8 分钟。

ubuntu制作apt源

今天我们来讲一下怎么制作ubuntu源。
工作中给客户部署经常没有外网,这个时候我们就需要自己建立apt源仓库。

安装并配置web server

首先需要一个web server,常用的nginx 、apache httpd 等均可。

这里我们以nginx为例。

安装:

apt install nginx

编辑配置

编辑nginx配置文件,添加如下内容:

server {     error_log /var/log/nginx/apt_server.log info;     listen  8080;     #server_name www.example.com;     root /var/www/apt_server;     autoindex on;          location / {      #index index.html index.htm;     }    }

这里假设我们仓库目录是/var/www/apt_server

重载配置

nginx -t reload

初始化仓库目录

和官方仓库 一样,我们按ubuntu版本来组织目录(本人用的zesty版本)

mkdir -p /var/www/apt_server

cd /var/www/apt_server
mkdir -p dists/zesty/main/binary-amd64
mkdir -p dists/zesty/main/binary-i386
ln -s /var/cache/apt/archives /var/www/apt_server/packages

保存自己的离线deb包

执行过sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get install XXX操作后,更新包和系统光盘里面没有的软件包都会保存在

/var/cache/apt/archives/目录下。
先随便下载一个包试试:

apt-get install tcpdump

这个时候/var/cache/apt/archives下会有一个deb包:

tcpdump_4.9.2-0ubuntu0.17.04.2_amd64.deb

建立包列表及依赖信息文件

安装必要的软件包dpkg-dev

sudo apt-get install dpkg-dev

建立包列表及依赖信息文件

cd /var/www/apt_server/

dpkg-scanpackages packages /dev/null | gzip > dists/zesty/main/binary-amd64/Packages.gz
dpkg-scanpackages packages /dev/null | gzip > dists/zesty/main/binary-i386/Packages.gz

该命令执行完成后,会生成一个Packages.gz文件,里面记录了本地包的列表及包依赖信息。

(客户端sudo apt-get update命令其实就是为了获取并更新该文件中的信息 )

至此,本地源就基本建好了。

验证本地仓库可用性

下面是我们在一台客户机中指定我们的apt源。

配置客户机仓库列表

sudo vim /etc/apt/sources.list

加入我们的源地址:

deb [arch=amd64] http://192.168.133.236:8080 zesty main #deb http://mirrors.163.com/ubuntu/ zesty main restricted universe multiverse#deb http://mirrors.163.com/ubuntu/ zesty-updates main restricted universe multiverse#deb http://mirrors.163.com/ubuntu/ zesty-security main restricted universe multiverse#deb http://mirrors.163.com/ubuntu/ zesty-proposed main restricted universe multiverse#deb http://mirrors.163.com/ubuntu/ zesty-backports main restricted universe multiverse

(这里我们为了测试,先把在线仓库注释掉。)

保存退出vim,然后更新下仓库信息:

sudo apt-get update ---allow-insecure-repositories

安装一个软件玩玩

接下来就是正常的apt-get install了。

sudo apt-get install tcpdump --allow-unauthenticated

注意事项:需要加上这个 --allow-unauthenticated选项。本地的源是没有签名的,直接更新ubuntu1604下的apt会提示找不到release文件,是一种不安全的源,默认是被禁用的。

安装过程中应该会看到是从我们自建的apt源下载的。

递归下载所需deb包及依赖包

#edit your package list.PACKAGES="wget           tcpdump          unzip"# get dep recurseDEPS=$(apt-cache depends --recurse --no-recommends --no-suggests \          --no-conflicts --no-breaks --no-replaces --no-enhances \          --no-pre-depends ${PACKAGES} | grep "^\w" )echo $DEPS# download all depscd /var/www/ubuntu/packages/apt-get download $DEPS

完。

转载于:https://www.cnblogs.com/sixloop/p/make_ubuntu_apt_repo.html

你可能感兴趣的文章
算法-无向图(连通分量,是否有环和二分图)
查看>>
IOS runtime动态运行时一
查看>>
媒体播放器三大底层架构
查看>>
CCBValue
查看>>
C#一些知识点:委托和事件的区别
查看>>
linux修改挂载目录
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
android开源项目学习
查看>>
提升Mac os x 10.10+xcode6.1之后,Cocoapods发生故障的解决方案
查看>>
Developer Tool - 1. Text Tool and GNU/Linux Tool
查看>>
OAuth 2.0 安全案例回顾
查看>>
标准API使用小技巧
查看>>
jQuery Validate插入 reomte使用详细的说明
查看>>
科普:揭秘手机软件自启原理
查看>>
lintcode :搜索二维矩阵
查看>>
前端设计js+Tab切换可关闭+添加并自动判断是否已打开自动切换当前状态(转载)...
查看>>
for循环,如何结束多层for循环
查看>>
段树 基于单点更新 敌人阵容
查看>>
java中取得上下文路径的方法
查看>>
Tomcat通过配置一个虚拟路径管理web工程
查看>>