Você pode usar o sistema de gancho de dpkg
para remontá-lo - coloque isso em /etc/apt/apt.conf.d/00exectmp
:
DPkg::Pre-Invoke {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};
Eu tenho /tmp
em uma partição separada e montado com noexec
. Eu estou usando o Debian.
A instalação de alguns pacotes falha, porque os scripts de pós-instalação de alguns pacotes precisam ser executados a partir de /tmp
.
Eu queria saber se seria possível "enganchar" um script simples em apt-get
, que seria executado toda vez antes de apt-get
e remontar /tmp
to exec
. E da mesma forma, remonte para noexec
após apt-get
terminar.
Mumble, você pode simplesmente substituir apt-get
por um script seu.
Mova apt-get
para real-apt-get
e, em seguida, crie um script chamado apt-get
como este:
#!/bin/sh
mount -o remount -o ... /tmp
real-apt-get "$@"
mount -o remount -o ... -o noexec /tmp
De qualquer forma, não gosto dessa solução. É mais fácil alterar a variável de ambiente do diretório temporário quando você precisar. Algo parecido com (estilo sh):
mkdir /root/mytmp
TMPDIR=/root/mytmp
export TMPDIR
apt-get ...
rm -rf /root/mytmp
Desta forma, o apt-get usará /root/mytmp
como diretório temporário. Não há necessidade de mudar o sistema.