CentOS执行yum install安装包时mkstemp临时文件创建错误如何解决?
CentOS yum安装软件mkstemp临时文件创建失败问题排查
报错场景:执行
yum install <package>安装软件时抛出如下错误Cannot create temporary file - mkstemp: No such file or directory
错误触发原因
/tmp目录权限异常:默认/tmp目录权限为1777(drwxrwxrwt),若权限被误修改,yum进程无写入权限就会触发该报错/tmp目录不存在或挂载异常:目录被误删除,或tmpfs临时文件系统挂载失败,会导致系统找不到临时文件写入路径- 磁盘资源耗尽:
/tmp所在分区存储空间占满,或分区inode耗尽,无法创建新的文件 - SELinux策略限制:错误的SELinux规则限制了yum进程对
/tmp目录的写入权限
可行解决方案
1. 修复/tmp目录权限
执行以下命令将目录权限恢复为默认值:
chmod 1777 /tmp
修改后可执行ls -ld /tmp验证,输出的权限位应显示为drwxrwxrwt。
2. 修复/tmp目录挂载或重建目录
- 若目录被误删,先执行创建命令再修改权限:
mkdir /tmp chmod 1777 /tmp - 若tmpfs挂载异常,执行命令重新挂载:
如需开机自动挂载,可在mount -t tmpfs tmpfs /tmp/etc/fstab中添加如下配置:tmpfs /tmp tmpfs defaults 0 0
3. 清理磁盘资源
- 执行
df -h查看/tmp所在分区的剩余空间,若占满可清理无用的日志、缓存文件释放空间 - 执行
df -i查看inode使用情况,若inode耗尽需要删除冗余小文件释放inode资源
4. 修复SELinux规则
可先执行setenforce 0临时关闭SELinux后重试yum操作,若恢复正常则说明是SELinux策略问题,执行如下命令恢复/tmp目录的默认SELinux上下文即可:
restorecon -Rv /tmp
内容的提问来源于stack exchange,提问作者Kiruthika kanagarajan
相关产品推荐
相关产品推荐

