为了安装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博客