J'ai /tmp
sur une partition séparée, et monté avec noexec
. J'utilise Debian.
L'installation de certains packages échoue car les scripts de post-installation de certains packages doivent s'exécuter à partir de /tmp
.
Je me demandais s'il serait possible de «hooker» un script simple à apt-get
, qui serait exécuté à chaque fois avant apt-get
, et remount /tmp
à exec
. Et de même, noexec
à noexec
après que apt-get
ait terminé.
Vous pouvez utiliser le système de hook de dpkg
pour le remonter – mettez ceci dans /etc/apt/apt.conf.d/00exectmp
:
DPkg::Pre-Invoke {"mount -o remount,exec /tmp";}; DPkg::Post-Invoke {"mount -o remount /tmp";};
Mumble, vous pouvez simplement replace apt-get
par un de vos scripts.
Déplacer apt-get
real-apt-get
et, ensuite, créer un script appelé apt-get
comme celui-ci:
#!/bin/sh mount -o remount -o ... /tmp real-apt-get "$@" mount -o remount -o ... -o noexec /tmp
En tout cas, je n'aime pas cette solution. Il est plus facile de changer la variable d'environnement de directory temporaire lorsque vous en avez besoin. Quelque chose comme (style sh):
mkdir /root/mytmp TMPDIR=/root/mytmp export TMPDIR apt-get ... rm -rf /root/mytmp
De cette façon, apt-get utilisera /root/mytmp
comme /root/mytmp
temporaire. Pas besoin de changer le système.