【linux】Debian10.0.0软件源

为了安装infiniband卡4.9版本的debian驱动 安装了Debian10.0.0。

安装Debian10.0.0后,本地iso文件配置软件源。

root@debian:~# mount debian-10.0.0-amd64-STICK16GB-1.iso /media/debian10.0.0/
mount: /media/debian10.0.0: WARNING: device write-protected, mounted read-only.
root@debian:~# df
Filesystem     1K-blocks     Used Available Use% Mounted on
udev             4028420        0   4028420   0% /dev
tmpfs             808676     9144    799532   2% /run
/dev/sda1      471422192 19246444 428155372   5% /
tmpfs            4043364        0   4043364   0% /dev/shm
tmpfs               5120        0      5120   0% /run/lock
tmpfs            4043364        0   4043364   0% /sys/fs/cgroup
tmpfs             808672        0    808672   0% /run/user/0
/dev/loop0      15573912 15573912         0 100% /media/debian10.0.0
root@debian:~# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  3.9G     0  3.9G   0% /dev
tmpfs          tmpfs     790M  9.0M  781M   2% /run
/dev/sda1      ext4      450G   19G  409G   5% /
tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs          tmpfs     790M     0  790M   0% /run/user/0
/dev/loop0     iso9660    15G   15G     0 100% /media/debian10.0.0
root@debian:~# vim /etc/apt/sources.list

sources.list添加:

deb [trusted=yes] file:/media/debian10.0.0 buster contrib main

运行apt update:

root@debian:~# apt update
Get:1 file:/media/debian10.0.0 buster InRelease
Ign:1 file:/media/debian10.0.0 buster InRelease
Get:2 file:/media/debian10.0.0 buster Release [33.4 kB]
Get:2 file:/media/debian10.0.0 buster Release [33.4 kB]
Get:3 file:/media/debian10.0.0 buster Release.gpg
Ign:3 file:/media/debian10.0.0 buster Release.gpg
Get:4 file:/media/debian10.0.0 buster/contrib amd64 Packages [7,482 B]
Ign:4 file:/media/debian10.0.0 buster/contrib amd64 Packages
Get:5 file:/media/debian10.0.0 buster/contrib Translation-en [7,614 B]
Ign:5 file:/media/debian10.0.0 buster/contrib Translation-en
Get:6 file:/media/debian10.0.0 buster/main amd64 Packages [2,451 kB]
Ign:6 file:/media/debian10.0.0 buster/main amd64 Packages
Get:7 file:/media/debian10.0.0 buster/main Translation-en [1,874 kB]
Ign:7 file:/media/debian10.0.0 buster/main Translation-en
Get:4 file:/media/debian10.0.0 buster/contrib amd64 Packages [7,482 B]
Get:5 file:/media/debian10.0.0 buster/contrib Translation-en [7,614 B]
Get:6 file:/media/debian10.0.0 buster/main amd64 Packages [2,451 kB]
Get:7 file:/media/debian10.0.0 buster/main Translation-en [1,874 kB]
Hit:8 http://security.debian.org/debian-security buster/updates InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

尝试安装iperf成功。

root@debian:~# apt install iperf
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  iperf
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/73.4 kB of archives.
After this operation, 202 kB of additional disk space will be used.
Get:1 file:/media/debian10.0.0 buster/main amd64 iperf amd64 2.0.12+dfsg1-2 [73.4 kB]
Selecting previously unselected package iperf.
(Reading database ... 68224 files and directories currently installed.)
Preparing to unpack .../iperf_2.0.12+dfsg1-2_amd64.deb ...
Unpacking iperf (2.0.12+dfsg1-2) ...
Setting up iperf (2.0.12+dfsg1-2) ...
Processing triggers for man-db (2.8.5-2) ...

另外,尝试了用自己搭建Web服务,http方式获取软件源的方式,会提示错误:“buster-updates Release' does not have a Release file.”

附智能GPT的回答:

这个错误消息表示在试图从一个软件仓库获取软件包时,该仓库没有Release文件。Release文件包含了仓库的元数据信息,如仓库中软件包的版本号等。
这个错误通常有以下几种可能的原因:
1. 仓库地址填写错误,导致找不到该仓库。请检查仓库地址是否正确。
2. 仓库存在问题,管理员还没有生成或者上传Release文件。如果确定仓库地址无误,可以联系仓库管理员解决该问题。
3. 本地仓库缓存存在问题。可以尝试清理本地仓库缓存后重试:
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
4. 网络连接问题导致无法访问到仓库。请检查网络连接是否正常。
对于Debian/Ubuntu系统,Release文件非常重要,缺失该文件将无法正确读取仓库信息和安装软件。所以需要确认仓库地址正确,并确保仓库可访问且包含Release文件。
Release文件是什么样的?
Debian/Ubuntu系统中的仓库Release文件是一个文本文件,包含了软件仓库的元数据信息,主要内容如下:
1. 仓库信息
包括仓库的codename(如buster、focal等)、组件(如main、contrib等)、架构等信息。
2. 软件包列表
列出仓库中每个软件包的名称、版本号、依赖关系、文件Hash等信息。
3. 签名信息
Release文件本身会使用仓库私钥进行签名,以验证文件完整性和来源有效性。
4. 其他元数据
如仓库描述、维护者信息等。
一个Release文件示例:
Origin: Debian
Label: Debian
Suite: stable
Version: 10.10
Codename: buster
Date: Sat, 14 Aug 2021 16:25:01 UTC
Architectures: amd64 arm64 armel armhf i386 mips64el mipsel ppc64el s390x
Components: main contrib non-free
Description: Debian 10.10 Released 14 August 2021
MD5Sum:
 ced9092004d9ef34ef13f09d6b5b8d29 83270 main/binary-amd64/Packages
 ac2ff4e181f2e24c1c9bbd97c5ef4831 13319 main/binary-amd64/Release
可以看到它包含了仓库信息、软件包元数据、签名等内容。Release文件必要且重要,客户端通过解析它来正确获取和验证仓库中的软件包。
release文件是什么后缀名?
Debian/Ubuntu系统的仓库Release文件通常没有文件后缀名,就是一个叫做Release的文本文件。
举几个例子:
- Debian stable仓库:http://deb.debian.org/debian/dists/stable/Release
- Ubuntu 18.04仓库:http://archive.ubuntu.com/ubuntu/dists/bionic/Release
- PPA仓库:https://ppa.launchpadcontent.net/ubuntu-mozilla-daily/ppa/ubuntu/dists/bionic/Release
可以看到它们直接就是Release文件,没有文件扩展名。
但是有些第三方仓库可能会给Release文件添加后缀名,比如:
- Release.gpg
- Release.asc
- Release.txt
这是为了方便识别,或者加入数字签名等目的。但对于标准的Debian/Ubuntu仓库,Release文件是不带文件扩展名的。
在获取仓库信息时,系统会先请求如 http://repo/dists/xxx/Release 这个地址,如果该文件存在,就可以解析里面的元数据,所以不需要特定的后缀名。但有些仓库可能会提供多个格式的Release文件,这时文件扩展名就可以区分不同格式。
搭建软件源仓库,怎么生成Release文件?
在Debian/Ubuntu系统中搭建自己的软件源仓库,如果要让系统正常识别安装,就需要提供Release文件。生成Release文件的方法如下:
1. 准备仓库目录结构
按照 Debian仓库组织方式,创建 dists/集合名/组件 目录。
2. 放置软件包文件
将.deb软件包文件放到相应目录下。
3. 生成Packages文件
每个组件目录下需要包含一个Packages文件,里面记录该组件的所有软件包信息。可以使用 dpkg-scanpackages 命令生成。
例如:
dpkg-scanpackages . /dev/null > Packages
 
4. 创建InRelease文件
InRelease文件包含仓库信息和Packages文件校验,使用 gpg 命令生成:
gpg --digest-algo sha256 --clearsign -o InRelease Packages
5. 创建Release文件
Release文件内容可以手动编写,也可以从InRelease提取生成。
6. 添加公钥
将用于签名的GPG公钥放到仓库的keyring.gpg文件中。
按照这些步骤,就可以生成一个包含Release、Packages等文件的Debian仓库,然后客户端就可以通过读取这些元数据文件来识别安装软件包了。
可以从其他软件源仓库复制Release文件吗?
不建议直接从其他仓库复制Release文件来使用。因为Release文件里包含了该软件仓库的具体信息,像组件名称、软件包列表等都与特定仓库相关。如果直接拷贝其他仓库的Release文件,会存在以下问题:
1. 元数据不匹配
复制的Release文件中的组件名称、包列表等信息和自己的仓库实际情况不一致,会导致元数据错误。
2. 签名验证失败
Release文件包含数字签名,直接复制签名部分将导致仓库客户端无法验证签名的有效性。
3. 源信息不真实
直接复制会使客户端认为这个仓库来源是复制的那个仓库,失去了可信度。
4. 可能触发法律问题
如果被复制的仓库有版权限制,直接拷贝其Release文件可能会产生法律风险。
正确的做法是:
1. 根据自己的实际软件包编写元数据。
2. 自行生成数字签名,而不是复制签名。
3. 提供准确的源信息,不要假冒来源。
4. 遵守相关许可证规定。
综上,不建议直接复制其他仓库的Release文件,而是要根据自己的实际情况重新生成适合该仓库的Release文件,以避免各种问题。 

参考:

Debian10使用本地ISO搭建APT源_debian10挂载iso做本地源_是个英雄豪杰鸭的博客-CSDN博客

Debian8.11软件源_一尘之中的博客-CSDN博客

Debian -- 建立一个 Debian 仓库的镜像

apt-cdrom(8) — apt — Debian buster — Debian Manpages

Index of /cdimage/archive/10.0.0/amd64 (debian.org)

Debian11.2.0用iso制作本地源_debian iso_leejearl的博客-CSDN博客

你可能感兴趣的:(linux,linux,运维,服务器)