我有/tmp
一个单独的分区,并安装了noexec
.我正在使用Debian。
某些软件包安装失败,因为某些软件包的安装后脚本需要从/tmp
.
我想知道是否可以将一个简单的脚本“挂钩”到apt-get
,该脚本将在之前每次运行apt-get
,然后重新安装/tmp
到exec
。同样,完成noexec
后重新安装它。apt-get
答案1
您可以使用dpkg
钩子系统重新安装它 - 将其放入/etc/apt/apt.conf.d/00exectmp
:
DPkg::Pre-Invoke {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};
答案2
Mumble,你可以简单地apt-get
用你自己的脚本替换。
转到apt-get
并real-apt-get
创建一个脚本,apt-get
如下所示:
#!/bin/sh
mount -o remount -o ... /tmp
real-apt-get "$@"
mount -o remount -o ... -o noexec /tmp
无论如何,我不喜欢这个解决方案。当需要时更改临时目录环境变量会更容易。像(sh风格)的东西:
mkdir /root/mytmp
TMPDIR=/root/mytmp
export TMPDIR
apt-get ...
rm -rf /root/mytmp
这样 apt-get 将用作/root/mytmp
临时目录。无需更改系统。