社区编辑申请
注册/登录
Ubuntu 20.04 中创建本地 APT 软件包仓库
系统 其他OS
有些情况下,由于一些安全原因Ubuntu机器没有连接到互联网。在这种情况中,你可以设置自己的本地APT软件包仓库,并在Ubuntu机器上安装软件包。

有些情况下,由于一些安全原因Ubuntu机器没有连接到互联网。在这种情况中,你可以设置自己的本地APT软件包仓库,并在Ubuntu机器上安装软件包。

在本文中,介绍了如何在Ubuntu 20.04 LTS创建本地APT仓库。希望对你有帮助~

系统环境

Ubuntu 20.04 LTS

安装dpkg-dev

需要安装dpkg-dev软件包,才能为本地APT仓库创建软件包元数据。

bob@ubuntu-20-04:~$ sudo apt install -y dpkg-dev

安装http服务

如果该软件仓库需要为其他ubuntu 20.04服务器使用,可以安装web服务器为其他ubuntu 20.04服务器提供软件仓库。

bob@ubuntu-20-04:~$ sudo apt install -y apache2

创建本地仓库的存储目录

创建/var/www/html/repo目录,用来存放软件包:

bob@ubuntu-20-04:~$ sudo mkdir /var/www/html/repo

创建挂载点,并挂载ubuntu 20.04的光盘到/mnt/cdrom目录。

bob@ubuntu-20-04:~$ sudo mkdir /mnt/cdrom
bob@ubuntu-20-04:~$ sudo mount /dev/cdrom /mnt/cdrom
mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.

查找/mnt/cdrom里面所有deb软件包并将其复制到我们的本地APT仓库目录中。

bob@ubuntu-20-04:~$ sudo find /mnt/cdrom -iname "*.deb" -exec cp {} /var/www/html/repo \;

编写一个脚本来更新Package.gz文件

创建一个脚本文件以扫描更新Packages.gz文件因为你可能会不时的在本地APT仓库中添加新的deb软件包。因此,每次在repo目录中添加新的deb软件包之后,都需要更新Packages.gz文件。

bob@ubuntu-20-04:~$ sudo vim /bin/update-debs

#!/bin/bash
cd /var/www/html/repo
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

给update-debs脚本文件添加可执行权限:

bob@ubuntu-20-04:~$ sudo chmod +x /bin/update-debs

现在执行此脚本以创建Packages.gz文件:

bob@ubuntu-20-04:~$ sudo /bin/update-debs

将本地APT仓库地址添加到sources.list文件中

首先备份一下sources.list文件,然后添加:

bob@ubuntu-20-04:~$ cd /etc/apt/
bob@ubuntu-20-04:/etc/apt$ sudo cp -p sources.list sources.list.back

打开sources.list文件,在文件底部添加下面内容:

bob@ubuntu-20-04:/etc/apt$ sudo vim sources.list

# Local APT Repository
deb [allow-insecure=yes] http://192.168.43.174/repo ./

更新一下软件源:

bob@ubuntu-20-04:~$ sudo apt update

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2020-06-28 13:56:01

UbuntuAptSynaptic

2022-06-01 17:30:06

UbuntuKVM虚拟化

2022-04-27 12:35:42

Unity7桌面环境Ubuntu

2022-06-26 18:23:07

Ubuntu软件包

2022-05-13 10:24:44

WineWindowsLinux

2022-04-25 09:39:42

桌面服务器Linux

2022-04-25 20:52:22

UbuntuLinux

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-06-16 10:14:51

LinuxEmacs编辑器

2022-06-20 14:19:55

FedoraEPELLinux

2019-02-25 09:55:32

UbuntuDebian软件包

2022-05-09 10:51:26

Snap软件包Ubuntu

2022-06-13 15:46:00

PythonPython IDE

2019-07-31 08:00:00

2022-06-27 09:54:38

编程语言JavaC++

2022-03-02 10:58:06

CactiUbuntuLinux

2022-06-09 14:40:14

系统移植鸿蒙

2022-02-24 16:15:16

OpenHarmon鸿蒙OpenEuler

2019-05-10 10:00:07

apt-clone软件包Ubuntu

2010-01-07 17:46:09

同话题下的热门内容

为什么用C语言编写操作系统?导致系统性能失败的十个原因

编辑推荐

软件卸载不干净怎么办?智能卸载轻松搞定!苹果凌晨1点最新推送iOS 11正式版 如何使用 printf 来格式化输出CentOS Linux 已死—Red Hat 称 Stream 不是替代品BIO、NIO 到多路复用的演进路径,你明白了吗?
我收藏的内容
点赞
收藏

51CTO技术栈公众号