Docker环境下Debian 9镜像无法安装软件包的问题求助
Docker环境下Debian 9镜像无法安装软件包的问题求助
嗨,我来帮你解决这个问题~
首先,Debian 9(代号stretch)已经是归档终止支持的版本了,官方的deb.debian.org和security.debian.org源已经不再提供这个版本的包了,这就是你一开始遇到404错误的原因。你后来换成stable的源虽然apt update不报错,但stable现在指向的是Debian 12(bookworm),和Debian 9的包依赖完全不兼容,所以自然装不了软件。
正确的处理步骤如下:
- 先备份原来的源文件(防止改错了可以恢复):
cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 替换
/etc/apt/sources.list的内容为Debian归档源,这是专门存放旧版本Debian包的仓库:
cat > /etc/apt/sources.list << EOF deb http://archive.debian.org/debian stretch main contrib non-free deb http://archive.debian.org/debian-security stretch/updates main contrib non-free deb http://archive.debian.org/debian stretch-updates main contrib non-free EOF
由于归档源里的包有效期已经过期,需要关闭apt的有效期检查,否则执行
apt update会失败:- 临时生效方式:直接带参数执行更新
apt -o Acquire::Check-Valid-Until=false update- 永久生效方式:创建一个apt配置文件,后续就不用每次加参数了
echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99no-check-valid-until现在就可以正常安装软件了,另外给你提个小细节:你想要的
ps命令是包含在procps包里的,没有单独的ps包,所以正确的安装命令是:
apt install -y vim procps
最后提醒一下:不要直接复制Debian 12的源过来,两个版本的包依赖差异极大,会导致严重的冲突甚至损坏整个镜像。如果不是业务必须依赖Debian 9,其实更推荐直接使用debian:12镜像,毕竟是当前的稳定版,支持和维护都更完善~
备注:内容来源于stack exchange,提问作者Ilya Shmadchenko
相关产品推荐
相关产品推荐

