APT-GET“Couldn’t create temporary file for passing config to apt-key”问题解决
今天Kaijia登上一台万年没动的服务器,跑了一下APT更新,遇到了一个最有意思的问题:
Err:4 http://ftp.debian.org/debian stretch Release.gpg
Couldn’t create temporary file /tmp/apt.conf.aBDdBI for passing config to apt-key
不同于以往理论上APT服务器离线、Key过期出错等情况,这次的问题是无法将配置文件传递给apt-key。
简单查阅了一下资料,显示apt-key等等实际上并不是直接使用/etc/apt/apt.conf配置文件,而是每次执行操作的时候将配置文件复制到临时文件夹下(以做一些修改等等)。虽然apt-get需要Root权限才能执行,但执行过程中的子任务,例如调用apt-key时,是交给_apt这一用户完成的。所以实际上问题很简单,既是目录对_apt用户缺少了权限,因此无法创建临时的apt.conf文件。
因此这个问题的解决方法非常简单,打开/tmp目录的权限即可:
1 |
chmod 777 /tmp |
当然理论上/tmp目录本身的权限已经是777了,然而Kaijia在这台服务器上看到的权限确实755。毕竟长时间未登录管理,可能早前对此进行了改动(例如在/tmp目录下解压一个带根目录的TAR文件),所以这个问题部分应该算是巧合。
评论